org.apache.avro.reflect
Class ReflectData

java.lang.Object
  extended by org.apache.avro.generic.GenericData
      extended by org.apache.avro.specific.SpecificData
          extended by org.apache.avro.reflect.ReflectData
Direct Known Subclasses:
ReflectData.AllowNull

public class ReflectData
extends SpecificData

Utilities to use existing Java classes and interfaces via reflection.


Nested Class Summary
static class ReflectData.AllowNull
          ReflectData implementation that permits null field values.
 
Nested classes/interfaces inherited from class org.apache.avro.generic.GenericData
GenericData.Array<T>, GenericData.EnumSymbol, GenericData.Fixed, GenericData.Record
 
Constructor Summary
protected ReflectData()
           
 
Method Summary
protected  int compare(Object o1, Object o2, Schema s, boolean equals)
          Comparison implementation.
protected  Schema createFieldSchema(Field field, Map<String,Schema> names)
          Create a schema for a field.
protected  Schema createSchema(Type type, Map<String,Schema> names)
          Create the schema for a Java type.
static ReflectData get()
          Return the singleton instance.
 Class getClass(Schema schema)
          Return the class that implements a schema, or null if none exists.
 Object getField(Object record, String name, int position)
          Called by GenericDatumReader.readRecord(java.lang.Object, org.apache.avro.Schema, org.apache.avro.io.ResolvingDecoder) to retrieve a record field value from a reused instance.
 Protocol getProtocol(Class iface)
          Return the protocol for a Java interface.
protected  Schema getRecordSchema(Object record)
          Called to obtain the schema of a record.
protected  boolean isArray(Object datum)
          Called by the default implementation of GenericData.instanceOf(org.apache.avro.Schema, java.lang.Object).
protected  boolean isBytes(Object datum)
          Called by the default implementation of GenericData.instanceOf(org.apache.avro.Schema, java.lang.Object).
protected  boolean isRecord(Object datum)
          Called by the default implementation of GenericData.instanceOf(org.apache.avro.Schema, java.lang.Object).
static Schema makeNullable(Schema schema)
          Create and return a union of the null schema and the provided schema.
 void setField(Object record, String name, int position, Object o)
          Called by GenericDatumReader.readRecord(java.lang.Object, org.apache.avro.Schema, org.apache.avro.io.ResolvingDecoder) to set a record fields value to a record instance.
 boolean validate(Schema schema, Object datum)
          Returns true if a Java datum matches a schema.
 
Methods inherited from class org.apache.avro.specific.SpecificData
getClassName, getEnumSchema, getSchema, isEnum
 
Methods inherited from class org.apache.avro.generic.GenericData
compare, getFixedSchema, hashCode, hashCodeAdd, induce, instanceOf, isFixed, isMap, isString, resolveUnion, toString, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ReflectData

protected ReflectData()
Method Detail

get

public static ReflectData get()
Return the singleton instance.


setField

public void setField(Object record,
                     String name,
                     int position,
                     Object o)
Description copied from class: GenericData
Called by GenericDatumReader.readRecord(java.lang.Object, org.apache.avro.Schema, org.apache.avro.io.ResolvingDecoder) to set a record fields value to a record instance. The default implementation is for IndexedRecord.

Overrides:
setField in class GenericData

getField

public Object getField(Object record,
                       String name,
                       int position)
Description copied from class: GenericData
Called by GenericDatumReader.readRecord(java.lang.Object, org.apache.avro.Schema, org.apache.avro.io.ResolvingDecoder) to retrieve a record field value from a reused instance. The default implementation is for IndexedRecord.

Overrides:
getField in class GenericData

isRecord

protected boolean isRecord(Object datum)
Description copied from class: GenericData
Called by the default implementation of GenericData.instanceOf(org.apache.avro.Schema, java.lang.Object).

Overrides:
isRecord in class GenericData

isArray

protected boolean isArray(Object datum)
Description copied from class: GenericData
Called by the default implementation of GenericData.instanceOf(org.apache.avro.Schema, java.lang.Object).

Overrides:
isArray in class GenericData

isBytes

protected boolean isBytes(Object datum)
Description copied from class: GenericData
Called by the default implementation of GenericData.instanceOf(org.apache.avro.Schema, java.lang.Object).

Overrides:
isBytes in class GenericData

getRecordSchema

protected Schema getRecordSchema(Object record)
Description copied from class: GenericData
Called to obtain the schema of a record. By default calls {GenericContainer#getSchema(). May be overridden for alternate record representations.

Overrides:
getRecordSchema in class GenericData

validate

public boolean validate(Schema schema,
                        Object datum)
Description copied from class: GenericData
Returns true if a Java datum matches a schema.

Overrides:
validate in class GenericData

getClass

public Class getClass(Schema schema)
Description copied from class: SpecificData
Return the class that implements a schema, or null if none exists.

Overrides:
getClass in class SpecificData

createSchema

protected Schema createSchema(Type type,
                              Map<String,Schema> names)
Description copied from class: SpecificData
Create the schema for a Java type.

Overrides:
createSchema in class SpecificData

makeNullable

public static Schema makeNullable(Schema schema)
Create and return a union of the null schema and the provided schema.


createFieldSchema

protected Schema createFieldSchema(Field field,
                                   Map<String,Schema> names)
Create a schema for a field.


getProtocol

public Protocol getProtocol(Class iface)
Return the protocol for a Java interface.

Note that this requires that Paranamer is run over compiled interface declarations, since Java 6 reflection does not provide access to method parameter names. See Avro's build.xml for an example.

Overrides:
getProtocol in class SpecificData

compare

protected int compare(Object o1,
                      Object o2,
                      Schema s,
                      boolean equals)
Description copied from class: GenericData
Comparison implementation. When equals is true, only checks for equality, not for order.

Overrides:
compare in class SpecificData


Copyright © 2011 The Apache Software Foundation. All Rights Reserved.