You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "Scott Carey (JIRA)" <ji...@apache.org> on 2012/11/29 02:46:59 UTC

[jira] [Commented] (AVRO-988) Java: Add public, private, and public-deprecated options for SpecificCompiler output

    [ 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