On 3/31/11 4:56 PM, "felix gao" <[email protected]<mailto:[email protected]>>
wrote:
I have create a schema as
{
"namespace": "avro.test",
"name": "testTransferObject",
"type": "map",
"values": {
"type": "array",
"items" : {
"type" : "map",
"values" : {
"namespace":"avro.test",
"name" : "entry",
"type" : "record",
"fields" : [
{"name":"Id", "type":"int"},
{"name":"Category1", "type":"long"},
{"name":"Category2", "type":"long"},
{"name":"Segment1", "type":"long"},
{"name":"Segment2", "type":"long"},
{"name":"index", "type":"double"}
]
}
}
}
}
The code generated by pecificCompiler.compileSchema only contains entry under
the package avro.test. I am wondering where is the Map and Array go?
Avro maps and arrays become java Map and List objects respectively. There is
no reason to compile them. The SpecificRecord for the array above is:
List<Map<Utf8, avro.test.entry>>
As Doug points out, the top level map is not a named data type, so it is not
generated. Only record, enum, and fixed result in generated classes. In code
it would be of type:
Map<Utf8, List<Map<Utf8, avro.test.entry>>>
And the wrapper object testTransferObject does not seems to be generated.
Thanks,
Felix