The Containers package is a set of template and non-template classes implement relationships (associations and aggregations) in the object model of the application. Each container class is suitable for different relation attributes. Some of the containers (such as OMStack, OMQueue and OMHeap) are not used for relation implementation. They are used internally in the framework, and can also be used directly by the client application.
The OXF container classes provide the default implementation for the relations in the object model. The IBM® Rational® Rhapsody® code generator can be parameterized to use an off-the-shelf container library, for example, RogueWave™, MFC, or the Standard Template Library (STL), instead of its "native" container library. The relation implementation with STL containers is supported out-of-the-box by the product.
Rational Rhapsody uses containers to implement to-many relations between objects. These include relationships of one object to many, or many objects to many. Rational Rhapsody automatically selects the appropriate container to implement the behaviors of various relations based on the multiplicities, access, and ordering of classes and objects involved. Typical containers are lists, stacks, heaps, static arrays, collections, and maps, each of which has its own set of behaviors. For example, arrays allow random access, whereas lists do not.
The OXF supports the following container types:
In addition to these containers, the OXF supports omu* containers, which are containers that are not implemented with templates. The use of template-free containers reduces the size of the generated code considerably.
The OMU* containers are as follows: