3
================
| Person |
|--------------|
|- id : String |
|--------------|
================
我Person
类物业id
是String
类型。我必须检查id
是一个包含11位数的数字。我想这样的事情:检查字符串是一个数字
context Person::id:String
inv: self.id->forAll(l|l.oclIsTypeOf(Integer))
and
self.id.size() = 11
但我觉得这是不正确的。
编辑。
现在我确定这是不正确的, l.oclIsTypeOf(Integer)
总是返回false
,因为是oclIsTypeOf
只应呼吁OclAny
,当id
是String
类型。
EDIT 2(解决方案)
我解决了它是这样的:由Vincent Aranega
提供
context Person::id:String
inv: not self.id.toInteger().oclIsInvalid()
and
self.id.size() = 11
下面的解决方案应该也工作