org.jbpm.sim.def
Class JbpmSimulationModel

java.lang.Object
  extended by desmoj.core.simulator.NamedObject
      extended by desmoj.core.simulator.ModelComponent
          extended by desmoj.core.simulator.Reportable
              extended by desmoj.core.simulator.Model
                  extended by org.jbpm.sim.def.JbpmSimulationModel
Direct Known Subclasses:
DefaultJbpmSimulationModel

public abstract class JbpmSimulationModel
extends desmoj.core.simulator.Model

The main model, which is responsible to set up the environment for simulation runs.

Author:
bernd.ruecker@camunda.com

Constructor Summary
JbpmSimulationModel()
           
JbpmSimulationModel(desmoj.core.simulator.Model owner, java.lang.String name)
           
 
Method Summary
 void addBusinessFigure(BusinessFigure conf)
           
 void addResourcePool(java.lang.String poolName, int capacity, double costPerTimeUnit)
           
 java.lang.String buildName(java.lang.Object o, java.lang.String prefix, java.lang.String sufix)
           
 void checkWaitingQueue(java.lang.String poolName)
           
 void connectToExperiment(desmoj.core.simulator.Experiment exp)
           
 java.lang.String description()
           
 void doInitialSchedules()
           
 java.lang.String formatTaskInstance(TaskInstance taskInstance)
           
 BusinessFigure getBusinessFigure(java.lang.String name)
           
 java.util.Collection getBusinessFigures()
           
 double getBusinessFigureSum(java.lang.String businessFigureType)
           
 java.util.Collection getBusinessFigureTypes()
           
 desmoj.core.dist.Distribution getDistribution(java.lang.String name)
           
 java.util.ArrayList getEndedProcessInstances()
           
 desmoj.core.statistic.Tally getEntityWaitTimeTally(java.lang.Object obj)
           
 Transition getLeavingTransition(Node node)
          figures out which leaving transition should be used for the given node, using the configured probabilities.
protected  desmoj.core.simulator.SimTime getNextSimTimeWithDistributionMap(java.lang.Object key)
           
abstract  ProcessDefinition[] getProcessDefinitions()
          This is implemented by the concrete implementation of the model
 desmoj.core.simulator.SimTime getProcessStartTime(ProcessDefinition processDefinition)
           
 ResourcePool getResourcePool(java.lang.String poolName)
           
 java.lang.String[] getResourcePoolNames()
           
 desmoj.core.simulator.Queue getResourcePoolQueue(java.lang.String poolName)
           
 desmoj.core.statistic.TimeSeries getResourcePoolTimeSeries(java.lang.String poolName)
           
 desmoj.core.simulator.Queue getResourceQueue(java.lang.String poolName)
          returns a queue for a resource pool (needed if no resource is available) the queues are constructed on the fly.
 ResourceRequirement[] getResourceRequirements(java.lang.Object processElement)
           
 desmoj.core.statistic.TimeSeries[] getResourceTimeSeries()
           
 desmoj.core.statistic.Tally getResourceWaitTimeTally(java.lang.String poolName)
           
 desmoj.core.statistic.Tally getResourceWorkTimeTally(java.lang.String poolName)
           
 java.lang.String getShortNameFor(java.lang.String fullName)
           
 java.lang.Object getSourceElementForName(java.lang.String fullName)
           
 desmoj.core.simulator.SimTime getStateWorkingTime(Node state)
           
 desmoj.core.simulator.SimTime getTaskWorkingTime(Task task)
          Returns the time, needed to work on the task with the given id The time is queried from the configured distribution
 boolean hasLeavingTransitionProbabilitiesConfigured(Node node)
           
 void init()
           
 boolean isRememberEndedProcessInstances()
           
 void reportFinishedProcessInstance(ProcessInstance processInstance)
          remember that process instance has run, if configured to remember it
 void reportProcessEndState(EndState node)
           
 void reportProcessInstanceCycleTime(ProcessDefinition pd, double duration)
           
 void reportProcessStart(ProcessDefinition processDefinition)
           
 void resourceUsageChanged(java.lang.String poolName)
           
 void setRememberEndedProcessInstances(boolean rememberEndedProcessInstances)
           
 
Methods inherited from class desmoj.core.simulator.Model
checkCompatibility, createReporter, getExperiment, hasSubModels, init, isConnected, isMainModel, isSubModel, reset
 
Methods inherited from class desmoj.core.simulator.Reportable
getObservations, incrementObservations, incrementObservations, reportIsOn, reportOff, reportOn, resetAt
 
Methods inherited from class desmoj.core.simulator.ModelComponent
current, currentEntity, currentEvent, currentModel, currentSimProcess, currentTime, debugIsOn, debugOff, debugOn, epsilon, getModel, isExperimentCompatible, isModelCompatible, sendDebugNote, sendMessage, sendTraceNote, sendWarning, skipTraceNote, skipTraceNote, traceIsOn, traceOff, traceOn
 
Methods inherited from class desmoj.core.simulator.NamedObject
getName, getQuotedName, rename, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

JbpmSimulationModel

public JbpmSimulationModel(desmoj.core.simulator.Model owner,
                           java.lang.String name)

JbpmSimulationModel

public JbpmSimulationModel()
Method Detail

connectToExperiment

public void connectToExperiment(desmoj.core.simulator.Experiment exp)
Overrides:
connectToExperiment in class desmoj.core.simulator.Model

init

public void init()
Specified by:
init in class desmoj.core.simulator.Model

doInitialSchedules

public void doInitialSchedules()
Specified by:
doInitialSchedules in class desmoj.core.simulator.Model

description

public java.lang.String description()
Specified by:
description in class desmoj.core.simulator.Model

getProcessDefinitions

public abstract ProcessDefinition[] getProcessDefinitions()
This is implemented by the concrete implementation of the model

Returns:

getDistribution

public desmoj.core.dist.Distribution getDistribution(java.lang.String name)

hasLeavingTransitionProbabilitiesConfigured

public boolean hasLeavingTransitionProbabilitiesConfigured(Node node)
Parameters:
node -
Returns:
true, if probabilities for leaving transitions are configured for the given node

getLeavingTransition

public Transition getLeavingTransition(Node node)
figures out which leaving transition should be used for the given node, using the configured probabilities. If no probabilities for this node are configured, the default transition is returned

Parameters:
node -
Returns:
leaving transition to take or the default transition, if no probabilities are configured

getTaskWorkingTime

public desmoj.core.simulator.SimTime getTaskWorkingTime(Task task)
Returns the time, needed to work on the task with the given id The time is queried from the configured distribution

Parameters:
taskId -
Returns:
the simulation time when the task should be finished

getStateWorkingTime

public desmoj.core.simulator.SimTime getStateWorkingTime(Node state)

getProcessStartTime

public desmoj.core.simulator.SimTime getProcessStartTime(ProcessDefinition processDefinition)

getNextSimTimeWithDistributionMap

protected desmoj.core.simulator.SimTime getNextSimTimeWithDistributionMap(java.lang.Object key)

getResourceTimeSeries

public desmoj.core.statistic.TimeSeries[] getResourceTimeSeries()

addResourcePool

public void addResourcePool(java.lang.String poolName,
                            int capacity,
                            double costPerTimeUnit)

getResourcePoolNames

public java.lang.String[] getResourcePoolNames()

getResourcePool

public ResourcePool getResourcePool(java.lang.String poolName)

resourceUsageChanged

public void resourceUsageChanged(java.lang.String poolName)

getResourcePoolQueue

public desmoj.core.simulator.Queue getResourcePoolQueue(java.lang.String poolName)
Parameters:
resource - pool name
Returns:
the resource pool as Queue

getResourcePoolTimeSeries

public desmoj.core.statistic.TimeSeries getResourcePoolTimeSeries(java.lang.String poolName)
Parameters:
resource - pool name
Returns:
the resource pool as Queue

getResourceQueue

public desmoj.core.simulator.Queue getResourceQueue(java.lang.String poolName)
returns a queue for a resource pool (needed if no resource is available) the queues are constructed on the fly.

Parameters:
resource - pool name
Returns:
the queue for the resource pool

checkWaitingQueue

public void checkWaitingQueue(java.lang.String poolName)

formatTaskInstance

public java.lang.String formatTaskInstance(TaskInstance taskInstance)

getResourceRequirements

public ResourceRequirement[] getResourceRequirements(java.lang.Object processElement)

getResourceWaitTimeTally

public desmoj.core.statistic.Tally getResourceWaitTimeTally(java.lang.String poolName)

getResourceWorkTimeTally

public desmoj.core.statistic.Tally getResourceWorkTimeTally(java.lang.String poolName)

getEntityWaitTimeTally

public desmoj.core.statistic.Tally getEntityWaitTimeTally(java.lang.Object obj)

reportProcessInstanceCycleTime

public void reportProcessInstanceCycleTime(ProcessDefinition pd,
                                           double duration)

reportProcessEndState

public void reportProcessEndState(EndState node)

reportProcessStart

public void reportProcessStart(ProcessDefinition processDefinition)

buildName

public java.lang.String buildName(java.lang.Object o,
                                  java.lang.String prefix,
                                  java.lang.String sufix)

getShortNameFor

public java.lang.String getShortNameFor(java.lang.String fullName)

getSourceElementForName

public java.lang.Object getSourceElementForName(java.lang.String fullName)

reportFinishedProcessInstance

public void reportFinishedProcessInstance(ProcessInstance processInstance)
remember that process instance has run, if configured to remember it


isRememberEndedProcessInstances

public boolean isRememberEndedProcessInstances()

setRememberEndedProcessInstances

public void setRememberEndedProcessInstances(boolean rememberEndedProcessInstances)

getEndedProcessInstances

public java.util.ArrayList getEndedProcessInstances()

addBusinessFigure

public void addBusinessFigure(BusinessFigure conf)

getBusinessFigure

public BusinessFigure getBusinessFigure(java.lang.String name)

getBusinessFigures

public java.util.Collection getBusinessFigures()

getBusinessFigureTypes

public java.util.Collection getBusinessFigureTypes()

getBusinessFigureSum

public double getBusinessFigureSum(java.lang.String businessFigureType)


Copyright © 2010 JBoss Community. All Rights Reserved.