All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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 net;
	
	public PNTraverser(AbstractPetriNet net){
		Validate.notNull(net);
		this.net = net;
	}
	
	public AbstractPetriNet 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