    All Packages  Class Hierarchy  This Package  Previous  Next  Index

# Class jtelos.cpp.cppOmegaAttributeClass

    java.lang.Object
       |
       +----jtelos.cpp.cppProposition
               |
               +----jtelos.cpp.cppAttribute
                       |
                       +----jtelos.cpp.cppOmegaAttributeClass

public class cppOmegaAttributeClass
extends cppAttribute
implements OmegaAttributeClass

Omega level attribute classes in Telos are represented by objects instantiated from this class. In particular, the following Omega attribute classes are represented:

- `Attribute`, which has all Telos attributes as instances. Moreover, `Attribute` is itself an attribute. Hence, `Attribute` is an instance of itself. It has both source and destination (`to` and `from`) the Omega class `Proposition`. Its label is `attribute`.
- `AttributeClass`, which has all Telos attribute classes as instances. Like `Attribute`, `AttributeClass` is itself an attribute. Hence, since it it also a class (indeed, it is an Omega class), `AttributeClass` is an instance of itself. It has both source and destination (`to` and `from`) the Omega class `Class`. Just like the Omega attribute `Attribute`, `AttributeClass`'s label is also `attribute`.

It is these two Omega attribute classes that make the attribute mechanism in Telos possible. Indeed, since all Telos propositions are instances of the Omega class `Proposition`, all Telos propositions can declare an attribute with category `attribute` and target any other Telos proposition; such attributes will be instances of the Omega attribute class `Attribute`. Also, since all Telos classes are instances of the Omega class `Class`, all Telos classes can declare an attribute with category `attribute` and target any other Telos class; such attributes will be instances of the Omega attribute class `AttributeClass`.

Note that both `Attribute` and `AttributeClass` are instances of the Omega individual classes `Proposition`, `Class` and `OmegaClass` (see and for more details). Finally since both `Attribute` and `AttributeClass` are attributes and classes, they are each instances of each other.

There are two further special Omega attribute class defined in Telos. These are the attributes `Single` and `Necessary`. These attributes are also represented by this interface. Some implementations may choose not to support these two attributes. Both of these Omega attributes `Single`have both source and destination (`to` and `from`) the Omega class `Class`. The attribute `Single`'s label is `single` while the attribute `Necessary`'s label is `necessary`.``

See Also:
  cppProposition, cppIndividual, cppOmegaClass, cppOmegaIndividualClass, OmegaAttributeClass

    All Packages  Class Hierarchy  This Package  Previous  Next  Index