blob: 95b88782046c3cccd634f6f9cb2c339f43a7c5a0 [file] [log] [blame]
@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;
}