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
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voidaddConfigurableFeature(java.lang.String id, ConfigurableFeature<? extends org.processmining.models.graphbased.directed.DirectedGraphElement,?> feature)Add a configurable feature to this netvoidaddConfigurableFeatures(ConfigurableFeatureGroup group)Add a configurable feature group to this net,voidcloneFrom(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.voidcloneFrom(ConfigurablePetrinet<NetType> net, org.processmining.models.connections.GraphLayoutConnection oldLayout, org.processmining.models.connections.GraphLayoutConnection newLayout)voidconfigure(java.util.List<Configuration> configurations)Configure the provided configuration features with the provided parameter values, and execute the configurations.voidconfigureDefault()Configure this Petri net by executing all configurations of all configuration features.java.util.List<ConfigurableFeatureGroup>getConfigurableFeatureGroups()MarkinggetConfiguredMarking()NetTypegetConfiguredNet()-
Methods inherited from interface org.processmining.models.graphbased.AttributeMapOwner
getAttributeMap
-
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.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
-
-
-
-
Method Detail
-
addConfigurableFeature
void addConfigurableFeature(java.lang.String id, ConfigurableFeature<? extends org.processmining.models.graphbased.directed.DirectedGraphElement,?> feature) throws InvalidConfigurationExceptionAdd a configurable feature to this net- Parameters:
id- to uniquely reference the featurefeature-- 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 benullor emptyconfigurations-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 InvalidConfigurationExceptionConfigure this Petri net by executing all configurations of all configuration features. An implementation should iterate over eachConfigurableFeatureGroupingetConfigurableFeatureGroups()and executeConfigurableFeatureGroup.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
-
-