import org.codehaus.jackson.JsonGenerator; //导入方法依赖的package包/类
/** Called to write value.*/
protected void writeValue(Schema fieldSchema, Object datum, JsonGenerator generator) throws IOException {
try {
switch (fieldSchema.getType()) {
case INT:
generator.writeNumber(((Number) datum).intValue());
break;
case LONG:
generator.writeNumber((Long) datum);
break;
case DOUBLE:
generator.writeNumber((Double) datum);
break;
case BOOLEAN:
generator.writeBoolean((Boolean) datum);
break;
case STRING:
generator.writeString(datum.toString());
break;
case BYTES:
writeBytes(datum, generator);
break;
case NULL:
generator.writeNull();
break;
case RECORD:
writeRecord((RecordSchema) fieldSchema, datum, generator);
break;
case ENUM:
writeEnum((EnumSchema) fieldSchema, (Enum) datum, generator);
break;
case ARRAY:
writeArray((ArraySchema) fieldSchema, (List) datum, generator);
break;
case MAP:
writeMap((MapSchema) fieldSchema, (Map) datum, generator);
break;
case UNION:
writeUnion((UnionSchema) fieldSchema, datum, generator);
break;
default:
error(fieldSchema, datum);
}
} catch (NullPointerException e) {
throw npe(e, " of "+ fieldSchema.getName());
}
}