private boolean supportedCategories(TypeInfo ti) {
    final ObjectInspector.Category c = ti.getCategory();
    return c.equals(ObjectInspector.Category.PRIMITIVE) ||
           c.equals(ObjectInspector.Category.MAP)       ||
           c.equals(ObjectInspector.Category.LIST)      ||
           c.equals(ObjectInspector.Category.STRUCT)    ||
           c.equals(ObjectInspector.Category.UNION);
  }
An AvroObjectInspectorGenerator takes an Avro schema and creates the three
data structures Hive needs to work with Avro-encoded data:
  * A list of the schema field names
  * A list of those fields equivalent types in Hive
  * An ObjectInspector capable of working with an instance of that datum.
serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroObjectInspectorGenerator.java