11.3 操作和良构规则

11.3.1 OclAny

=(object2 : OclAny) : Boolean

如果object2invalid,则结果是invalid

如果selfobject2i是相同的对象,则结果为真。

如果selfobject2是相同数据类型的实例且具有相同的值,那么结果为真。

其它情况下结果为假。

中序(infix)操作符:

post: result = (self = object2)

<> (object2 : OclAny) : Boolean

如果object2invalid,则结果是invalid

如果selfobject是相同的对象,则结果为假。

如果selfobject2是相同数据类型的实例且具有相同的值,那么结果为假。

其它情况下结果为真。

中序(infix)操作符:

post: result = not (self = object2)

oclAsSet() : Set(T)

oclAsSet()操作用于隐式的将一个非集合转换为一个集合值。

结果Set包含源对象。

post: result = Set{self}

oclIsNew() : Boolean

只能用在后置条件中。如果self是在操作执行中被创建(例如,在前置条件时还不存在),那么结果为真。

post: [email protected]()

oclIsUndefined() : Boolean

如果self等同于invalid或null 则结果为真。

post: result = self.isTypeOf( OclVoid ) or self.isTypeOf(OclInvalid)

oclIsInvalid() : Boolean

如果self等同于OclInvalid,则结果为真。

post: result = self.isTypeOf( OclInvalid)

oclAsType(type : Classifier) : T

结果还是自身,其中self是T类型。类型T可以是UML模型中定义的任意分类符;如果self的实际类型在执行时不符合T,那么oclAsType操作结果为invalid

在特征重定义的情况下,将一个对象转换为它的实际类型的超类并不会访问超类的特征定义;根据重定义的语义,对象的被重义的特征就不在了。然而,当转换为一个超类后,子类所额外定义的特征也被抑制。

post: (result = self) and result.oclIsKindOf( type )

oclIsTypeOf(type : Classifier) : Boolean

如果self是type类型但不是它的子类,那么返回真。

post: self.oclType() = type

oclIsKindOf(type : Classifier) : Boolean

如果self的类型符合type类型,则返回真。

post: self.oclType().conformsTo(type)

oclIsInState(statespec : OclState) : Boolean

如果self处于statespec所状态,那么返回真。

post: -- TBD

oclType() : Classifier

计算self实例的类型。

post: self.oclIsTypeOf(result)

oclLocale : String

对依赖locale的库操作,例如String::toUpperCase() 定义缺省的locale。

results matching ""

    No results matching ""