| context Competition!NamedElement { | |
| constraint NameSpecified { | |
| check : self.name.isDefined() and self.name.trim().length > 0 | |
| message : self.eClass().name + " must provide a name" | |
| } | |
| } | |
| context Competition!Group { | |
| constraint NotEmpty { | |
| guard : self.satisfies("NameSpecified") | |
| check : self.competitors.size() > 0 | |
| message : "Group " + self.name + " contains no competitors" | |
| } | |
| } | |
| context Competition!Competitor { | |
| constraint InUniqueGroup { | |
| guard : self.satisfies("NameSpecified") | |
| check : Competition!Group.allInstances. | |
| select(g|g.competitors.includes(self)).size() <= 1 | |
| message : "Competitor " + self.name + | |
| " exists in more than one groups." | |
| } | |
| } |