19 using System.Collections;
38 for (
int i = 0; i < writers.Length; i++)
40 var writer = writers[i];
41 writer.
WriteField(record.Get(writer.Field.Pos), encoder);
60 var enumNames = Enum.GetNames(type);
61 var translator =
new int[enumNames.Length];
62 for(
int i = 0; i < enumNames.Length; i++)
66 translator[i] = es.
Ordinal(enumNames[i]);
78 if(v.GetType() == type)
80 int translated = translator[(int)v];
87 e.WriteEnum(translated);
92 e.WriteEnum(es.
Ordinal(v.ToString()));
100 if (fixedrec ==
null)
103 encoder.WriteFixed(fixedrec.Value);
122 return obj is double;
124 return obj is
byte[];
126 return obj is string;
132 return obj.GetType().IsEnum && (sc as
EnumSchema).Symbols.Contains(obj.ToString());
134 return obj is System.Collections.IList;
136 return obj is System.Collections.IDictionary;
147 class SpecificArrayAccess : ArrayAccess
149 public void EnsureArrayObject(
object value )
151 if( !( value is System.Collections.IList ) )
157 public long GetArrayLength(
object value)
159 return ((IList)value).Count;
162 public void WriteArrayValues(
object array,
WriteItem valueWriter,
Encoder encoder)
164 var list = (IList) array;
165 for (
int i = 0; i < list.Count; i++ )
167 valueWriter(list[i], encoder);
override void WriteRecordFields(object recordObj, RecordFieldWriter[] writers, Encoder encoder)
override void WriteField(object record, string fieldName, int fieldPos, WriteItem writer, Encoder encoder)
Extracts the field value from the given object.
Class for enum type schemas
Base class for all schema types
override void WriteFixed(FixedSchema schema, object value, Encoder encoder)
Serialized a fixed object.
bool Contains(string symbol)
Checks if given symbol is in the list of enum symbols
Interface class for generated classes
Type
Enum for schema types
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
int Ordinal(string symbol)
Returns the position of the given symbol within this enum.
Class to store schema name, namespace and enclosing namespace
Base class for all generated classes
PreresolvingDatumWriter for writing data from ISpecificRecord classes.
override bool Equals(Object obj)
Compares two schema names
Type GetType(Schema schema)
Gets the type for the specified schema
override WriteItem ResolveEnum(EnumSchema es)
Serializes an enumeration.
static ObjectCreator Instance
A general purpose writer of data from avro streams.
SpecificDatumWriter(Schema schema)
Type Tag
Schema type property
delegate void WriteItem(Object value, Encoder encoder)
override void EnsureRecordObject(RecordSchema recordSchema, object value)
override bool UnionBranchMatches(Schema sc, object obj)