Skip to content
Snippets Groups Projects

added ref-place and ref-transition execution support

Merged Sebastian Ebert requested to merge feature/ref-execution into master
5 unresolved threads
4 files
+ 248
11
Compare changes
  • Side-by-side
  • Inline
Files
4
@@ -2,22 +2,40 @@ aspect Navigation {
@@ -2,22 +2,40 @@ aspect Navigation {
inh PetriNet PnObject.petriNet();
inh PetriNet PnObject.petriNet();
eq PetriNet.getChild().petriNet() = this;
eq PetriNet.getChild().petriNet() = this;
syn java.util.Collection<Place> Transition.incomingPlaces() {
syn java.util.Collection<Place> TransitionNode.incomingPlaces() {
java.util.Set<Place> incomingPlaces = new java.util.HashSet<>();
for (Arc incomingArc : getInArcList()) {
java.util.Set<Place> s = new java.util.HashSet<>();
incomingPlaces.add(incomingArc.getSource().asPlaceNode().place());
}
for (Arc incomingArc : getInArcList()) {
return incomingPlaces;
s.add(incomingArc.getSource().asPlaceNode().place());
 
}
 
 
for (TransitionNode ref : getReferencingTransitions()) {
 
s.addAll(ref.incomingPlaces());
 
}
 
 
return s;
}
}
 
 
syn java.util.Collection<Place> TransitionNode.outgoingPlaces() {
syn java.util.Collection<Place> Transition.outgoingPlaces() {
java.util.Set<Place> s = new java.util.HashSet<>();
java.util.Set<Place> outgoingPlaces = new java.util.HashSet<>();
for (Arc outgoingArc : getOutArcList()) {
for (Arc outgoing : getOutArcList()) {
outgoingPlaces.add(outgoingArc.getTarget().asPlaceNode().place());
s.add(outgoing.getTarget().asPlaceNode().place());
 
}
 
 
for (TransitionNode ref : getReferencingTransitions()) {
 
s.addAll(ref.outgoingPlaces());
}
}
return outgoingPlaces;
 
return s;
}
}
 
inh Page PnObject.ContainingPage();
 
eq Page.getObject().ContainingPage() = this;
 
eq PetriNet.getPage().ContainingPage() = null;
 
syn boolean Node.isPlaceNode() = false;
syn boolean Node.isPlaceNode() = false;
eq PlaceNode.isPlaceNode() = true;
eq PlaceNode.isPlaceNode() = true;
@@ -38,6 +56,21 @@ aspect Navigation {
@@ -38,6 +56,21 @@ aspect Navigation {
eq Transition.transition() = this;
eq Transition.transition() = this;
eq RefTransition.transition() = getRef().transition();
eq RefTransition.transition() = getRef().transition();
 
syn boolean PlaceNode.isRefPlace() = false;
 
eq RefPlace.isRefPlace() = true;
 
 
syn boolean TransitionNode.isTransition() = false;
 
eq Transition.isTransition() = true;
 
 
syn boolean TransitionNode.isRefTransition() = false;
 
eq RefTransition.isRefTransition() = true;
 
 
syn RefTransition TransitionNode.asRefTransition() = null;
 
eq RefTransition.asRefTransition() = this;
 
 
syn Transition TransitionNode.asTransition() = null;
 
eq Transition.asTransition() = this;
 
coll java.util.Set<PnObject> PetriNet.allObjects() [new java.util.HashSet()] root PetriNet;
coll java.util.Set<PnObject> PetriNet.allObjects() [new java.util.HashSet()] root PetriNet;
PnObject contributes this
PnObject contributes this
to PetriNet.allObjects()
to PetriNet.allObjects()
@@ -57,4 +90,9 @@ aspect Navigation {
@@ -57,4 +90,9 @@ aspect Navigation {
Arc contributes this
Arc contributes this
to PetriNet.allArcs()
to PetriNet.allArcs()
for petriNet();
for petriNet();
 
 
coll java.util.Set<Page> PetriNet.allPages() [new java.util.HashSet()] root PetriNet;
 
Page contributes this
 
to PetriNet.allPages()
 
for petriNet();
}
}
Loading