diff --git a/src/data/java/de/tudresden/inf/st/pnml/base/util/NavUtils.java b/src/data/java/de/tudresden/inf/st/pnml/base/util/NavUtils.java new file mode 100644 index 0000000000000000000000000000000000000000..b1334c5bfe3b43c20c2472900f79f844d1a0d300 --- /dev/null +++ b/src/data/java/de/tudresden/inf/st/pnml/base/util/NavUtils.java @@ -0,0 +1,16 @@ +package de.tudresden.inf.st.pnml.base.util; + +import de.tudresden.inf.st.pnml.jastadd.model.Node; +import de.tudresden.inf.st.pnml.jastadd.model.Place; + +public class NavUtils { + + public static Place getOriginPlace(Node p){ + + if(p.asRefPlace() != null){ + return p.asPlaceNode().place(); + } else { + return getOriginPlace(p); + } + } +} diff --git a/src/main/jastadd/base/Navigation.jrag b/src/main/jastadd/base/Navigation.jrag index 0af771b0159a071fb2f627a03f850234cd238af0..8aeef669794c60c55e96ed94a0ac9dfc849bdf55 100644 --- a/src/main/jastadd/base/Navigation.jrag +++ b/src/main/jastadd/base/Navigation.jrag @@ -2,6 +2,10 @@ aspect Navigation { inh PetriNet PnObject.petriNet(); eq PetriNet.getChild().petriNet() = this; + syn Place RefPlace.originPlace(){ + return de.tudresden.inf.st.pnml.base.util.NavUtils.getOriginPlace(this); + } + syn java.util.Collection<Place> TransitionNode.incomingPlaces() { java.util.Set<Place> s = new java.util.HashSet<>();