org.jbpm.sim.entity
Class ResourceUsingEntity

java.lang.Object
  extended by desmoj.core.simulator.NamedObject
      extended by desmoj.core.simulator.ModelComponent
          extended by desmoj.core.simulator.Schedulable
              extended by desmoj.core.simulator.Entity
                  extended by org.jbpm.sim.entity.ResourceUsingEntity
Direct Known Subclasses:
TaskInstanceEntity, TokenEntity

public abstract class ResourceUsingEntity
extends desmoj.core.simulator.Entity


Constructor Summary
ResourceUsingEntity(desmoj.core.simulator.Model owner, java.lang.String name, boolean showInTrace)
           
 
Method Summary
 boolean acquireResourcesAndStart()
          acquire all resources needed by this entity.
protected abstract  void doEnd()
          start the "work", whatever it is (for example start working on a TaskInstance)
protected abstract  void doStart()
          start the "work", whatever it is (for example start working on a TaskInstance)
 void end()
           
abstract  java.lang.Object getEntityObject()
           
protected  JbpmSimulationModel getJbpmModel()
           
protected abstract  ResourceRequirement[] getRequiredResources()
           
 double getWaitTime()
           
 double getWorkTime()
           
 void releaseResources()
          release all resources acquired by this entity typically this is done after finishing this "task" (or whatever it is)
 boolean resourceReleased(java.lang.String poolName)
          The entity is informed, that a resource from the given pool gets available again So it can be checked if required resources can be consumed now.
 void start()
           
 
Methods inherited from class desmoj.core.simulator.Entity
getPriority, isEqual, isLarger, isLargerOrEqual, isNotEqual, isSimProcess, isSmaller, isSmallerOrEqual, numQueues, schedule, scheduleAfter, scheduleBefore, setPriority
 
Methods inherited from class desmoj.core.simulator.Schedulable
cancel, isCurrent, isScheduled, nextEntity, nextEvent, nextSchedulable, rename, reSchedule, scheduledAt
 
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, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ResourceUsingEntity

public ResourceUsingEntity(desmoj.core.simulator.Model owner,
                           java.lang.String name,
                           boolean showInTrace)
Method Detail

getJbpmModel

protected JbpmSimulationModel getJbpmModel()

getEntityObject

public abstract java.lang.Object getEntityObject()
Returns:
the correct type name for this entity (for example Task #47), not the name of this instance (for example TaskInstance #347)

getRequiredResources

protected abstract ResourceRequirement[] getRequiredResources()

acquireResourcesAndStart

public boolean acquireResourcesAndStart()
acquire all resources needed by this entity.

Returns:
true, if all resources were available, false otherwise

resourceReleased

public boolean resourceReleased(java.lang.String poolName)
The entity is informed, that a resource from the given pool gets available again So it can be checked if required resources can be consumed now. If so, it is also checked if ALL resources are acquired, then the Entity can start working (whatever it does)

Parameters:
poolName -
Returns:

releaseResources

public void releaseResources()
release all resources acquired by this entity typically this is done after finishing this "task" (or whatever it is)


start

public void start()

doStart

protected abstract void doStart()
start the "work", whatever it is (for example start working on a TaskInstance)


end

public void end()

doEnd

protected abstract void doEnd()
start the "work", whatever it is (for example start working on a TaskInstance)


getWaitTime

public double getWaitTime()

getWorkTime

public double getWorkTime()


Copyright © 2009 JBoss, a division of Red Hat. All Rights Reserved.