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

org.jbpt.petri.untangling.pss.IProcessSystem Maven / Gradle / Ivy

Go to download

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);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy