You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "Vincenz Priesnitz (JIRA)" <ji...@apache.org> on 2013/05/10 17:25:14 UTC
[jira] [Created] (AVRO-1328) Java: Additional Annotations for
reflection
Vincenz Priesnitz created AVRO-1328:
---------------------------------------
Summary: 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
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