Hashtable ops = new Hashtable();
for( int c = 0; c < op_defs.length; c++ )
{
OperationDescription operation = op_defs[c].describe_operation();
ops.put( operation.name, operation );
}
/* get operation descriptions from super types, potentially duplicate
descriptions due to diamond inheritance are removed by hashing
*/
for( int baseOps = 0; baseOps < baseDescriptions.length; baseOps++ )
{
for( int bbaseOps = 0;
bbaseOps < baseDescriptions[baseOps].operations.length;
bbaseOps++ )
{
OperationDescription base_op =
baseDescriptions[baseOps].operations[bbaseOps];
if( !ops.containsKey( base_op.name ))
ops.put( base_op.name, base_op );
}