contract's guard validator with abstract type
I've this validation error : "Cannot compare two AssetTypes FunctionalAsset and Data that do not share a concrete supertype"
for this contract :
static contract functionalRelationInputAndOutputNotData(functionalRelation : FunctionalRelation, data1 : Data, data2 : Data) {
severity = ERROR
guard = functionalRelation.input != data1 || functionalRelation.output != data2
}
The corresponding meta model subset:
AssetType Process extends (FunctionalAsset) {
tags (Functional)
attribute processType : EProcessType
reference activities : Activity[*]
reference supportingApplications : Application[*]
reference involvedStakeholders : Stakeholder[*]
reference involvedInformationSystems : InformationSystem[*]
reference subProcess : Process[*]
}
AssetType Data extends (FunctionalAsset) {
tags (Functional)
attribute sensitive : Boolean
reference storage : Storage[0..1]
}
AssetType FunctionalRelation {
tags (Functional, Relation)
reference input : FunctionalAsset[1]
reference output : FunctionalAsset[1]
}
Edited by William Ragot