Book a Demo
Prev Next

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.

Tasks

Task

Detail

See also

Defining Collection Classes

On the 'Source Code Engineering' section of the 'Manage Model Options' dialog (select the 'Settings > Model > Options > Source Code Engineering' ribbon 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.

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.

Example Use of Collection Classes Example Use of Collection Classes C# Options - Model 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 listed options.

Source and Target Role

Learn more