Class TransporterSet
- java.lang.Object
-
- jsl.simulation.ModelElement
-
- jsl.modeling.elements.spatial.transporter.TransporterSet
-
- All Implemented Interfaces:
ObservableIfc
,GetNameIfc
,IdentityIfc
public class TransporterSet extends ModelElement
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class jsl.simulation.ModelElement
ModelElement.EventBuilderIfc<T>, ModelElement.EventScheduler<T>, ModelElement.ModelElementComparator, ModelElement.RequestBuilder, ModelElement.RequestDurationIfc, ModelElement.RequestTimeIfc, ModelElement.RequestUsingIfc, ModelElement.TimedUpdateEventAction, ModelElement.TimeUnitIfc<T>, ModelElement.WarmUpEventAction
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.List<Transporter>
myIdleTransporters
protected TimeWeighted
myNumIdleTransporters
protected java.util.List<TransporterProvider>
myTransporterProviders
protected java.util.List<Transporter>
myTransporters
protected TransporterSelectionRuleIfc
myTransporterSelectionRule
-
Fields inherited from class jsl.simulation.ModelElement
AFTER_EXPERIMENT, AFTER_REPLICATION, BEFORE_EXPERIMENT, BEFORE_REPLICATION, CONDITIONAL_ACTION_REGISTRATION, DEFAULT_TIMED_EVENT_PRIORITY, INITIALIZED, MONTE_CARLO, myAfterExperimentOption, myAfterReplicationOption, myBeforeExperimentOption, myBeforeReplicationOption, myInitializationOption, myLengthOfWarmUp, myModelElements, myMonteCarloOption, myObservableComponent, myReplicationEndedOption, myTimedUpdateActionListener, myTimedUpdateEvent, myTimedUpdateInterval, myTimedUpdateOption, myTimedUpdatePriority, myWarmUpActionListener, myWarmUpEvent, myWarmUpIndicator, myWarmUpOption, myWarmUpPriority, NONE, REMOVED_FROM_MODEL, REPLICATION_ENDED, TIME_UNIT_DAY, TIME_UNIT_HOUR, TIME_UNIT_MILLISECOND, TIME_UNIT_MINUTE, TIME_UNIT_SECOND, TIME_UNIT_WEEK, TIMED_UPDATE, UPDATE, WARMUP
-
-
Constructor Summary
Constructors Constructor Description TransporterSet(ModelElement parent)
Creates a transporter set with the given model element as a parent and assigned a default name.TransporterSet(ModelElement parent, java.lang.String name)
Creates a transporter set with the given model element as a parent and the given name.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addIdleTransporter(Transporter transporter)
Transporter
addTransporter()
Creates and adds a transporter to the setvoid
addTransporter(int n)
Creates the specified number of transporters and add them to the transporter setvoid
addTransporter(Transporter transporter)
Adds a transporter to the setprotected boolean
addTransporterProvider(TransporterProvider arg0)
java.util.ListIterator<Transporter>
getTransporterIterator()
Returns an iterator to the transporters in this setTransporterSelectionRuleIfc
getTransporterSelectionRule()
Returns the current transportation selection rule or null if noneprotected boolean
removeIdleTransporter(Transporter transporter)
Transporter
selectIdleTransporter(QObject request)
Selects an idle transporter from this TransporterSet for use by the client.void
setTransporterSelectionRule(TransporterSelectionRuleIfc rule)
Sets the transportation selection rule.-
Methods inherited from class jsl.simulation.ModelElement
addObserver, addObserverToModelElements, afterExperiment, afterExperiment_, afterReplication, afterReplication_, asString, beforeExperiment, beforeExperiment_, beforeReplication, beforeReplication_, buildEventGenerator, cancelTimedUpdateEvent, cancelWarmUpEvent, changeParentModelElement, checkForAfterExperiment, checkForAfterReplication, checkForBeforeExperiment, checkForBeforeReplication, checkForConditionalActionRegistration, checkForInitialize, checkForMonteCarlo, checkForRemoveFromModel, checkForReplicationEnded, checkForTimedUpdate, checkForUpdate, checkForWarmUp, checkObserverState, checkWarmUpOption, clearModelElementObservers, contains, countObservers, createEntity, createEntity, createQObject, day, deleteObserver, deleteObserverFromModelElements, deleteObservers, findModelElementWithWarmUpEvent, getAfterExperimentOption, getAfterReplicationOption, getAllCounters, getAllModelElements, getAllRandomElements, getAllResponseVariables, getAllVariables, getBeforeExperimentOption, getBeforeReplicationOption, getChildModelElementIterator, getCurrentReplicationNumber, getDefaultEntityType, getExecutive, getExperiment, getId, getInitializationOption, getInitializationOrderAsString, getLeftPreOrderTraversalCount, getLengthOfWarmUp, getModel, getModelElementCompartor, getModelElementsAsString, getModelElementsAsString, getModelElementsAsString, getMonteCarloOption, getName, getNumberOfModelElements, getObserverState, getParentModelElement, getPreviousObserverState, getReplicationEndedOption, getRightPreOrderTraversalCount, getSimulation, getSpatialModel, getStringLabel, getThisElementsCounters, getThisElementsModelElements, getThisElementsRandomVariables, getThisElementsResponseVariables, getThisElementsVariables, getTime, getTimedUpdateInterval, getTimedUpdateOption, getUpdateNotificationFlag, getVariable, getWarmUpEventTime, getWarmUpOption, hour, indent, initialize, initialize_, isTimedUpdateEventScheduled, isWarmedUp, isWarmUpEventScheduled, isWarmUpScheduled, millisecond, minute, montecarlo, montecarlo_, notifyAfterExperimentObservers, notifyAfterReplicationObservers, notifyBeforeExperimentObservers, notifyBeforeReplicationObservers, notifyConditionalActionRegistrationObservers, notifyInitializationObservers, notifyMonteCarloObservers, notifyObservers, notifyObservers, notifyRemovingFromModelObservers, notifyReplicationEndedObservers, notifyTimedUpdateObservers, notifyUpdateObservers, notifyWarmUpObservers, registerConditionalActions, registerConditionalActions_, removedFromModel, removeFromModel, replicationEnded, replicationEnded_, schedule, second, seize, setAfterExperimentOption, setAfterExperimentOptionForModelElements, setAfterReplicationOption, setAfterReplicationOptionForModelElements, setBeforeExperimentOption, setBeforeExperimentOptionForModelElements, setBeforeReplicationOption, setBeforeReplicationOptionForModelElements, setInitializationOption, setInitializationOptionForModelElements, setLengthOfWarmUp, setModel, setMonteCarloOption, setMonteCarloOptionForModelElements, setName, setObserverState, setParentModelElement, setReplicationEndedOption, setReplicationEndedOptionForModelElements, setSpatialModel, setStringLabel, setTimedUpdateInterval, setTimedUpdateOption, setTimedUpdateOptionForModelElements, setUpdateNotificationFlag, setWarmUpOption, setWarmUpOptionForModelElements, stopExecutive, stopExecutive, timedUpdate, timedUpdate_, toString, update, useControls, warmUp, warmUp_, week
-
-
-
-
Field Detail
-
myTransporters
protected java.util.List<Transporter> myTransporters
-
myIdleTransporters
protected java.util.List<Transporter> myIdleTransporters
-
myTransporterProviders
protected java.util.List<TransporterProvider> myTransporterProviders
-
myTransporterSelectionRule
protected TransporterSelectionRuleIfc myTransporterSelectionRule
-
myNumIdleTransporters
protected TimeWeighted myNumIdleTransporters
-
-
Constructor Detail
-
TransporterSet
public TransporterSet(ModelElement parent)
Creates a transporter set with the given model element as a parent and assigned a default name.- Parameters:
parent
-
-
TransporterSet
public TransporterSet(ModelElement parent, java.lang.String name)
Creates a transporter set with the given model element as a parent and the given name.- Parameters:
parent
-name
-
-
-
Method Detail
-
addTransporter
public final Transporter addTransporter()
Creates and adds a transporter to the set- Returns:
-
addTransporter
public final void addTransporter(int n)
Creates the specified number of transporters and add them to the transporter set- Parameters:
n
- The number of desired transporters (n>0)
-
addTransporter
public final void addTransporter(Transporter transporter)
Adds a transporter to the set- Parameters:
transporter
-
-
getTransporterIterator
public final java.util.ListIterator<Transporter> getTransporterIterator()
Returns an iterator to the transporters in this set- Returns:
-
selectIdleTransporter
public Transporter selectIdleTransporter(QObject request)
Selects an idle transporter from this TransporterSet for use by the client. Returns null if no idle transporter can be recommended. By default the recommended transporter is whatever transporter is at the top of the list of idle transporters. Since by default the transporters are added to the end of the list when they become idle, this will be the transporter that has been idle the longest. The client can supply a TransporterSelectionRuleIfc rule to change this behavior. Alternately the client can override this method. This method only recommends an idle transporter. It does not remove it from the list of idle transporters. The transporter will remove itself if it become non-idle- Parameters:
request
-- Returns:
-
getTransporterSelectionRule
public final TransporterSelectionRuleIfc getTransporterSelectionRule()
Returns the current transportation selection rule or null if none- Returns:
-
setTransporterSelectionRule
public final void setTransporterSelectionRule(TransporterSelectionRuleIfc rule)
Sets the transportation selection rule. The supplied rule is responsible for both recommending an idle transporter (not removing it) and for returning an idle transporter back to the list. This allows the rule to maintain the list in an order if necessary.- Parameters:
rule
-
-
removeIdleTransporter
protected boolean removeIdleTransporter(Transporter transporter)
-
addIdleTransporter
protected void addIdleTransporter(Transporter transporter)
-
addTransporterProvider
protected final boolean addTransporterProvider(TransporterProvider arg0)
-
-