Objects

Objects are generated in a transformation as text in this 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 these 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 these 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 these added properties:

  • Length
  • NotNull
  • Precision
  • PrimaryKey
  • Scale
  • Unique

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