Jump to: navigation, search

OT Bytecode Attributes/BoundClassesHierarchy

Attribute BoundClassesHierarchy

Intent

The BoundClassesHierarchy stores inheritance information regarding roles and bound bases for a given team.

Location:

A team class containing bound roles.

Content:

A list of pairs of sub type names and super type names. For each pair in this least either

  • both types are roles of the given team, or
  • both types are base classes bound by some role of the given team.

In each pair the first element (sub type) is a (indirect) sub type of the second element (super type)

Purpose:

The OTRE uses this attribute for lookup of sub-type relations without needing to ask the Repository. The binding information (sub -> super) is stored and used for various transformations.

Format:

  BoundClassesHierarchy {
     u2 attribute_name_index;
     u4 attribute_length;
     u2 subtype_count;
     SubtypeInfo [subtype_count];
  }
  SubtypeInfo {
     u2 subtype_name_index;
     u2 supertype_name_index;
  }

The items of the BoundClassesHierarchy structure are as follows:

  • attribute_name_index
The constant_pool entry at that index must be a CONSTANT_Utf8_info representing the string "BoundClassesHierarchy".
  • attribute_length
The value of the attribute_length item indicates the length of the attribute, excluding the initial six bytes.
  • subtype_count
The number of SubtypeInfo records

The items of the SubtypeInfo structure are as follows:

  • subtype_name_index
The constant_pool index of the string-encoded name of a sub type in a subtype relationship
  • supertype_name_index
The constant_pool index of the string-encoded name of a super type in a subtype relationship