[ 
https://issues.apache.org/jira/browse/HBASE-18951?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16196816#comment-16196816
 ] 

Chia-Ping Tsai commented on HBASE-18951:
----------------------------------------

{code}
+
+    /**
+     * Check for lack of column.
+     */
+    CheckAndMutateBuilder ifNotExists();
{code}
I love this method. :)   To check the non-existence column, we pass the null 
value to Table#checkAndXXX...That is really a ambiguous way.

{code}
+  /**
+   * A helper class for building checkAndMutate request.
+   */
+  interface CheckAndMutateBuilder {
{code}
The comment and the class name may mislead us about ur philosophy, as the 
{{CheckAndMutateBuilder}} not only creates the request but also executes the 
request. 
What about the name {{CheckAndMutateRequest}} ? It may be better to merge 
{{thenMutate}}, {{thenDelete}}, and {{thenMutate}} into one method 
{{thenExecute(Put/Delete/RowMutation)}}.

> Use Builder pattern to remove nullable parameters for checkAndXXX methods in 
> RawAsyncTable/AsyncTable interface
> ---------------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-18951
>                 URL: https://issues.apache.org/jira/browse/HBASE-18951
>             Project: HBase
>          Issue Type: Sub-task
>          Components: Client
>            Reporter: Duo Zhang
>            Assignee: Duo Zhang
>            Priority: Blocker
>             Fix For: 2.0.0-beta-1
>
>         Attachments: HBASE-18951.patch
>
>
> As Optional is not supposed to be used as method parameters but we do not 
> want nullable parameters.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to