Tagged values are the standard extension mechanism of UML models. pmMDA uses this feature to extend the model with platform specific and platform independant information.
A tagged value allows information to be attached to any model element in conformance with its tag definition. Although a tagged value, being an instance of a kind of ModelElement, automatically inherits the name attribute, the name that is actually used in the tagged value is the name of the associated tag definition. It is expected that various model analysis tools will define tag definitions to supply information needed for their operations beyond the basis semantics of UML. Such information could include code generation options, model management information, or user-specified semantics.
pmMDA.NET uses the tagged values as key - value pair used to extend the meta data of an
UML element.
The available tagged values of an UML element are dependant on the UML element type. A
tagged value may specify a range of valid values.
Tagged values have a data type. The list of all used types can be found
in the chapter Data types at the.
The tagged values model shows all tagged values of pmMDA.NET.
The tagged values names are just shortcuts. The real names can be found in the following
tables.
Global tagged values are used from more than one cartridge.
Tag | Default value | Type | Targets | Description | Must be specified |
---|---|---|---|---|---|
.net-ignore | false | Boolean | package, class, property, indexed property | If a meta element is ignored it will not be included to the generated artefacts. The ignore tag is useful for testing purposes. | |
.net-collection-type | Bag | Collection-type | indexed property | The collection used to handle the indexed property. | |
dog-lightweight | false | Boolean | property, indexed property |
Defines whether a property (simple or indexed) is part of the
lightweight representaion. The class which contains the property has a lightweight object representation, if at least one of the following statements is true.
|
Tags for data objects | Default value | Type | Targets | Description | Must be specified |
---|---|---|---|---|---|
dog-paged | false | Boolean | indexed property | Specifies whether the items of indexed properties should be paged. | |
dog-paging-amount | 0 | Integer | indexed property |
Specifies the count of items that are reloaded if a not yet loaded item of an indexed
property is requested. Only relevant for indexed properties which have the tagged
value "dog-paged" set to true .
|
If "dog-paged" is true . |
dog-paging-max- loaded-item-count | 0 | Integer | indexed property |
Specifies the maximum count of items of indexed properties that are hold in memory.
Only relevant for indexed properties which have the tagged value "dog-paged"
set to true .
|
If "dog-paged" is true . |
dog-change-event | false | Boolean | property | Specifies whether an event is generated in the data object class. This event is raised if the value of the property has successfully changed. | |
dog-veto-event | false | Boolean | property | Specifies whether a veto event is generated. This event is raised before the value of a property changes and gives the possibility to abort the changing to the event subscribers. | |
dog-access-mode | READ_WRITE | PropertyMode | property, indexed property | Specifies whether the property can be read and/or written. | |
Tags for reference codes | Default value | Type | Targets | Description | Must be specified |
dog-is-hierarchical | false | Boolean | class | Specifies whether the reference code is hierarchical. |
Tag | Default value | Type | Targets | Description | Must be specified |
---|---|---|---|---|---|
.net-nhibernate- assembly | "DefaultAssembly" | String | package |
Assembly name
which contains the classes and types of the package. The value of this tagged value is used to generate the NHibernate configuration files. For a successful compilation and execution of the application generated by pmMDA.NET, the data objects must be placed in that specified assembly. |
|
or-schema-name | "" | String | package | Name of the database schema. | |
.net-nhibernate- persistence | true | Boolean | property, indexed property |
Specifies whether a property is persistent. If a property is not persistent it
will not be saved to the database. A class is persistent if at least one (indexed) property is persistent. |
|
or-table-name | "" | String | class | Specifies the table name of the class in the database. If the table name is not specified (default value), it will be calculated automatically from the class name. | |
or-column-name | "" | String | property, indexed property | Specifies the column name of the property in the database table. If the column name is not specified (default value), it will be calculated automatically from the property name. | |
or-column-type | "" | String | property | Specifies the database type used to store the property in the database. If the column type is not specified (default value), it will be calculated automatically from the property type. | |
.net-nhibernate- column-hibernate- type | Automatic | NHibernate-Type | primitive property |
Specifies the nhibernate type used to store the property in the database. If the
column type is not specified (default value), it will be calculated automatically
from the property type. Only relevant for primitive properties (Datatype: int, long,
float. double, boolean, string, ...). Normaly there is no need to adjust this property. Only if the NHibernate type should be different to the .NET and/or database type, this tagged value must be set. |
|
or-column-size | "" | Integer | property | Size of the nhibernate type if relevant (i.e. for strings). | |
or-can-be-null | false | Boolean | property |
Specifies whether the property can have null values. If the property is part of the
primary key, it cannot be null. In that case this flag must be false .
|
|
.net-nhibernate- inheritance-strategy | table per subclass | Inheritance- Strategy | class | Specifies the inheritance strategy used by NHibernate. This tagged value is only relevant for base classes. A class which derives from an other pmMDA class derives this tagged value from its base class. |
Data type | Possible values | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
String | Some text | A string represents some text. | ||||||||
Boolean | true, false | May also represent yes or no, etc. | ||||||||
PropertyMode | READ, WRITE, READ_WRITE | Defines the access mode of properties. | ||||||||
Inheritance-Strategy | Table per subclass, Table per concrete class, Table per class hierarchy | See here for a description of these strategies. | ||||||||
NHibernate-Type |
Automatic, String, Boolean, Byte, Char, Int16, Int32, Int64, Single, Double, Decimal, GUID,
DateTime, Timestamp, CultureInfo, Type , Binary |
The Automatic value is displayed as empty string (""). Automatic means that the type is calculated. The property type is mapped to the corresponding NHIbernate-Type value. If no corresponding value is found, the qualified .NET type of the property is used, which is also supported by NHibernate. |
||||||||
Collection-type |
|
Defines the collection used to save the indexed property.
ordered / unordered
indexed / unindexed |