[
https://issues.apache.org/jira/browse/PHOENIX-4996?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16670686#comment-16670686
]
ASF GitHub Bot commented on PHOENIX-4996:
-----------------------------------------
Github user ChinmaySKulkarni commented on the issue:
https://github.com/apache/phoenix/pull/401
@vincentpoon the problem with that approach is that there are certain
fields that are set inside `init` and changing those fields would require us to
change other fields, for example, changing the columns would require us to
recompute the `estimatedSize`, `pkColumns`, etc. so it's not sufficient to
return the builder and then just set whatever are the new properties. On top of
this, the user would need to keep track of the fact that `init` needs to be
called again after some fields are changed, which is error-prone. I feel that
we should keep this abstracted away from the user. Let me know what you think.
> Refactor PTableImpl to use Builder Pattern
> ------------------------------------------
>
> Key: PHOENIX-4996
> URL: https://issues.apache.org/jira/browse/PHOENIX-4996
> Project: Phoenix
> Issue Type: Improvement
> Reporter: Chinmay Kulkarni
> Assignee: Chinmay Kulkarni
> Priority: Major
> Attachments: PHOENIX-4996.patch
>
>
> Currently _PTableImpl_ has many constructor parameters, overloaded
> constructors as well as overloaded versions of _makePTable_ which basically
> creates a new PTable itself. Because of this, constructing new PTable
> instances is becoming very difficult and error-prone. We should refactor this
> to use the builder pattern. This will improve usability and readability of
> the code at the cost of some amount of code repetition due to limitations of
> the builder pattern itself.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)