Classes

An object is a set of data combined with the logic to manipulate that data. A class describes an object. It is abstract in that it does not appear in the generated application, but it can be used to create objects which do. You should consult an object-oriented reference for details if you are unsure of its meaning. The following discussion is confined to aspects of classes that are specific to Agile Business Suite.

The following classes are available:

Refer to Model Entities for more information on namespace and ownership, valid member kinds, and visibility of classes.

Stereotyping

The term ‘stereotype’ is a UML (Unified Modeling Language) concept that applies special meaning to a model element. In Agile Business Suite, classes can be stereotyped.

A class's stereotype determines and distinguishes the manner in which it is interpreted during the processing cycles. For example, all ispec-stereotyped classes (ispecs) have built-in methods such as Process and Construct that are automatically called at appropriate points of the ispec processing cycle.

Classes that are not stereotyped do not possess any inherent behavior. These are Classes with no stereotype.

Inheritance (Applicable to Advanced and User Experience modes)

A class that inherits from another class has access to public and protected definitions in its superclass. Additionally, the inherited class forms a new type if the class definition is extended either by adding a member or by changing the semantic property of the class.

There are two types of properties relevant to a class namely, Descriptive and Semantic, which are explained as follows:

Note: Agile Business Suite supports single-inheritance. Multiple-inheritance is not supported.

Inheritance is manifested in the Inherits property of a class.

 Caution

Inheritance can not be used if:

  1. It would create a cycle in the inheritance hierarchy because the superclass is the same as the subclass or is one of its subclasses.

  2. It is an external class (IsExternal is True and Multiplicity is 0).

  3. The class or object is a member of the proposed superclass (either directly or through inheritance).

  4. The proposed superclass is an inner class and its outer class is contained by the class.

  5. The class and its proposed superclass are both inner classes, and the outer class is not the same as, or a subclass of the proposed superclass’s outer class.

  6. The class is a member of a group and the proposed superclass is either not primitive or is a not group.

  7. The class or the proposed superclass is a Group, Segment or Report class.

  8. The class is an Insertable class.

  9. The class has a different stereotype to the proposed superclass (except where the superclass has NoStereotype).

Additional restrictions might come from how the inheritance relationship is represented in the database. Where the superclass and subclasses are stored in the same table, the limit on the total number of attributes (4095 for MCP) is applied to the superclass and all its subclasses.

When referring to inheritance relationships between classes, the following terms are used:

Refer to Class Properties for properties applicable to base classes.