Objects

Objects are generated in a transformation as text in the following form:

objectType

{

   objectProperties*
   XRef{xref}*

   Tag{tag}*

   Attribute{attributes}*

   Operation{operations}*

   Classifier{classifiers}*

   Parameter{parameters}*

}

 

 

For example:

Class

{

   name = "Example"

   language = "C++"

   Tag

  {

         name = "defaultCollectionClass"

         value = "List"

  }

  Attribute

  {

         name = "count"

         type = "int"

  }

}

 

 

Every object created in a transformation should include an XRef syntax element (see the end of this topic), as it helps the system to synchronize with the object and makes it possible to create a connector to that Class in the transformation.

Syntax elements in the code

Element

Detail

See also

objectType

objectType is one of these:
 

Action
ActionPin
Activity
ActivityParameter
ActivityPartition
ActivityRegion
Actor
Association
Change
Class
Collaboration
CollaborationUse
Component
DeploymentSpecification
DiagramFrame
Decision
EntryPoint
Event
ExceptionHandler
ExecutionEnvironment
ExitPoint
ExpansionNode
ExpansionRegion
ExposedInterface
GUIElement
InteractionFragment
InteractionOccurrence
InteractionState
Interface
InterruptibleActivityRegion
Issue
Iteration
Object
ObjectNode
MessageEndpoint
Node
Package
Parameter
Part
Port
ProvidedInterface
RequiredInterface
Requirement
Sequence
State
StateMachine
StateNode
Synchronization
Table
TimeLine
Trigger
UMLDiagram
UseCase

 

 

objectProperties

objectProperties is zero, or one instance of one or more of these:
 

Abstract
Alias
Arguments
Author
Cardinality
Classifier
Complexity
Concurrency
Filename
Header
Import
IsActive
IsLeaf
IsRoot
IsSpecification
Keyword
Language
Multiplicity
Name
Notes
Persistence
Phase
Scope
Status
Stereotype
Version
Visibility

 

 

Attribute

Attribute has the same structure as objectType, and includes these properties:
 

Alias
Classifier
Collection
Container
Containment
Constant
Default
Derived
LowerBound
Name
Notes
Ordered
Scope
Static
Stereotype
Type
UpperBound
Volatile

 

Attribute  also includes these elements:

Classifier
Tag
XRef
 

 

Operation

Operation has the same structure as objectType, and includes these properties:
 

Abstract
Alias
Behavior
Classifier
Code
Constant
IsQuery
Name
Notes
Pure
ReturnArray
Scope
Static
Stereotype
Type

 

Operation  also includes these elements:

Classifier
Parameter
Tag
XRef

 

 

Parameter

Parameter has the same structure as objectType, and includes the Tag element and these properties:

Classifier
Default
Fixed
Name
Notes
Kind
Stereotype

 

 

Tag

Tag has these properties:

Name
Value
 

 

Special Cases

Certain types of object have variations of the object definition syntax.

Object

Detail

See also

Packages

Packages differ from other objects in the following ways:

They have a reduced set of properties: alias, author, name, namespaceRoot, notes, scope, stereotype and version
The property namespaceRoot is only given to Packages
A name must be specified for each Package
The name property can be a qualified name; when a qualified name is specified, the properties given are applied only to the final package
Only Packages can contain other packages
Packages can't contain attributes and operations

 

 

XRef

Cross references are defined using the transform statements. The properties include:

Namespace
Name
Source
Notes
 

Cross References

Tables

Tables are a special type of object, with the following differences from other object types:

They can include columns and primary keys
They cannot include attributes

 

 

 

 

Foreign Key

Columns

Columns are similar to attributes, but have an autonumber element containing Startnum and its increment, and the following added properties:

Length
NotNull
Precision
PrimaryKey
Scale
Unique

 

In the column definition, you cannot assign a value to the NotNull, PrimaryKey or Unique properties.