1.7 Object Class Flags

Besides basic information about containment classes, naming attributes, mandatory and optional attributes and super classes, NDS uses a set of flags to define allowable class operations. Developers, when extending the schema, can set the following flags on object class definitions.

Table 1-3 Object Class Flags

Flag

Description

Container

Indicates whether the object can contain other objects. The flag is turned On for those object classes that are designated as container classes. The flag is turned Off for all leaf object classes.

Effective

Indicates whether an object class is effective or not. The effective flag is turned On for those classes which can be used both to provide definition and to create objects. The effective flag is turned Off for those classes which provide definition but cannot be used to create objects

Auxiliary

Indicates that the object class is an auxiliary class. When this flag is turned on, the Effective and Container flags must be turned off. This flag is new in NDS 8. For more information on auxiliary classes, see Section 1.10, Auxiliary Classes

Non-removable

Indicates whether the object class can be removed from the schema. The flag is turned On for objects that cannot be removed. The flag is turned Off for object classes that can be removed. All base schema object classes are flagged nonremovable. Object classes added to extend the schema are the only classes that can have the nonremovable flag turned Off

In NDS 8, developers can turn this flag On. In previous NDS versions, the flag was reserved for NDS

NDS controls and sets the following flags.

Flag

Description

Ambiguous Containment

Indicates whether the object class has clearly defined containment classes. As a general rule, noneffective classes can be created with ambiguous containment, but effective classes must have nonambiguous containment. Ambiguous containment occurs when an object inherits non-identical containment classes from different super classes.

Only in special cases can effective classes be created with ambiguous containment. The Alias class object is one of these special cases since it needs to inherit the containment classes of its reference object class.

For most object classes in the base schema, the Ambiguous Container flag is turned Off. It is turned On for object classes Top, Alias, and Partition.

Ambiguous Naming

Indicates whether the object class has clearly defined naming attributes. As a general rule, noneffective classes can be created with ambiguous naming, but effective classes must have nonambiguous naming attributes. Ambiguous naming occurs when an object inherits non-identical naming attributes from different super classes.

Only in special cases can effective classes be created with ambiguous naming. The Alias class object is one of these special cases since it needs to inherit the naming attributes of its reference object class.

For most object classes in the base schema, the Ambiguous Naming flag is turned Off. The only object classes where this flag is turned On are Top, Alias, and Partition.

Operational

Indicates that NDS requires this object class to exist. This flag is turned ON for object classes that NDS must have in order to operate correctly.