/* build attribute descriptions */
Hashtable atts = new Hashtable();
for( int a = 0; a < att_defs.length; a++ )
{
AttributeDescription att = att_defs[a].describe_attribute();
atts.put( att.name, att );
}
/* get attribute descriptions from super types */
for( int baseAtts = 0; baseAtts < baseDescriptions.length; baseAtts++ )
{
for( int bbaseAtts = 0;
bbaseAtts < baseDescriptions[ baseAtts ].attributes.length;
bbaseAtts++ )
{
AttributeDescription base_att =
baseDescriptions[ baseAtts ].attributes[ bbaseAtts ];
if( !atts.containsKey( base_att.name ))
atts.put( base_att.name, base_att );
}