org.jbpt.petri.untangling.pss.IProcessSystem Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jbpt-petri Show documentation
Show all versions of jbpt-petri Show documentation
The jBPT code library is a compendium of technologies that support research on design, execution, and evaluation of business processes.
The newest version!
package org.jbpt.petri.untangling.pss;
import java.util.Set;
import org.jbpt.petri.IFlow;
import org.jbpt.petri.IMarking;
import org.jbpt.petri.INetSystem;
import org.jbpt.petri.INode;
import org.jbpt.petri.IPlace;
import org.jbpt.petri.ITransition;
import org.jbpt.petri.unfolding.IBPNode;
import org.jbpt.petri.unfolding.ICondition;
import org.jbpt.petri.unfolding.IEvent;
import org.jbpt.petri.untangling.IProcess;
/**
* An interface to a Process System.
* A process system is composed of a net system ({@link INetSystem}) S and a process ({@link IProcess}) of S.
* A process system restricts the behavior of its net system to that encoded in its process.
*
* @author Artem Polyvyanyy
*/
public interface IProcessSystem, C extends ICondition, E extends IEvent,
F extends IFlow, N extends INode, P extends IPlace, T extends ITransition, M extends IMarking>
{
/**
* Get enabled transitions of this process system.
*
* @return Set of enabled transitions.
*/
public Set getEnabledTransitions();
/**
* Get marking of this process system.
*
* @return Marking of this net system
*/
public M getMarking();
/**
* Fire a given transition, i.e., trigger an occurrence of a given transition.
* @param transition A transition to fire.
*
* @return true if transition fired; false otherwise.
*/
public boolean fire(T transition);
/**
* Get process.
*
* @return Process of this process system.
*/
public IProcess getProcess();
/**
* Get net system.
*
* @return Net system of this process system.
*/
public INetSystem getNetSystem();
/**
* Set net system.
*
* @param sys A net system to use for this process system.
*/
public void setSystem(INetSystem sys);
/**
* Set process.
*
* @param pi A process to use for this process system.
*/
public void setProcess(IProcess pi);
}