check: not self.dataType.allConstraints->exists(c | c.type.name = 'union')
check: not self.dataType.allConstraints()->exists(c | c.type.name = 'union') //TODO: add ()
or self.memberAssignment->size() <= 1
message: self.prefix() +
"If the 'dataType' of the 'StructuredDataInstance' has the predefined constraint 'union' then the 'memberAssignment' shall not contain more than one 'MemberAssignment'."
"If the 'dataType' of 'StructuredDataInstance' has the predefined constraint 'uniontype' then there shall only be 'MemberAssignment' for the 'Member's of the 'dataType' itself or of at most one of the 'StructuredDataType's which the 'dataType' is extending."
}
@@ -621,7 +623,7 @@ context LiteralValueUse {
//Integer type for integer value
constraint LiteralValueIntType {
check: not self.intValue.oclIsUndefined()
check: not self.intValue.oclIsUndefined() //TODO: weird caching issues..
implies (self.dataType.oclIsUndefined() or self.dataType.conformsTo('Integer'))
message: self.prefix() +
"If 'intValue' is specified then the 'dataType' is either unspecified or the specified 'DataType' conforms to predefined type 'Integer'."
@@ -970,8 +972,10 @@ context Block {
//Guard for each participating tester in locally ordered test descriptions
constraint GuardsForParticipatingComponents {
//TODO: Enum::Literal not supported -> use Enum#Literal
or not self.getParentTestDescription().isLocallyOrdered
message: self.prefix() +
"If the 'Block' is contained in a locally ordered 'TestDescription' then a guard shall be specified for every participating 'ComponentInstance' in the associated 'TestConfiguration' that has the role 'Tester' or there shall be no guards at all. "