Questa trasformazione utilizza il profilo di "Trasformazione C++" per trasmettere informazioni sul modello non disponibili in UML. Il profilo include i seguenti stereotipi:
Stereotipo |
Applicabile a |
Attributi |
Tipo |
cpp_type |
Parametro, proprietà |
isMutable, qualificatore (Stringa), InitializerKind (Enumerazione) |
Booleano con valore predefinito di false |
cpp_generalization |
Generalizzazione |
GeneralizationKind |
Enumerazione |
cpp_struct |
Classe |
|
Booleano con valore predefinito di false |
cpp_union |
Classe |
isAnonymousUnion |
Booleano con valore predefinito di false |
cpp_typedef |
Classe |
ImplementationType |
Stringa |
cpp_dependency |
Dipendenza |
isInclusionInHeader |
Booleano con valore predefinito di false |
cpp_friend |
Dipendenza |
|
Booleano con valore predefinito di false |
cpp_namespace |
Pacchetto, modello |
NamespaceName |
Stringa |
cpp_operation |
Operazione |
isInline, isVirtual, isFriend |
Booleano con valore predefinito di false |
cpp_constructor |
Operazione |
isExplicit, isInline |
Booleano con valore predefinito di false |
cpp_copy_constructor |
Operazione |
isExplicit, isInline |
Booleano con valore predefinito di false |
cpp_destructor |
Operazione |
isVirtual, isInline |
Booleano con valore predefinito di false |
cpp_assignment |
Operazione |
isInline |
Booleano con valore predefinito di false |
Non applicare più di uno stereotipo di trasformazione C++ a un oggetto UML. L'applicazione di più stereotipi produce i seguenti risultati:
· Classe UML (cpp_struct, cpp_union, cpp_typedef): la trasformazione crea solo un oggetto, indipendentemente dal numero di stereotipi applicati. La trasformazione da la priorità a cpp_typedef. Se lo stereotipo cpp_typedef non è applicato, e se si applicano entrambi gli stereotipi cpp_struct e cpp_union, la trasformazione genera una struttura C++ senza operazioni standard.
· Dipendenza UML (cpp_dependency, cpp_friend): Se si applicano entrambi gli stereotipi, la trasformazione li elabora entrambi e crea una relazione e una dipendenza "friend".
· Operazione UML (cpp_operation, cpp_constructor, cpp_copy_constructor, cpp_destructor, cpp_assignment): la trasformazione crea solo un oggetto indipendentemente dagli stereotipi applicati alle operazioni. L'elenco di seguito riportato illustra la priorità degli stereotipi, dal principale all'ultimo:
o cpp_constructor,
o cpp_copy_constructor,
o cpp_destructor,
o cpp_assignment,
o cpp_operation