[
https://issues.apache.org/jira/browse/AVRO-1633?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Niels Basjes updated AVRO-1633:
-------------------------------
Description:
The currently generated code contains these two methods for the Builder
instances (code sample was simplified):
{code}public Request.Builder setConnection(NetworkConnection value)
public Request.Builder setConnectionBuilder(NetworkConnection.Builder
value){code}
My proposal: Add in addition the method:
{code}public Request.Builder setConnection(NetworkConnection.Builder
value){code}
Advantage:
You can do {{.setConnection(something)}} and pass either a
{{NetworkConnection}} or a {{NetworkConnection.Builder}}.
Disadvantage:
Explicitly setting a {{null}} will trigger a "Multiple implementations" error
and as such will need an explicit typecast.
This may be considered breaking backward compatibility!
was:
The currently generated code contains these two methods for the Builder
instances (code sample was simplified):
{code}public Request.Builder setConnection(NetworkConnection value)
public Request.Builder setConnectionBuilder(NetworkConnection.Builder
value){code}
My proposal: Add in addition the method:
{code}public Request.Builder setConnection(NetworkConnection.Builder
value){code}
Advantage:
You can do {{.setConnection(something)}} and pass either a
{{NetworkConnection}} or a {{NetworkConnection.Builder}}.
Disadvantage:
Explicitly setting a {{null}} will trigger a "Multiple implementations" error
and as such will need an explicit typecast.
> Add additional setXxx(Builder) method to make user code more readable.
> ----------------------------------------------------------------------
>
> Key: AVRO-1633
> URL: https://issues.apache.org/jira/browse/AVRO-1633
> Project: Avro
> Issue Type: Improvement
> Components: java
> Affects Versions: 1.8.0
> Reporter: Niels Basjes
> Assignee: Niels Basjes
> Fix For: 1.8.0
>
> Attachments: AVRO-1633-2015-01-20-v1.patch
>
>
> The currently generated code contains these two methods for the Builder
> instances (code sample was simplified):
> {code}public Request.Builder setConnection(NetworkConnection value)
> public Request.Builder setConnectionBuilder(NetworkConnection.Builder
> value){code}
> My proposal: Add in addition the method:
> {code}public Request.Builder setConnection(NetworkConnection.Builder
> value){code}
> Advantage:
> You can do {{.setConnection(something)}} and pass either a
> {{NetworkConnection}} or a {{NetworkConnection.Builder}}.
> Disadvantage:
> Explicitly setting a {{null}} will trigger a "Multiple implementations" error
> and as such will need an explicit typecast.
> This may be considered breaking backward compatibility!
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)