org.processmining.framework.models.hlprocess
Interface HighLevelChoice

All Known Implementing Classes:
HLChoice

public interface HighLevelChoice

Defines the choices that are available for a high-level process. A choice in a process corresponds to selecting an alternative path at a decision point in the process.
Note that the interface specifies the maximum set of high-level information that can be provided for a choice construct. However, some of these data represent a different view on the same thing, that is, they are in conflict with each other (e.g. in the case of a choice construct the selection of an alternative path at a decision point can only be based on only a data dependency, only a probability dependency or only a frequency dependency. So, not on two things together). This means that, although all the available information can be provided, eventually only a subset of it might be used (for example, based on the user's choice).
Note further that there is no need to provide all the information that can be specified via this interface. If for a specific concept no value is available, this simply means that it is "unknown".

Author:
arozinat, rmans

Nested Class Summary
static class HighLevelChoice.ChoiceEnum
          Defines which kinds of distributions are available.
 
Method Summary
 void addDataDependency(HighLevelDataDependency dep)
          Adds the given data dependency to this choice construct.
 void addFrequencyDependency(HighLevelActivity dep)
          Adds the given data frequency dependency to this choice construct.
 void addProbabilityDependency(HighLevelProbabilityDependency dep)
          Adds the given probability dependency to this choice construct.
 boolean equals(java.lang.Object obj)
          Compares the specified object with this HighLevelChoice for equality.
 HighLevelChoice.ChoiceEnum getChoiceConfiguration()
          Indicates which kind of information should be used in the simulation model to choose for one of the alternative paths for this choice node.
 ModelGraphVertex getChoiceNode()
          Returns the choice node associated to this choice construct.
 java.util.List<HighLevelDataDependency> getDataDependencies()
          Retrieves the data dependencies specified for this choice node.
 java.util.List<HighLevelActivity> getFrequencyDependencies()
          Retrieves the frequency dependencies specified for this choice node.
 java.util.List<HighLevelProbabilityDependency> getProbabilityDependencies()
          Retrieves the probability dependencies specified for this choice node.
 int hashCode()
          Returns the hascode for a HighLevelChoice object.
 void removeAllFrequencyDependencies()
          Removes all the frequency dependencies from this highlevelchoice
 

Method Detail

getChoiceNode

ModelGraphVertex getChoiceNode()
Returns the choice node associated to this choice construct.

Returns:
the node representing this choice in the high level petri net

addDataDependency

void addDataDependency(HighLevelDataDependency dep)
Adds the given data dependency to this choice construct.
Note that it is assumed that the source node of the given dependency belongs indeed to this choice construct. However, if a data dependency with the same target node already exists, it will be replaced by the new one.

Parameters:
the - new data dependency to be added to this choice construct

getDataDependencies

java.util.List<HighLevelDataDependency> getDataDependencies()
Retrieves the data dependencies specified for this choice node.

Note that the preference for this choice construct can be retrieved by calling getChoiceConfiguration().

Returns:
the list of HighLevelDataDependency objects representing the data dependencies provided for this process if available. The list may be empty

addProbabilityDependency

void addProbabilityDependency(HighLevelProbabilityDependency dep)
Adds the given probability dependency to this choice construct.
Note that it is assumed that the source node of the given dependency belongs indeed to this choice construct. However, if a probability dependency with the same target node already exists, it will be replaced by the new one.

Parameters:
the - new probability dependency to be added to this choice construct

getProbabilityDependencies

java.util.List<HighLevelProbabilityDependency> getProbabilityDependencies()
Retrieves the probability dependencies specified for this choice node.

Note that the preference for this choice construct can be retrieved by calling getChoiceConfiguration().

Returns:
the list of HighLevelProbabilityDependency objects representing the probability dependencies provided for this process if available. The list may be empty

addFrequencyDependency

void addFrequencyDependency(HighLevelActivity dep)
Adds the given data frequency dependency to this choice construct.
Note that it is assumed that the given high level activity is indeed involved in this choice. Note further that if the same high level activity is already known to this choice construct, it is not added again.

Parameters:
the - new high level activity to be added as a frequency dependency to this choice construct

getFrequencyDependencies

java.util.List<HighLevelActivity> getFrequencyDependencies()
Retrieves the frequency dependencies specified for this choice node.

Note that the preference for this choice construct can be retrieved by calling getChoiceConfiguration().

Returns:
the list of HighLevelActivity objects representing the frequency dependency targets provided for this process if available. The list may be empty

removeAllFrequencyDependencies

void removeAllFrequencyDependencies()
Removes all the frequency dependencies from this highlevelchoice


getChoiceConfiguration

HighLevelChoice.ChoiceEnum getChoiceConfiguration()
Indicates which kind of information should be used in the simulation model to choose for one of the alternative paths for this choice node.

Returns:
the configuration selected for this choice

equals

boolean equals(java.lang.Object obj)
Compares the specified object with this HighLevelChoice for equality. Returns true if the following aspects of the HighLevelChoices that compared are the same:
In the case that the HighLevelChoice is Petri Net-based, the equals() method of an ordinary Place should be used for comparing the choice nodes.

Overrides:
equals in class java.lang.Object
Parameters:
obj - Object
Returns:
boolean

hashCode

int hashCode()
Returns the hascode for a HighLevelChoice object. The hashcode of a HighLevelChoice is calculated according to the recipe of Joshua Bloch in Effective Java (Addision-Wesley). For this recipe the following items needs to be taken into account:
In the case that the HighLevelChoice is Petri Net-based, the hashcode() method of an ordinary Place should be used for calculating the hash code value of the choice node.

Overrides:
hashCode in class java.lang.Object
Returns:
int the hashcode value for this highLevelChoice