Set Collection Classes

Using Enterprise Architect, you can define Collection Classes for generating code from Association connectors where the target role has a multiplicity setting greater than 1.




See also

Defining Collection Classes

On the 'Source Code Engineering' section of the 'Manage Project Options' dialog (select the 'Project | Settings | Project Options | Source Code Engineering' option), on each language page click on the Collection Classes button.

The 'Collection Classes for Association Roles' dialog displays. On this dialog, you can define:

  • The default Collection Class for 1..* roles
  • The ordered Collection Class to use for 1..* roles
  • The qualified Collection Class to use for 1..* roles

Defining Collection Classes for a specific Class

Class-specific Collection Classes can be defined by clicking the Collection Classes button in the Class 'Properties' dialog of the element.

Element Details

Code Generation Precedence

When Enterprise Architect generates code for a connector that has a multiplicity role >1:

1. If the Qualifier is set, use the qualified collection:

     -  for the Class if set

     -  else use the code language qualified collection

2. If the 'Order' option is set, use the ordered collection:

     -  for the Class if set

     -  else use the code language ordered collection

3. Else use the default collection:

     -  for the Class if set

     -  else use the code language default collection

Using Markers

You can include the marker #TYPE# in the collection name; Enterprise Architect replaces this with the name of the Class being collected at source generation time (for example, Vector<#TYPE#> would become Vector<foo>).

Conversely, when reverse engineering, an Association connector is also created if a matching entry (for example, foo if foo is found in the model) is defined as a Collection Class.

Additional Collection Classes

Additional Collection Classes can be defined within the model-specific language options pages for C#, C++ and Java.

C# Options - Model Example Use of Collection Classes C++ Options - Model Java Options - Model

Member Type

On the 'Role(s)' tab of the Association 'Properties' dialog (accessible from the right-click context menu of any Association) there is a 'Member Type' field for each of the Source and Target Roles.

If you set this, the value you enter overrides all the above options.

Source and Target Role

Learn more