projet-mini-genie-logiciel-.../livrables/PetriNet.ocl
Laureηt 52aacc4288
xD
2021-10-20 16:57:21 +02:00

21 lines
455 B
Plaintext

import 'PetriNet.ecore'
package petrinet
context Network
inv validName('Invalid name: ' + self.name):
self.name.matches('[A-Za-z_][A-Za-z0-9_]*')
inv uniqNamesNode: self.nodes
->forAll(n1, n2 | n1 = n2 or n1.name <> n2.name)
context Node
inv nameMin2Char: self.name.matches('..+')
inv weirdName: not self.name.matches('([0-9]*|_*)')
context Place
inv negativeQuantity: self.tokens >= 0
context Arc
inv negativeQuantity: self.weight >= 0
endpackage