avro-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vincenz Priesnitz (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (AVRO-1328) Java: Additional annotations for reflection
Date Fri, 10 May 2013 15:35:15 GMT

     [ https://issues.apache.org/jira/browse/AVRO-1328?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Vincenz Priesnitz updated AVRO-1328:
------------------------------------

    Summary: Java: Additional annotations for reflection  (was: Java: Additional Annotations
for reflection)
    
> Java: Additional annotations for reflection
> -------------------------------------------
>
>                 Key: AVRO-1328
>                 URL: https://issues.apache.org/jira/browse/AVRO-1328
>             Project: Avro
>          Issue Type: New Feature
>          Components: java
>            Reporter: Vincenz Priesnitz
>            Priority: Minor
>         Attachments: AVRO-1328.patch
>
>
> I added three java annotations to the reflect package: @AvroIgnore, @AvroName and @AvroMetadata.
> Fields with the @AvroIgnore annotation will be treated as if they had a transient modifier,
i.e. they will not be written to or rad from avro files. 
> Java fields with the @AvroName("alt_name") annotation will be renamed in the induced
schema.
> When reading an avro file into a new class via reflection, the reflection reader will
also look for fields in the schema with the avro name. 
> For example, schema 'example' could be read into the class 'exampleClass'.
> {code}
> class exampleClass {
>    @Avroname("foo")
>    int bar;  
> }
> {code}
> {code}
> {
>   "type" : "record",
>   "name" : "example",
>   "fields" : [ {"name" : "foo", "type" : "int" } ]
> }
> {code}
> The @AvroMetadata(key="KEY", value="VALUE") annotation allows you to put an arbitrary
key : value pair at every node in the schema.
> {code}
> @AvroMetadata(key="classKey", value="classValue")
> class exampleClass {
>    @AvroMetadata(key="fieldKey", value="fieldValue")
>    int foo;  
>    
> }
> {code}
> {code}
> {
>   "type" : "record",
>   "name" : "example",
>   "fields" : [ {"name" : "foo", "type" : "int", "fieldKey" : "fieldValue" } ];
>   "classKey" : "classValue"
> }
> {code}
> I also extended the @Stringable annotation to java fields. 
> This way one can turn objects to strings where the fnnotation cannot be added to the
class itself. 

--
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

Mime
View raw message