Jump to: navigation, search

OT Bytecode Attributes/OTClassFlags

Attribute OTClassFlags

Intent

The OTClassFlags attribute is used to store various properties of OT classes.

Location:

A team class or a role type.

Content:

An integer encoding the OT specific class flags (see Format).

Purpose:

Format:

   CallinFlags {
     u2 attribute_name_index;
     u4 attribute_length;
     u2 class_flags;
    }

The items of the OTClassFlags structure are as follows:

  • attribute_name_index
The constant_pool entry at that index must be a CONSTANT_Utf8_info representing the string "CallinRoleBaseBindings".
  • attribute_length
The value of the attribute_length item indicates the length of the attribute, excluding the initial six bytes.
  • class_flags
The value of the class_flags item is a mask of flags. The interpretation of each flag, when set, is as shown in the following:


Flag Name Value Interpretation
OT_CLASS_TEAM 1 this class is a team
OT_CLASS_ROLE 2 this class is a role
OT_CLASS_ROLE_LOCAL 4 this is a local class nested within a role
OT_CLASS_PURELY_COPIED 8 no source present for this class
OT_CLASS_ROLE_FILE 16 this role was compiled from a separate source file ("role file")
OT_CLASS_FLAG_HAS_TSUPER 32 this role overrides a role from the super team
OT_CLASS_CONFINED 64 superclass Object should be updated to __OT__Confined on loading