de.uni.freiburg.iig.telematik.sepia.traversal.PNTraverser Maven / Gradle / Ivy
package de.uni.freiburg.iig.telematik.sepia.traversal;
import java.util.List;
import de.invation.code.toval.validate.InconsistencyException;
import de.invation.code.toval.validate.Validate;
import de.uni.freiburg.iig.telematik.sepia.petrinet.abstr.AbstractPetriNet;
import de.uni.freiburg.iig.telematik.sepia.petrinet.abstr.AbstractTransition;
public abstract class PNTraverser> {
protected AbstractPetriNet,T,?,?,?> net;
public PNTraverser(AbstractPetriNet,T,?,?,?> net){
Validate.notNull(net);
this.net = net;
}
public AbstractPetriNet,T,?,?,?> getPetriNet(){
return net;
}
/**
* Checks if the traverser is in a valid state.
* The traverser is in valid state, when the value chooser is in valid state.
* @return true if the flow control is valid
* false otherwise.
*/
public abstract boolean isValid();
/**
* Chooses among all enabled transitions of the Petri net, the next transition to fire.
* @return The next enabled transition to fire.
* @throws InconsistencyException If the flow control is not in valid state.
*/
public abstract T chooseNextTransition(List enabledTransitions) throws InconsistencyException;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy