org.apache.avro.generic
Class GenericData

java.lang.Object
  extended by org.apache.avro.generic.GenericData
Direct Known Subclasses:
ProtobufData, SpecificData, ThriftData

public class GenericData
extends Object

Utilities for generic Java data.


Nested Class Summary
static class GenericData.Array<T>
          Default implementation of an array.
static class GenericData.EnumSymbol
          Default implementation of GenericEnumSymbol.
static class GenericData.Fixed
          Default implementation of GenericFixed.
static class GenericData.Record
          Default implementation of GenericRecord.
static class GenericData.StringType
          Used to specify the Java type for a string schema.
 
Field Summary
protected static String STRING_PROP
           
protected static String STRING_TYPE_STRING
           
 
Constructor Summary
protected GenericData()
           
 
Method Summary
 int compare(Object o1, Object o2, Schema s)
          Compare objects according to their schema.
protected  int compare(Object o1, Object o2, Schema s, boolean equals)
          Comparison implementation.
 Object createFixed(Object old, byte[] bytes, Schema schema)
          Called to create an fixed value.
 Object createFixed(Object old, Schema schema)
          Called to create an fixed value.
 Object deepCopy(Schema schema, Object value)
          Makes a deep copy of a value given its schema.
static GenericData get()
          Return the singleton instance.
protected  Schema getEnumSchema(Object enu)
          Called to obtain the schema of a enum.
 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.
protected  Object getField(Object record, String name, int pos, Object state)
          Version of getField(java.lang.Object, java.lang.String, int) that has state.
protected  Schema getFixedSchema(Object fixed)
          Called to obtain the schema of a fixed.
protected  Schema getRecordSchema(Object record)
          Called to obtain the schema of a record.
protected  Object getRecordState(Object record, Schema schema)
          Produce state for repeated calls to getField(Object,String,int,Object) and setField(Object,String,int,Object,Object) on the same record.
protected  String getSchemaName(Object datum)
          Return the schema full name for a datum.
 int hashCode(Object o, Schema s)
          Compute a hash code according to a schema, consistent with compare(Object,Object,Schema).
protected  int hashCodeAdd(int hashCode, Object o, Schema s)
          Add the hash code for an object into an accumulated hash code.
 Schema induce(Object datum)
          Create a schema given an example datum.
protected  boolean instanceOf(Schema schema, Object datum)
          Called by resolveUnion(Schema,Object).
protected  boolean isArray(Object datum)
          Called by the default implementation of instanceOf(org.apache.avro.Schema, java.lang.Object).
protected  boolean isBytes(Object datum)
          Called by the default implementation of instanceOf(org.apache.avro.Schema, java.lang.Object).
protected  boolean isEnum(Object datum)
          Called by the default implementation of instanceOf(org.apache.avro.Schema, java.lang.Object).
protected  boolean isFixed(Object datum)
          Called by the default implementation of instanceOf(org.apache.avro.Schema, java.lang.Object).
protected  boolean isMap(Object datum)
          Called by the default implementation of instanceOf(org.apache.avro.Schema, java.lang.Object).
protected  boolean isRecord(Object datum)
          Called by the default implementation of instanceOf(org.apache.avro.Schema, java.lang.Object).
protected  boolean isString(Object datum)
          Called by the default implementation of instanceOf(org.apache.avro.Schema, java.lang.Object).
 Object newRecord(Object old, Schema schema)
          Called to create new record instances.
 int resolveUnion(Schema union, Object datum)
          Return the index for a datum within a union.
 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.
protected  void setField(Object r, String n, int p, Object o, Object state)
          Version of setField(java.lang.Object, java.lang.String, int, java.lang.Object) that has state.
static void setStringType(Schema s, GenericData.StringType stringType)
          Set the Java type to be used when reading this schema.
 String toString(Object datum)
          Renders a Java datum as JSON.
protected  void toString(Object datum, StringBuilder buffer)
          Renders a Java datum as JSON.
 boolean validate(Schema schema, Object datum)
          Returns true if a Java datum matches a schema.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

STRING_PROP

protected static final String STRING_PROP
See Also:
Constant Field Values

STRING_TYPE_STRING

protected static final String STRING_TYPE_STRING
See Also:
Constant Field Values
Constructor Detail

GenericData

protected GenericData()
Method Detail

setStringType

public static void setStringType(Schema s,
                                 GenericData.StringType stringType)
Set the Java type to be used when reading this schema. Meaningful only only string schemas and map schemas (for the keys).


get

public static GenericData get()
Return the singleton instance.


validate

public boolean validate(Schema schema,
                        Object datum)
Returns true if a Java datum matches a schema.


toString

public String toString(Object datum)
Renders a Java datum as JSON.


toString

protected void toString(Object datum,
                        StringBuilder buffer)
Renders a Java datum as JSON.


induce

public Schema induce(Object datum)
Create a schema given an example datum.


setField

public 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. The default implementation is for IndexedRecord.


getField

public 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. The default implementation is for IndexedRecord.


getRecordState

protected Object getRecordState(Object record,
                                Schema schema)
Produce state for repeated calls to getField(Object,String,int,Object) and setField(Object,String,int,Object,Object) on the same record.


setField

protected void setField(Object r,
                        String n,
                        int p,
                        Object o,
                        Object state)
Version of setField(java.lang.Object, java.lang.String, int, java.lang.Object) that has state.


getField

protected Object getField(Object record,
                          String name,
                          int pos,
                          Object state)
Version of getField(java.lang.Object, java.lang.String, int) that has state.


resolveUnion

public int resolveUnion(Schema union,
                        Object datum)
Return the index for a datum within a union. Implemented with Schema.getIndexNamed(String) and #getSchemaName(Schema,Object).


getSchemaName

protected String getSchemaName(Object datum)
Return the schema full name for a datum. Called by resolveUnion(Schema,Object).


instanceOf

protected boolean instanceOf(Schema schema,
                             Object datum)
Called by resolveUnion(Schema,Object). May be overridden for alternate data representations.


isArray

protected boolean isArray(Object datum)
Called by the default implementation of instanceOf(org.apache.avro.Schema, java.lang.Object).


isRecord

protected boolean isRecord(Object datum)
Called by the default implementation of instanceOf(org.apache.avro.Schema, java.lang.Object).


getRecordSchema

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


isEnum

protected boolean isEnum(Object datum)
Called by the default implementation of instanceOf(org.apache.avro.Schema, java.lang.Object).


getEnumSchema

protected Schema getEnumSchema(Object enu)
Called to obtain the schema of a enum. By default calls {GenericContainer#getSchema(). May be overridden for alternate enum representations.


isMap

protected boolean isMap(Object datum)
Called by the default implementation of instanceOf(org.apache.avro.Schema, java.lang.Object).


isFixed

protected boolean isFixed(Object datum)
Called by the default implementation of instanceOf(org.apache.avro.Schema, java.lang.Object).


getFixedSchema

protected Schema getFixedSchema(Object fixed)
Called to obtain the schema of a fixed. By default calls {GenericContainer#getSchema(). May be overridden for alternate fixed representations.


isString

protected boolean isString(Object datum)
Called by the default implementation of instanceOf(org.apache.avro.Schema, java.lang.Object).


isBytes

protected boolean isBytes(Object datum)
Called by the default implementation of instanceOf(org.apache.avro.Schema, java.lang.Object).


hashCode

public int hashCode(Object o,
                    Schema s)
Compute a hash code according to a schema, consistent with compare(Object,Object,Schema).


hashCodeAdd

protected int hashCodeAdd(int hashCode,
                          Object o,
                          Schema s)
Add the hash code for an object into an accumulated hash code.


compare

public int compare(Object o1,
                   Object o2,
                   Schema s)
Compare objects according to their schema. If equal, return zero. If greater-than, return 1, if less than return -1. Order is consistent with that of BinaryData.compare(byte[], int, byte[], int, Schema).


compare

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


deepCopy

public Object deepCopy(Schema schema,
                       Object value)
Makes a deep copy of a value given its schema.

Parameters:
schema - the schema of the value to deep copy.
value - the value to deep copy.
Returns:
a deep copy of the given value.

createFixed

public Object createFixed(Object old,
                          Schema schema)
Called to create an fixed value. May be overridden for alternate fixed representations. By default, returns GenericFixed.


createFixed

public Object createFixed(Object old,
                          byte[] bytes,
                          Schema schema)
Called to create an fixed value. May be overridden for alternate fixed representations. By default, returns GenericFixed.


newRecord

public Object newRecord(Object old,
                        Schema schema)
Called to create new record instances. Subclasses may override to use a different record implementation. The returned instance must conform to the schema provided. If the old object contains fields not present in the schema, they should either be removed from the old object, or it should create a new instance that conforms to the schema. By default, this returns a GenericData.Record.



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