@namespace(uri="petrinets2", prefix="petrinets2") | |
package petrinets; | |
class Net { | |
val Place[*]#net places; | |
val Transition[*]#net transitions; | |
val Arc[*]#net arcs; | |
} | |
class Place { | |
ref Net[1]#places net; | |
attr String name; | |
ref TPArc[*]#dst in; | |
ref PTArc[*]#src out; | |
} | |
class Transition { | |
ref Net[1]#transitions net; | |
attr String name; | |
ref PTArc[1..*]#dst in; | |
ref TPArc[1..*]#src out; | |
} | |
abstract class Arc { | |
ref Net[1]#arcs net; | |
} | |
class PTArc extends Arc { | |
ref Place[1]#out src; | |
ref Transition[1]#in dst; | |
} | |
class TPArc extends Arc { | |
ref Transition[1]#out src; | |
ref Place[1]#in dst; | |
} |