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

Scott Carey commented on AVRO-988:
----------------------------------

Overall looks good.  One minor detail:

{code}
  protected SpecificCompiler.FieldVisibility getFieldVisibility() {
    if (this.fieldVisibility == null) {
      return SpecificCompiler.FieldVisibility.PUBLIC_DEPRECATED;
    }
    String visibility = this.fieldVisibility.toUpperCase();
    for (SpecificCompiler.FieldVisibility enumValue : 
SpecificCompiler.FieldVisibility.values()) {
      if (enumValue.name().equals(visibility)) {
        return enumValue;
      }
    }
    return SpecificCompiler.FieldVisibility.PUBLIC_DEPRECATED;
  }
{code}

Prefer:
{code}
  protected SpecificCompiler.FieldVisibility getFieldVisibility() {
    try {
      String upper = String.valueOf(this.fieldVisibility).trim().toUpperCase();
      return SpecificCompiler.FieldVisibility.valueOf(upper);
    } catch (IllegalArgumentException e) {
      return SpecificCompiler.FieldVisibility.PUBLIC_DEPRECATED;
    }
  }
{code}
                
> Java:  Add public, private, and public-deprecated options for 
> SpecificCompiler output
> -------------------------------------------------------------------------------------
>
>                 Key: AVRO-988
>                 URL: https://issues.apache.org/jira/browse/AVRO-988
>             Project: Avro
>          Issue Type: Improvement
>          Components: java
>    Affects Versions: 1.7.2
>            Reporter: Scott Carey
>            Assignee: Jeff Kolesky
>             Fix For: 1.7.3
>
>         Attachments: AVRO-988.patch
>
>
> The specific compiler produces deprecation warnings in both client code and 
> the specific generated classes themselves.  The field visibility should be 
> configurable by the user.  
> I propose that the SpecificCompiler for the default template allow for a 
> fieldVisibility option that is one of the below:
> * 'public'  fields are public, and not deprecated, this is the 1.5.x behavior
> * 'public-deprecated'  fields are public, and marked @Deprecated.  This is 
> the default behavior in 1.6.x
> * 'private'  fields are private.  This may be the default in the future.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to