org.processmining.models.graphbased.directed.petrinet.configurable
Interface ConfigurablePetrinet<NetType extends PetrinetGraph>

Type Parameters:
NetType - the net base type made configurable by this net
All Superinterfaces:
org.processmining.models.graphbased.AttributeMapOwner, java.lang.Cloneable, java.lang.Comparable<org.processmining.models.graphbased.directed.DirectedGraph<PetrinetNode,PetrinetEdge<? extends PetrinetNode,? extends PetrinetNode>>>, org.processmining.models.graphbased.directed.DirectedGraph<PetrinetNode,PetrinetEdge<? extends PetrinetNode,? extends PetrinetNode>>, org.processmining.models.graphbased.directed.DirectedGraphElement, Petrinet, PetrinetGraph
All Known Implementing Classes:
ConfigurableResetInhibitorNet

public interface ConfigurablePetrinet<NetType extends PetrinetGraph>
extends Petrinet

Configurable Petri net that builds on top of an existing class of Petri nets specified by parameter NetType. The contract with this interface is that any class that implements this interface als implements or extends NetType.

Author:
dfahland

Method Summary
 void addConfigurableFeature(java.lang.String id, ConfigurableFeature<? extends org.processmining.models.graphbased.directed.DirectedGraphElement,?> feature)
          Add a configurable feature to this net
 void addConfigurableFeatures(ConfigurableFeatureGroup group)
          Add a configurable feature group to this net,
 void cloneFrom(ConfigurablePetrinet<NetType> net, org.processmining.models.connections.GraphLayoutConnection oldLayout, org.processmining.models.connections.GraphLayoutConnection newLayout)
           
 void cloneFrom(NetType net, Marking netMarking, java.util.List<ConfigurableFeatureGroup> configurationOptions, org.processmining.models.connections.GraphLayoutConnection oldLayout, org.processmining.models.connections.GraphLayoutConnection newLayout)
          Clone a configurable reset inhibitor net from an existing reset inhibitor net.
 void configure(java.util.List<Configuration> configurations)
          Configure the provided configuration features with the provided parameter values, and execute the configurations.
 void configureDefault()
          Configure this Petri net by executing all configurations of all configuration features.
 java.util.List<ConfigurableFeatureGroup> getConfigurableFeatureGroups()
           
 Marking getConfiguredMarking()
           
 NetType getConfiguredNet()
           
 
Methods inherited from interface org.processmining.models.graphbased.directed.petrinet.PetrinetGraph
addArc, addArc, addArc, addArc, addArc, addArc, addArc, addArc, addGroup, addGroup, addPlace, addPlace, addTransition, addTransition, getArc, getGroups, getLabel, getPlaces, getTransitions, removeArc, removeGroup, removePlace, removeTransition
 
Methods inherited from interface org.processmining.models.graphbased.directed.DirectedGraph
getEdges, getInEdges, getNodes, getOutEdges, removeEdge, removeNode
 
Methods inherited from interface org.processmining.models.graphbased.directed.DirectedGraphElement
equals, getGraph, hashCode
 
Methods inherited from interface org.processmining.models.graphbased.AttributeMapOwner
getAttributeMap
 
Methods inherited from interface java.lang.Comparable
compareTo
 

Method Detail

addConfigurableFeature

void addConfigurableFeature(java.lang.String id,
                            ConfigurableFeature<? extends org.processmining.models.graphbased.directed.DirectedGraphElement,?> feature)
                            throws InvalidConfigurationException
Add a configurable feature to this net

Parameters:
id - to uniquely reference the feature
feature -
Throws:
InvalidConfigurationException - if the feature ranges over an element not part of this net

addConfigurableFeatures

void addConfigurableFeatures(ConfigurableFeatureGroup group)
                             throws InvalidConfigurationException
Add a configurable feature group to this net,

Parameters:
group -
Throws:
InvalidConfigurationException - if any feature in the group ranges over an element not part of this net

cloneFrom

void cloneFrom(NetType net,
               Marking netMarking,
               java.util.List<ConfigurableFeatureGroup> configurationOptions,
               org.processmining.models.connections.GraphLayoutConnection oldLayout,
               org.processmining.models.connections.GraphLayoutConnection newLayout)
               throws java.lang.Exception
Clone a configurable reset inhibitor net from an existing reset inhibitor net. The configurations specified for the existing net will be instantiated for the new configurable net.

Parameters:
net -
netMarking - initial marking of the net, can be null or empty
configurations -
oldLayout -
newLayout -
Throws:
java.lang.Exception - in case the cloned net has an invalid set of configuration features

cloneFrom

void cloneFrom(ConfigurablePetrinet<NetType> net,
               org.processmining.models.connections.GraphLayoutConnection oldLayout,
               org.processmining.models.connections.GraphLayoutConnection newLayout)
               throws java.lang.Exception
Throws:
java.lang.Exception - in case the cloned net has an invalid set of configuration features

getConfigurableFeatureGroups

java.util.List<ConfigurableFeatureGroup> getConfigurableFeatureGroups()
Returns:
list of all configuration features of this Petri net (individual transitions and groups of transitions)

configure

void configure(java.util.List<Configuration> configurations)
               throws InvalidConfigurationException
Configure the provided configuration features with the provided parameter values, and execute the configurations.

Parameters:
configurations -
Throws:
InvalidConfigurationException

configureDefault

void configureDefault()
                      throws InvalidConfigurationException
Configure this Petri net by executing all configurations of all configuration features. An implementation should iterate over each ConfigurableFeatureGroup in getConfigurableFeatureGroups() and execute ConfigurableFeatureGroup.executeConfiguration(ConfigurablePetrinet)

Throws:
InvalidConfigurationException

getConfiguredNet

NetType getConfiguredNet()
                                               throws InvalidConfigurationException
Returns:
non-configurable Petri net from this net after executing #configure()
Throws:
InvalidConfigurationException

getConfiguredMarking

Marking getConfiguredMarking()
Returns:
initial marking of the configured net, must not be null