[ https://issues.apache.org/jira/browse/HBASE-18951?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16197117#comment-16197117 ]
Chia-Ping Tsai commented on HBASE-18951: ---------------------------------------- bq. And for the unification of the three methods, do you mean a single method or three methods with the same name? RowMutations is not a Mutation so if we want a single method then we can only use Row as the parameter, which makes no sense... And if we still have three methods, it is not a big problem that we use three different names? The code style i mentioned is shown below. It is ok to keep the original name. {code} CheckAndMutateRequest { CheckAndMutateRequest qualifier(byte[]) CheckAndMutateRequest ifNotExists(); CompletableFuture<Boolean> execute(Put); CompletableFuture<Boolean> execute(Delete); CompletableFuture<Boolean> execute(RowMutation); } {code} bq. But it is a builder anyway, just followed the Curator naming way... See here: What I expect to get from XXXBuilder is XXX. The comment of {{CheckAndMutateBuilder}} also says the builder is *for building checkAndMutate request*. However, the only object we can get from the {{CheckAndMutateBuilder}} is the *response* from server rather than the *request*. That is why i say "The comment and the class name may mislead us about ur philosophy". > 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)