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


Reply via email to