Classes
A class is an aggregation of properties and operations that describes a complex data type from which objects can be created. You can configure classes as described on Changing the Attributes of Data Model Elements.
Attribute | Description |
---|---|
General | Specify a general class. Generalizations define that one class inherits properties and operations from another class. Refer to Relationships for more. |
Interfaces | Specify interfaces to derive operations from. In contrast to a class, an interface has no properties nor implementations. Interfaces are used to define common operations for multiple classes. In the deriving class, you must implement all interface operations. Refer to Interfaces for more. |
Extensions | You can apply extensions to a class to be able to access more configuration options, e.g. to control XML Serialization. |
Instances of a class can be created using the create statement. Classes are not only identified by their name but also by their path in the data model. This said, Implementation.Order.Customer is a different class than Implementation.Quote.Customer.
Troubleshooting
As mentioned before, classes are not only identified by their name but also by their path in the data model. In some cases this does not apply, e.g. when objects are serialized to the persisted event queue. When this queue is parsed, only the name of the class is taken into account. This can lead to compiler errors like the following:
class "urn:<path to the class>.aClass" does not support operation "anOperation$$1912144410"
This error occurs if the class aClass has been defined twice in your model, having the same name and namespace but with different paths in the data model. The compiler cannot distinct both classes in this case and randomly pics one of them to look for the related operation.
To avoid this you can
Rename one of the classes.
Apply a divergent namespace to one of the classes using the extension XML (refer to Control Flow for more information on this stereotype).
Related Content
Related Pages:
- Class Properties
How class properties can be customized.
- Classes
How classes can be customized.