public class ReflectData extends SpecificData
Modifier and Type | Class and Description |
---|---|
static class |
ReflectData.AllowNull
ReflectData implementation that permits null field values. |
SpecificData.SchemaConstructable
GenericData.Array<T>, GenericData.EnumSymbol, GenericData.Fixed, GenericData.InstanceSupplier, GenericData.Record, GenericData.StringType
RESERVED_WORDS, stringableClasses
FAST_READER_PROP, STRING_PROP, STRING_TYPE_STRING
Constructor and Description |
---|
ReflectData()
For subclasses.
|
ReflectData(ClassLoader classLoader)
Construct with a particular classloader.
|
Modifier and Type | Method and Description |
---|---|
ReflectData |
addStringable(Class c)
Cause a class to be treated as though it had an
Stringable *
annotation. |
protected int |
compare(Object o1,
Object o2,
Schema s,
boolean equals)
Comparison implementation.
|
DatumReader |
createDatumReader(Schema schema)
Returns a
DatumReader for this kind of data. |
DatumReader |
createDatumReader(Schema writer,
Schema reader)
Returns a
DatumReader for this kind of data. |
DatumWriter |
createDatumWriter(Schema schema)
Returns a
DatumWriter for this kind of data. |
protected Schema |
createFieldSchema(Field field,
Map<String,Schema> names)
Create a schema for a field.
|
Object |
createFixed(Object old,
Schema schema)
Called to create an fixed value.
|
protected Schema |
createSchema(Type type,
Map<String,Schema> names)
Create the schema for a Java type.
|
protected Object |
createSchemaDefaultValue(Type type,
Field field,
Schema fieldSchema)
Get default value for a schema field.
|
static ReflectData |
get()
Return the singleton instance.
|
protected Collection |
getArrayAsCollection(Object datum)
Called to access an array as a collection.
|
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. |
protected Object |
getField(Object record,
String name,
int pos,
Object state)
Version of
GenericData.getField(java.lang.Object, java.lang.String, int) that has state. |
protected Object |
getOrCreateDefaultValue(Type type)
Get or create new value instance for a type.
|
protected Object |
getOrCreateDefaultValue(Type type,
Field field)
Get or create new value instance for a field
|
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 Object |
getRecordState(Object record,
Schema schema)
Produce state for repeated calls to
GenericData.getField(Object,String,int,Object) and
GenericData.setField(Object,String,int,Object,Object) on the same record. |
protected boolean |
isArray(Object datum)
Returns true for arrays and false otherwise, with the following exceptions:
|
protected boolean |
isBytes(Object datum)
Called by the default implementation of
GenericData.instanceOf(org.apache.avro.Schema, java.lang.Object) . |
protected boolean |
isMap(Object datum)
It returns false for non-string-maps because Avro writes out such maps as an
array of records.
|
protected boolean |
isRecord(Object datum)
Called by the default implementation of
GenericData.instanceOf(org.apache.avro.Schema, java.lang.Object) . |
protected boolean |
isStringable(Class<?> c)
True if a class should be serialized with toString().
|
static Schema |
makeNullable(Schema schema)
Create and return a union of the null schema and the provided schema.
|
Object |
newRecord(Object old,
Schema schema)
Called to create new record instances.
|
ReflectData |
setDefaultGeneratedValue(Type type,
Object value)
Set the default value for a type.
|
ReflectData |
setDefaultsGenerated(boolean enabled)
Enable or disable `default reflection`
|
void |
setField(Object record,
String name,
int position,
Object value)
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 record,
String name,
int position,
Object value,
Object state)
Version of
GenericData.setField(java.lang.Object, java.lang.String, int, java.lang.Object) that has state. |
boolean |
useCustomCoders()
Retrieve the current value of the custom-coders feature flag.
|
boolean |
validate(Schema schema,
Object datum)
Returns true if a Java datum matches a schema.
|
createEnum, createString, getClassName, getDecoder, getEncoder, getEnumSchema, getForClass, getForSchema, getNewRecordSupplier, getSchema, getSchemaName, isEnum, isStringType, newInstance, setCustomCoders
addLogicalTypeConversion, compare, createFixed, deepCopy, getClassLoader, getConversionByClass, getConversionByClass, getConversionFor, getConversions, getDefaultValue, getFastReaderBuilder, getFixedSchema, hashCode, hashCodeAdd, induce, instanceOf, isBoolean, isDouble, isFastReaderEnabled, isFixed, isFloat, isInteger, isLong, isString, newArray, newMap, resolveUnion, setFastReaderEnabled, setStringType, toString, toString
public ReflectData()
get()
.public ReflectData(ClassLoader classLoader)
public boolean useCustomCoders()
SpecificData
true
, but this default can be overriden using the system
property org.apache.avro.specific.use_custom_coders
, and can be
set dynamically by SpecificData.useCustomCoders()
. See for more about this feature flag.useCustomCoders
in class SpecificData
public static ReflectData get()
public ReflectData addStringable(Class c)
Stringable
*
annotation.public ReflectData setDefaultsGenerated(boolean enabled)
enabled
- set to `true` to enable the feature. This feature is disabled
by defaultpublic ReflectData setDefaultGeneratedValue(Type type, Object value)
NOTE: This method automatically enable feature `default reflection`.
type
- The typevalue
- Its default valueprotected Object getOrCreateDefaultValue(Type type, Field field)
type
- The current typefield
- A child fieldprotected Object getOrCreateDefaultValue(Type type)
type
- The typepublic DatumReader createDatumReader(Schema schema)
GenericData
DatumReader
for this kind of data.createDatumReader
in class SpecificData
public DatumReader createDatumReader(Schema writer, Schema reader)
GenericData
DatumReader
for this kind of data.createDatumReader
in class SpecificData
public DatumWriter createDatumWriter(Schema schema)
GenericData
DatumWriter
for this kind of data.createDatumWriter
in class SpecificData
public void setField(Object record, String name, int position, Object value)
GenericData
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
.setField
in class GenericData
protected void setField(Object record, String name, int position, Object value, Object state)
GenericData
GenericData.setField(java.lang.Object, java.lang.String, int, java.lang.Object)
that has state.setField
in class GenericData
public Object getField(Object record, String name, int position)
GenericData
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
.getField
in class GenericData
protected Object getField(Object record, String name, int pos, Object state)
GenericData
GenericData.getField(java.lang.Object, java.lang.String, int)
that has state.getField
in class GenericData
protected boolean isRecord(Object datum)
GenericData
GenericData.instanceOf(org.apache.avro.Schema, java.lang.Object)
.isRecord
in class GenericData
protected boolean isArray(Object datum)
Returns true for non-string-keyed maps, which are written as an array of key/value pair records.
Returns false for arrays of bytes, since those should be treated as byte data type instead.
isArray
in class GenericData
protected Collection getArrayAsCollection(Object datum)
GenericData
getArrayAsCollection
in class GenericData
protected boolean isBytes(Object datum)
GenericData
GenericData.instanceOf(org.apache.avro.Schema, java.lang.Object)
.isBytes
in class GenericData
protected Schema getRecordSchema(Object record)
GenericData
getRecordSchema
in class GenericData
public boolean validate(Schema schema, Object datum)
GenericData
validate
in class GenericData
protected boolean isMap(Object datum)
isMap
in class GenericData
public Class getClass(Schema schema)
SpecificData
getClass
in class SpecificData
protected Object createSchemaDefaultValue(Type type, Field field, Schema fieldSchema)
type
- Typefield
- FieldfieldSchema
- Schema of the fieldprotected Schema createSchema(Type type, Map<String,Schema> names)
SpecificData
createSchema
in class SpecificData
protected boolean isStringable(Class<?> c)
SpecificData
isStringable
in class SpecificData
public static Schema makeNullable(Schema schema)
protected Schema createFieldSchema(Field field, Map<String,Schema> names)
public Protocol getProtocol(Class iface)
The correct name of the method parameters needs the -parameters
java compiler argument. More info at https://openjdk.java.net/jeps/118
getProtocol
in class SpecificData
protected int compare(Object o1, Object o2, Schema s, boolean equals)
GenericData
compare
in class SpecificData
protected Object getRecordState(Object record, Schema schema)
GenericData
GenericData.getField(Object,String,int,Object)
and
GenericData.setField(Object,String,int,Object,Object)
on the same record.getRecordState
in class GenericData
public Object createFixed(Object old, Schema schema)
GenericData
GenericFixed
.createFixed
in class SpecificData
public Object newRecord(Object old, Schema schema)
GenericData
GenericData.Record
.newRecord
in class SpecificData
Copyright © 2009–2020 The Apache Software Foundation. All rights reserved.