12.2 ExpressionInOcl 类型

因为在抽象语法中OclExpression是递归定义的,我们需要一个新的元类来代表顶层的OCL表达式语法树。这个元类称为ExpressionInOcl,如图12.1所示,它被定义为UML核心元类Expression的子类。在UML中,Expression元类有一个language属性,它的值可以是‘OCL’。它的body属性包含了实际表达式的文本表示。ExpressionInOcl的bodyExpression关联是到由OCL抽象语法元模型表示的OCL表达式的关联。body属性(从Expession继承而来)仍然可以用于存储OCL表达式的文本表示。language属性(也是从Expression继承而来)的值为‘OCL’。

图12.1 Metaclass ExpressionInOcl added to the UML metamodel

12.2.1 ExpressionInOcl

OCL中的表达式是用OCL写的表达式。因此language属性总是‘OCL’。

关联 说明
bodyExpression 实际OCL表达式的根,由OCL抽象语法元模型完全描述
contextVariable self变量,类型是contextual classifier
resultVariable 代表操作返回的值
parameterVariable 代表当前操作所拥有的参数
generatedType 类型,例如集合类型,由OCL按需来创建,以做为bodyExpression中OclExpression的类型

results matching ""

    No results matching ""