Class AbstractNode
- All Implemented Interfaces:
IOptimizationElement,INode,Serializable
- Direct Known Subclasses:
EventNode,TimeWindowGeoNode
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.dna.jopt.member.unit.IOptimizationElement
IOptimizationElement.OptimizationElementFlavour -
Field Summary
Fields inherited from class com.dna.jopt.member.unit.AbstractOptimizationElement
dutyHours -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddConstraint(IConstraint constraint) Adds aconstraintwhich limits theResourcesthat can serve thisNodeto those that have the specificQualificationto do so.voidaddNode2NodeRelation(INode2NodeRelation relation) Sets twoNodesin aRelation.voidaddQualification(IQualification qualification) Adds aIQualificationto theResource, which means that by adding aIConstraintto theINode, they are limited to whichNodesthey can give service.voidaddSubsequentSlaveNode(INode node) Adds a subsequent slave node, which need to be visited in direct succession.voidaddSubsequentSlaveNodes(List<INode> nodes) Adds a list of subsequent slave nodes, which need to be visited in direct succession.voidaddViolation(IViolation violation) Adds aIViolationtoNode.intThe number ofiterationstheNodeis still protected from being autofiltered.voidvoidRemoves allIConstraint.voiddetachResourceConstraints(String resId) booleanGets themyAutoFilterViolationCollectorthat collected allIViolation.intlongintDeprecated.longGets the base visit duration in millisGets theConstraintswhich limit theResourcesthat can serve thisNodeto those that have the specificQualificationto do so.intGets thenumCurrentProtectedExecutions, the default value is0.Gets theIDutyHoursof theelement.intdoubleGets thefixCost.intGets thepriority.doubleGets a costmultiplierfor this specificNode.intgetJointVisitDuration(ILogicEntityRoute ownerRoute) Deprecated.longgetJointVisitDurationMillis(ILogicEntityRoute ownerRoute) Gets thegetJointVisitDurationMillis(com.dna.jopt.member.bucket.route.ILogicEntityRoute), which is the reducedvisitDurationof aNodecaused by efficiency effects since severalNodesclose to one another.intdouble[]getLoad()Gets the amount of goods theResourceis getting added by visiting theResource.intDeprecated.longGets the min visit duration millis.Gets theRelationsof theNode.Gets theINodeColorof theNode.Deprecated.Map<Class<? extends IQualification>,IQualification> Gets theIQualificationof theResource.intintGets the total load of a specific good.intGets if it is allowed for aResourceto unload all itsCapacityof a specific good (dimension) at thisNode.Gets theIViolationof theNode.longgetVisitDurationMillis(ILogicEntityRoute ownerRoute) Gets the defined visit duration of a job at aNodein seconds.booleanChecks if all the data of theNodeshould be saved in aILogicRouteElementDetailItem.inthashCode()booleanChecks if theNodehas anyRelations.booleanChecks for route dependent visit duration.voidinvokeDetachedResourceConstraints(List<IConstraintResource> removedCons) booleanbooleanChecks if theNodeis protected from being filtered.booleanChecks if theNodecan causeidle time.booleanChecks whether the job at theNodehas to be done within theIOpeningHoursor if theIResourceonly has to arrive and start the job within that time.booleanChecks if theNodeis aoffered Nodewhich has its ownindividualOfferedNodeMultiplier.booleanisOnBlackList(IResource res) booleanChecksisOptimizable, the default value istrue.booleanChecks if it is anoptional Nodeone of which theResourcemay visit in order to further be able to do its job (for example a waste dump or a packet station.The default value isfalse.booleanbooleanChecks if theNodecan be used as for anovernight stay.booleanChecks if the node was unassigned by theINodeUnassigner.booleanChecks if it is possible for theResourceto unload all itsCapacityat thisNode.booleanChecks if there are beneficial effects of a reducedvisitDurationsince severalNodesare close to one another.booleanChecks if theResource, if arriving early, has to wait until the start of theIOpeningHoursbefore being able to work.booleanbooleanChecks if is aNodeis awork Nodewhich is the default where aResourcehas a job to do.voidbooleanremoveConstraint(IConstraint removeConstraint) Removes theIConstraintfrom thisNode.booleanremoveNode2NodeRelations(INode2NodeRelation removeRelation) Removes aINode2NodeRelationfrom theNodevoidvoidvoidvoidsetAllowMoveToReduceFlexTime(boolean allowMoveToReduceFlexTime) voidsetAutoFilterConstraints(List<IAutoFilterNodeConstraint> nodeAutoFilterConstraints) Sets aIConstraintat aNodefor which it could be filtered.voidsetConstraints(List<IConstraint> constraints) Sets theArrayList constraintswhich limit theResourcesthat can serve this* Nodeto those that have the specificQualificationto do so.voidsetFirstNodeInRouteImportance(int importance) voidsetFixCost(double fixCost) Sets thefixCostfor visiting theNode.voidsetHasRouteDependentVisitDuration(boolean hasRouteDependentVisitDuration) Sets the checks for route dependent visit duration.voidsetImportance(int priority) Sets thepriority/importance.voidsetIndividualOfferedNodeMultiplier(double individualOfferedNodeMultiplier) Sets themultiplierof the cost for this specificNode.voidsetIsCausingIdleTimeCost(boolean isCausingIdleTimeCost) SetsisCausingIdleTimeCost, the default value istrue.voidsetIsDutyHoursIncludesVisitDuration(boolean isDutyHoursIncludeVisitDuration) SetsisDutyHoursIncludesVisitDuration, if set to false, theDutyHoursact as an access window in which the work has to be started.voidsetIsOfferedNode(boolean isOfferedNode) Sets as aoffered Node.voidsetIsOptional(boolean isOptional) Sets theNodeas anoptional Node.booleansetIsReturnStart(Duration stayAtStartDuration) voidsetIsStayNode(boolean isStayNode) SetsNodeas a possibleovernight stay Node.voidsetIsWorkNode(boolean isWorkNode) Sets theNodeas awork Nodewhich is the default where aResourcehas a job to do.voidsetJointVisitDuration(Duration visitDuration) If two or moreNodesare close to one another, thevisitDurationof theNodesafter the first one can be reduced since for example less loading and unloading time is needed .voidsetLastNodeInRouteImportance(int importance) voidsetLoad(double[] load) Sets the amount of goods theResourceis getting added by visiting theResource.voidsetLockdownTime(long lockdowntime) voidsetMinAutoFilterProtectedExecutions(int numProtectedExecutions) Sets a number ofiterationsof theOptimizerin which theNodeis protected from being filtered by theIAutoNodeFilter.voidsetMinimalVisitDuration(Duration minimalVisitDuration) voidsetNodeColor(INodeColor color) voidsetNodeDepot(INodeDepot depot) voidDeprecated.voidsetOptimizable(boolean isOptimizable) Sets if theNodecan still be moved around or if it is onlockdownand is fixed.voidsetOptimizable(boolean isOptimizable, boolean forceKeepLockdownTime) voidsetUnassigned(boolean unassigned) Sets theNodeto beunassigned, meaning not part of anyRoute.voidsetUnloadAll(boolean unloadAll) Allows theResourceto unload all itsCapacityat thisNodevoidsetUnloadAllDimension(int unloadAllDimension, int totalLoadDimension) Allows aResourceto unload all itsCapacityof a specific good (dimension) at thisNode.voidsetVisitDuration(int visitDurationSeconds) Deprecated.voidsetVisitDurationMillis(long visitDurationMillis) Sets the visit duration millis.voidsetWaitOnEarlyArrival(boolean waitOnEarlyArrival) Sets whether aResourcehas to wait when arriving before theIOpeningHoursof theNode.voidsetWaitOnEarlyArrivalFirstNode(boolean waitOnEarlyArrival) voidvoidtempSetActiveDutyHours(Set<Integer> tempActivateIndicesSet) toString()Methods inherited from class com.dna.jopt.member.unit.AbstractOptimizationElement
forceSetId, getConstraintAliasId, getDistMatrixId, getExtraInfo, getId, getLatitude, getLocationId, getLongitude, getNodeConnection, getNodeConnectionKeySet, getNodeConnections, getPosition, getPreferredHoursInteractionController, putNodeConnection, putNodeConnectionFromElement, removeNodeConnection, setConstraintAliasId, setDistMatrixId, setDutyHours, setExtraInfo, setId, setLatitude, setLocationId, setLongitude, setPositionMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface com.dna.jopt.member.unit.node.INode
isPillarNodeMethods inherited from interface com.dna.jopt.member.unit.IOptimizationElement
forceSetId, getConstraintAliasId, getDistMatrixId, getExtraInfo, getFlavour, getId, getLatitude, getLocationId, getLongitude, getNodeConnection, getNodeConnectionKeySet, getNodeConnections, getPosition, getPreferredHoursInteractionController, hasRealGeoLocation, putNodeConnection, putNodeConnectionFromElement, removeNodeConnection, setConstraintAliasId, setDistMatrixId, setDutyHours, setExtraInfo, setId, setLatitude, setLocationId, setLongitude, setPosition
-
Constructor Details
-
AbstractNode
protected AbstractNode()
-
-
Method Details
-
toString
- Overrides:
toStringin classAbstractOptimizationElement
-
tempIncreaseImplausibleScore
public void tempIncreaseImplausibleScore()- Specified by:
tempIncreaseImplausibleScorein interfaceINode
-
getTempImplausibleScore
public int getTempImplausibleScore()- Specified by:
getTempImplausibleScorein interfaceINode
-
tempSetActiveDutyHours
- Specified by:
tempSetActiveDutyHoursin interfaceINode
-
getDutyHours
Description copied from interface:IOptimizationElementGets theIDutyHoursof theelement.- Specified by:
getDutyHoursin interfaceIOptimizationElement- Overrides:
getDutyHoursin classAbstractOptimizationElement- Returns:
- the duty hours
-
getOriginalDutyHours
- Specified by:
getOriginalDutyHoursin interfaceINode
-
resetDutyHoursTempActivation
public void resetDutyHoursTempActivation()- Specified by:
resetDutyHoursTempActivationin interfaceINode
-
setNodeColor
Description copied from interface:INodeSets theINodeColorto theNodeby adding aNodeColorCapacityItem. By usingIWorkingHours.addNodeColorCapacity(NodeColorCapacityItem)it limits the amount ofColorcodedNodesaResourcecan give service to. This way can be made sure thatNodeswith a certainColorare not overrepresented and can be used for white space generation. The default value isNodeColors.DEFAULT.- Specified by:
setNodeColorin interfaceINode- Parameters:
color- theiNodeColor
-
getNodeColor
Description copied from interface:INode- Specified by:
getNodeColorin interfaceINode- Returns:
- the
iNodeColor
-
hashCode
public int hashCode()- Overrides:
hashCodein classAbstractOptimizationElement
-
equals
- Overrides:
equalsin classAbstractOptimizationElement
-
getAutoFilterViolationCollector
Description copied from interface:INodeGets themyAutoFilterViolationCollectorthat collected allIViolation.- Specified by:
getAutoFilterViolationCollectorin interfaceINode- Returns:
- the myAutoFilterViolationCollector
-
setAutoFilterConstraints
Description copied from interface:INodeSets aIConstraintat aNodefor which it could be filtered.- Specified by:
setAutoFilterConstraintsin interfaceINode- Parameters:
nodeAutoFilterConstraints- the AutoFilterViolationAndConstraintCollector to be set
-
isAutoFilterProtected
public boolean isAutoFilterProtected()Description copied from interface:INodeChecks if theNodeis protected from being filtered.- Specified by:
isAutoFilterProtectedin interfaceINode- Returns:
trueif the condition allows
-
setMinAutoFilterProtectedExecutions
public void setMinAutoFilterProtectedExecutions(int numProtectedExecutions) Description copied from interface:INodeSets a number ofiterationsof theOptimizerin which theNodeis protected from being filtered by theIAutoNodeFilter.- Specified by:
setMinAutoFilterProtectedExecutionsin interfaceINode- Parameters:
numProtectedExecutions- the int value
-
decrementCurrentAutoFilterProtectedExecutions
public int decrementCurrentAutoFilterProtectedExecutions()Description copied from interface:INodeThe number ofiterationstheNodeis still protected from being autofiltered.- Specified by:
decrementCurrentAutoFilterProtectedExecutionsin interfaceINode- Returns:
- the int numCurrentProtectedExecutions
-
getCurrentLeftAutoFilterProtectedExecutions
public int getCurrentLeftAutoFilterProtectedExecutions()Description copied from interface:INodeGets thenumCurrentProtectedExecutions, the default value is0.- Specified by:
getCurrentLeftAutoFilterProtectedExecutionsin interfaceINode- Returns:
- the
-
getVisitDurationMillis
Description copied from interface:INodeGets the defined visit duration of a job at aNodein seconds.- Specified by:
getVisitDurationMillisin interfaceINode- Parameters:
ownerRoute- the owner route- Returns:
- the long visit duration in millis.
-
getBaseVisitDurationMillis
public long getBaseVisitDurationMillis()Description copied from interface:INodeGets the base visit duration in millis- Specified by:
getBaseVisitDurationMillisin interfaceINode- Returns:
- the base visit duration
-
getBaseVisitDuration
Deprecated.Description copied from interface:INodeGets the base visit duration in seconds- Specified by:
getBaseVisitDurationin interfaceINode- Returns:
- the base visit duration
-
setVisitDuration
Deprecated.Description copied from interface:INodeSets the visit duration of a job at aNodein seconds.- Specified by:
setVisitDurationin interfaceINode- Parameters:
visitDurationSeconds- the int new visit duration seconds.
-
setMinimalVisitDuration
- Specified by:
setMinimalVisitDurationin interfaceINode
-
getMinVisitDuration
Deprecated. -
getMinVisitDurationMillis
public long getMinVisitDurationMillis()Description copied from interface:INodeGets the min visit duration millis.- Specified by:
getMinVisitDurationMillisin interfaceINode- Returns:
- the min visit duration millis
-
hasRouteDependentVisitDuration
public boolean hasRouteDependentVisitDuration()Description copied from interface:INodeChecks for route dependent visit duration.- Specified by:
hasRouteDependentVisitDurationin interfaceINode- Returns:
- true, if successful
-
setHasRouteDependentVisitDuration
public void setHasRouteDependentVisitDuration(boolean hasRouteDependentVisitDuration) Description copied from interface:INodeSets the checks for route dependent visit duration. Keep in mind: Some internal node classes do not accept a manipulation of the visit duration.- Specified by:
setHasRouteDependentVisitDurationin interfaceINode- Parameters:
hasRouteDependentVisitDuration- the new checks for route dependent visit duration
-
setVisitDurationMillis
public void setVisitDurationMillis(long visitDurationMillis) Description copied from interface:INodeSets the visit duration millis.- Specified by:
setVisitDurationMillisin interfaceINode- Parameters:
visitDurationMillis- the new visit duration millis
-
setJointVisitDuration
Description copied from interface:INodeIf two or moreNodesare close to one another, thevisitDurationof theNodesafter the first one can be reduced since for example less loading and unloading time is needed . Sets the reducedvisitDurationfor theseNodesinstead of the normal visit duration.- Specified by:
setJointVisitDurationin interfaceINode- Parameters:
visitDuration- the duration of the reduced visit
-
getBaseJointVisitDuration
public int getBaseJointVisitDuration()- Specified by:
getBaseJointVisitDurationin interfaceINode
-
getBaseJointVisitDurationMillis
public long getBaseJointVisitDurationMillis()- Specified by:
getBaseJointVisitDurationMillisin interfaceINode
-
getJointVisitDuration
Deprecated.Description copied from interface:INodeGets the jointVisitDuration, which is the reducedvisitDurationof aNodecaused by efficiency effects since severalNodesclose to one another.- Specified by:
getJointVisitDurationin interfaceINode- Parameters:
ownerRoute- the owner route- Returns:
- the joint visit duration
-
getJointVisitDurationMillis
Description copied from interface:INodeGets thegetJointVisitDurationMillis(com.dna.jopt.member.bucket.route.ILogicEntityRoute), which is the reducedvisitDurationof aNodecaused by efficiency effects since severalNodesclose to one another.- Specified by:
getJointVisitDurationMillisin interfaceINode- Parameters:
ownerRoute- the owner route- Returns:
- the joint visit duration
-
isUseJointVisitDuration
public boolean isUseJointVisitDuration()Description copied from interface:INodeChecks if there are beneficial effects of a reducedvisitDurationsince severalNodesare close to one another. The default value isfalse.Will be set to
truebyINode.setJointVisitDuration(Duration).- Specified by:
isUseJointVisitDurationin interfaceINode- Returns:
- the boolean if
visitDurationis reduced
-
setUnassigned
public void setUnassigned(boolean unassigned) Description copied from interface:INodeSets theNodeto beunassigned, meaning not part of anyRoute. The default value isfalse.This method es bing used internally.
- Specified by:
setUnassignedin interfaceINode- Parameters:
unassigned- the boolean for the new unassigned
-
isUnassigned
public boolean isUnassigned()Description copied from interface:INodeChecks if the node was unassigned by theINodeUnassigner. Anunassigned Nodeis not part of anyRoute- Specified by:
isUnassignedin interfaceINode- Returns:
- boolean true if the node was unassigned
-
setOptimizable
public void setOptimizable(boolean isOptimizable) Description copied from interface:INodeSets if theNodecan still be moved around or if it is onlockdownand is fixed.- Specified by:
setOptimizablein interfaceINode- Parameters:
isOptimizable- the boolean isOptimizable to be set
-
setOptimizable
public void setOptimizable(boolean isOptimizable, boolean forceKeepLockdownTime) - Specified by:
setOptimizablein interfaceINode
-
resetLockdownTime
public void resetLockdownTime()- Specified by:
resetLockdownTimein interfaceINode
-
setLockdownTime
public void setLockdownTime(long lockdowntime) - Specified by:
setLockdownTimein interfaceINode
-
getLockdownTime
- Specified by:
getLockdownTimein interfaceINode
-
isOptimizable
public boolean isOptimizable()Description copied from interface:INodeChecksisOptimizable, the default value istrue.- Specified by:
isOptimizablein interfaceINode- Returns:
- the boolean isOptimizable
-
addViolation
Description copied from interface:INodeAdds aIViolationtoNode. This method is used internally.- Specified by:
addViolationin interfaceINode- Parameters:
violation- the violation
-
getViolations
Description copied from interface:INodeGets theIViolationof theNode. Only has a non-empty list in case a result was requested.- Specified by:
getViolationsin interfaceINode- Returns:
- the
List<IViolation> violations
-
setFixCost
public void setFixCost(double fixCost) Description copied from interface:INodeSets thefixCostfor visiting theNode. The default value of thedoubleis 0.- Specified by:
setFixCostin interfaceINode- Parameters:
fixCost- the double fixCost
-
getFixCost
public double getFixCost()Description copied from interface:INodeGets thefixCost. The default value of thedoubleis 0. If using, e.g. inCompany or optional node feature setting a non-zero fixcost can make sense.- Specified by:
getFixCostin interfaceINode- Returns:
- the double fixCost
-
isStayNode
public boolean isStayNode()Description copied from interface:INodeChecks if theNodecan be used as for anovernight stay. The default value isfalse.This allows the
Resourceto stay at thisNodeat the end of theRouteinstead of returning home and proceeding from there the next day. The Resource also needsIWorkingHours.getIsAvailableForStay()to be set totruein order to be able to stay there at the end of theRoute.- Specified by:
isStayNodein interfaceINode- Returns:
- the boolean if a Resource can stay there
-
setIsStayNode
public void setIsStayNode(boolean isStayNode) Description copied from interface:INodeSetsNodeas a possibleovernight stay Node.This allows the
Resourceto stay at thisNodeat the end of theRouteinstead of returning home and proceeding from there the next day. The Resource also needsIWorkingHours.getIsAvailableForStay()to be set totruein order to be able to stay there at the end of theRoute.- Specified by:
setIsStayNodein interfaceINode- Parameters:
isStayNode- if the boolean is set totruetheNodecan be used forovernight stays
-
isWorkNode
public boolean isWorkNode()Description copied from interface:INodeChecks if is aNodeis awork Nodewhich is the default where aResourcehas a job to do. This method is needed because it is possible to define aNodeas aINode.setIsStayNode(boolean)but not as awork Node.- Specified by:
isWorkNodein interfaceINode- Returns:
- the boolean whether Resources can do work at this Node
-
setIsWorkNode
public void setIsWorkNode(boolean isWorkNode) Description copied from interface:INodeSets theNodeas awork Nodewhich is the default where aResourcehas a job to do. This method is needed because it is possible to define aNodeas aINode.setIsStayNode(boolean)but not as awork Node- Specified by:
setIsWorkNodein interfaceINode- Parameters:
isWorkNode- the boolean for theworkNode
-
isOfferedNode
public boolean isOfferedNode()Description copied from interface:INodeChecks if theNodeis aoffered Nodewhich has its ownindividualOfferedNodeMultiplier. Anoffered Nodeusually has a higher priority to be integrated into aRoutewhich is done by multiplying the cost for this specificNodewhen being missed.- Specified by:
isOfferedNodein interfaceINode- Returns:
- the boolean
isOfferedNode
-
setIsOfferedNode
public void setIsOfferedNode(boolean isOfferedNode) Description copied from interface:INodeSets as aoffered Node. The default value isfalse. When a node is marked as offered node more costs can arise when violating any of the constraints of the node. Anoffered Nodeusually has a higher priority to be integrated into aRoutewhich is done by multiplying the cost for this specificNodewhen being missed.- Specified by:
setIsOfferedNodein interfaceINode- Parameters:
isOfferedNode- the boolean to be set- See Also:
-
getIndividualOfferedNodeMultiplier
public double getIndividualOfferedNodeMultiplier()Description copied from interface:INodeGets a costmultiplierfor this specificNode.- Specified by:
getIndividualOfferedNodeMultiplierin interfaceINode- Returns:
- the double
individualOfferedNodeMultiplier
-
setIndividualOfferedNodeMultiplier
public void setIndividualOfferedNodeMultiplier(double individualOfferedNodeMultiplier) Description copied from interface:INodeSets themultiplierof the cost for this specificNode. The default value is 1. When using a higher value the default costs arising from not fulfilling any constraints of the node are multiplied by this factor, therefore giving theNodea higher priority to be given service on time.- Specified by:
setIndividualOfferedNodeMultiplierin interfaceINode- Parameters:
individualOfferedNodeMultiplier- the double to be set
-
setImportance
public void setImportance(int priority) Description copied from interface:INodeSets thepriority/importance. The default value is 1.- Specified by:
setImportancein interfaceINode- Parameters:
priority- the int priority to be set.
-
getImportance
public int getImportance()Description copied from interface:INodeGets thepriority.- Specified by:
getImportancein interfaceINode- Returns:
- the int
priority
-
isWaitOnEarlyArrival
public boolean isWaitOnEarlyArrival()Description copied from interface:INodeChecks if theResource, if arriving early, has to wait until the start of theIOpeningHoursbefore being able to work. The default value istrue, in which case arriving too early meansidle time.- Specified by:
isWaitOnEarlyArrivalin interfaceINode- Returns:
- the boolean
waitOnEarlyArrival
-
setWaitOnEarlyArrival
public void setWaitOnEarlyArrival(boolean waitOnEarlyArrival) Description copied from interface:INodeSets whether aResourcehas to wait when arriving before theIOpeningHoursof theNode. The default value istrue.When wait on early arrival is set to false, a visiting resource will start working right away. In contrast, if
WaitOnEarlyArrivalis set totrue, aResourcewill idle until aNodeopens based on its definedIWorkingHours.- Specified by:
setWaitOnEarlyArrivalin interfaceINode- Parameters:
waitOnEarlyArrival- the boolean to be set
-
setWaitOnEarlyArrivalFirstNode
public void setWaitOnEarlyArrivalFirstNode(boolean waitOnEarlyArrival) - Specified by:
setWaitOnEarlyArrivalFirstNodein interfaceINode
-
isWaitOnEarlyArrivalFirstNode
public boolean isWaitOnEarlyArrivalFirstNode()- Specified by:
isWaitOnEarlyArrivalFirstNodein interfaceINode
-
setFirstNodeInRouteImportance
public void setFirstNodeInRouteImportance(int importance) - Specified by:
setFirstNodeInRouteImportancein interfaceINode
-
getFirstNodeInRouteImportance
public int getFirstNodeInRouteImportance()- Specified by:
getFirstNodeInRouteImportancein interfaceINode
-
setLastNodeInRouteImportance
public void setLastNodeInRouteImportance(int importance) - Specified by:
setLastNodeInRouteImportancein interfaceINode
-
getLastNodeInRouteImportance
public int getLastNodeInRouteImportance()- Specified by:
getLastNodeInRouteImportancein interfaceINode
-
setAllowMoveToReduceFlexTime
public void setAllowMoveToReduceFlexTime(boolean allowMoveToReduceFlexTime) - Specified by:
setAllowMoveToReduceFlexTimein interfaceINode
-
isAllowMoveToReduceFlexTime
public boolean isAllowMoveToReduceFlexTime()- Specified by:
isAllowMoveToReduceFlexTimein interfaceINode
-
addNode2NodeRelation
Description copied from interface:INodeSets twoNodesin aRelation. AMasterNodehas to be served before aRelatedNode.For further explanation and implementation examples please see
INode2NodeRelation.- Specified by:
addNode2NodeRelationin interfaceINode- Parameters:
relation- theINode2NodeRelationto be added
-
getNode2NodeRelations
Description copied from interface:INodeGets theRelationsof theNode.For further explanation and implementation examples please see
INode2NodeRelation.- Specified by:
getNode2NodeRelationsin interfaceINode- Returns:
- the arraylist
List<INode2NodeRelation> node2NodeRelation
-
removeNode2NodeRelations
Description copied from interface:INodeRemoves aINode2NodeRelationfrom theNode- Specified by:
removeNode2NodeRelationsin interfaceINode- Parameters:
removeRelation- the INode2NodeRelation that will be removed- Returns:
- the relation that was removed
-
hasFullJobLevelRelations
public boolean hasFullJobLevelRelations()Description copied from interface:INodeChecks if all the data of theNodeshould be saved in aILogicRouteElementDetailItem. The default value isfalse.The only other instance when this data is saved is when a
ILogicRouteElementDetailItemis requested.- Specified by:
hasFullJobLevelRelationsin interfaceINode- Returns:
- the
boolean hasFullJobLevelRelations
-
hasRelations
public boolean hasRelations()Description copied from interface:INodeChecks if theNodehas anyRelations.For further explanation and implementation examples of
Relationsplease seeINode2NodeRelation- Specified by:
hasRelationsin interfaceINode- Returns:
- the boolean
hasRelations
-
addConstraint
Description copied from interface:INodeAdds aconstraintwhich limits theResourcesthat can serve thisNodeto those that have the specificQualificationto do so.For further explanations and implementation examples please see
TypeConstraintandTypeQualification.- Specified by:
addConstraintin interfaceINode- Parameters:
constraint- theIconstraintto be added
-
detachResourceConstraints
public void detachResourceConstraints()Description copied from interface:INodeRemoves allIConstraint. This method is used internally.- Specified by:
detachResourceConstraintsin interfaceINode
-
detachNodeRelations
public void detachNodeRelations()- Specified by:
detachNodeRelationsin interfaceINode
-
detachResourceConstraints
Description copied from interface:INodeRemoves theIResourcewith the givenresIdfrom theIConstraintthat areIConstraintResource. This method is used internally.- Specified by:
detachResourceConstraintsin interfaceINode- Parameters:
resId- the string Resource /D
-
invokeDetachedResourceConstraints
-
getLastKnownAttachedAndRemovedResIds
- Specified by:
getLastKnownAttachedAndRemovedResIdsin interfaceINode
-
getConstraints
Description copied from interface:INodeGets theConstraintswhich limit theResourcesthat can serve thisNodeto those that have the specificQualificationto do so.For further explanations and implementation examples please see
TypeConstraintandTypeQualification.- Specified by:
getConstraintsin interfaceINode- Returns:
- the
List<IConstraint> constraints
-
removeConstraint
Description copied from interface:INodeRemoves theIConstraintfrom thisNode.- Specified by:
removeConstraintin interfaceINode- Parameters:
removeConstraint- the constraint to be removed- Returns:
- the
List<IConstraint>constraints that were removed
-
setConstraints
Description copied from interface:INodeSets theArrayList constraintswhich limit theResourcesthat can serve this* Nodeto those that have the specificQualificationto do so. Cannot benull.For further explanations and implementation examples please see
TypeConstraintandTypeQualification- Specified by:
setConstraintsin interfaceINode- Parameters:
constraints- theArraylist constraintsto be set
-
isDutyHoursIncludesVisitDuration
public boolean isDutyHoursIncludesVisitDuration()Description copied from interface:INodeChecks whether the job at theNodehas to be done within theIOpeningHoursor if theIResourceonly has to arrive and start the job within that time.- Specified by:
isDutyHoursIncludesVisitDurationin interfaceINode- Returns:
- the boolean isDutyHoursIncludesVisitDuration
- See Also:
-
setIsDutyHoursIncludesVisitDuration
public void setIsDutyHoursIncludesVisitDuration(boolean isDutyHoursIncludeVisitDuration) Description copied from interface:INodeSetsisDutyHoursIncludesVisitDuration, if set to false, theDutyHoursact as an access window in which the work has to be started. If set totruethe work has to be finished within theDutyHours.- Specified by:
setIsDutyHoursIncludesVisitDurationin interfaceINode- Parameters:
isDutyHoursIncludeVisitDuration- the boolean if the work has to be done within the Dutyhours
-
setIsCausingIdleTimeCost
public void setIsCausingIdleTimeCost(boolean isCausingIdleTimeCost) Description copied from interface:INodeSetsisCausingIdleTimeCost, the default value istrue. WhenINode.isWaitOnEarlyArrival()is true, a resource can generate idle time at a node. However, in a partially loaded optimization (so the amount of available working time of the resources is much higher than the required working time at the nodes) with tightIOpeningHoursof the nodes, a lot of idle time can arise, as resources have to wait till nodes are opening and have nothing else to do. This can lead to bad optimization results, as the optimizer tries to avoid idle time and whitespace.By setting
isCausingIdleTimeCostto false, idle time at this node does not generate cost.- Specified by:
setIsCausingIdleTimeCostin interfaceINode- Parameters:
isCausingIdleTimeCost- the boolean to be set
-
isCausingIdleTimeCost
public boolean isCausingIdleTimeCost()Description copied from interface:INodeChecks if theNodecan causeidle time. If set tofalsetheNodestill causesidle timebut at no cost. The default value istrue.- Specified by:
isCausingIdleTimeCostin interfaceINode- Returns:
- the boolean
isCausingIdleTimeCost
-
setIsOptional
public void setIsOptional(boolean isOptional) Description copied from interface:INodeSets theNodeas anoptional Node. TheResourcecan go to one of manyoptional Nodesto do a task (for example dump waste, get new packets to deliver) but does not have to go to a specificoptional Node.- Specified by:
setIsOptionalin interfaceINode- Parameters:
isOptional- the boolean to set the Node as an optional Node
-
isOptional
public boolean isOptional()Description copied from interface:INodeChecks if it is anoptional Nodeone of which theResourcemay visit in order to further be able to do its job (for example a waste dump or a packet station.The default value isfalse.- Specified by:
isOptionalin interfaceINode- Returns:
- the boolean to be checked
-
addQualification
Description copied from interface:INodeAdds aIQualificationto theResource, which means that by adding aIConstraintto theINode, they are limited to whichNodesthey can give service.Used in
UKPostCodeConstraint.- Specified by:
addQualificationin interfaceINode- Parameters:
qualification- the iQualification that is to be added
-
getQualifications
Description copied from interface:INodeGets theIQualificationof theResource.- Specified by:
getQualificationsin interfaceINode- Returns:
- the node qualifications
- See Also:
-
addSubsequentSlaveNode
Description copied from interface:INodeAdds a subsequent slave node, which need to be visited in direct succession. The slave node should not be added directly to the optimization.- Specified by:
addSubsequentSlaveNodein interfaceINode- Parameters:
node- the subsequent slave node
-
addSubsequentSlaveNodes
Description copied from interface:INodeAdds a list of subsequent slave nodes, which need to be visited in direct succession. The slave nodes should not be added directly to the optimization.- Specified by:
addSubsequentSlaveNodesin interfaceINode- Parameters:
nodes- the subsequent slave nodes
-
getSubsequentSlaveNodes
- Specified by:
getSubsequentSlaveNodesin interfaceINode
-
resetSubsequentSlaveNodes
public void resetSubsequentSlaveNodes()- Specified by:
resetSubsequentSlaveNodesin interfaceINode
-
setIsReturnStart
- Specified by:
setIsReturnStartin interfaceINode
-
isReturnStart
public boolean isReturnStart()- Specified by:
isReturnStartin interfaceINode
-
getStayAtStartDuration
- Specified by:
getStayAtStartDurationin interfaceINode
-
setLoad
public void setLoad(double[] load) Description copied from interface:INodeSets the amount of goods theResourceis getting added by visiting theResource. Can be negative (delivering packages). -
getLoad
public double[] getLoad()Description copied from interface:INodeGets the amount of goods theResourceis getting added by visiting theResource. Can be negative (delivering packages). -
setUnloadAll
public void setUnloadAll(boolean unloadAll) Description copied from interface:INodeAllows theResourceto unload all itsCapacityat thisNode- Specified by:
setUnloadAllin interfaceINode- Parameters:
unloadAll- the boolean to be set- See Also:
-
isUnloadAll
public boolean isUnloadAll()Description copied from interface:INodeChecks if it is possible for theResourceto unload all itsCapacityat thisNode.- Specified by:
isUnloadAllin interfaceINode- Returns:
- the boolean unloadAll
-
setUnloadAllDimension
public void setUnloadAllDimension(int unloadAllDimension, int totalLoadDimension) Description copied from interface:INodeAllows aResourceto unload all itsCapacityof a specific good (dimension) at thisNode.- Specified by:
setUnloadAllDimensionin interfaceINode- Parameters:
unloadAllDimension- the int unloadAllDimensiontotalLoadDimension- the int totalLoadDimension
-
getUnloadAllDimension
public int getUnloadAllDimension()Description copied from interface:INodeGets if it is allowed for aResourceto unload all itsCapacityof a specific good (dimension) at thisNode.- Specified by:
getUnloadAllDimensionin interfaceINode- Returns:
- the int unloadAllDimension
-
getTotalLoadDimension
public int getTotalLoadDimension()Description copied from interface:INodeGets the total load of a specific good.- Specified by:
getTotalLoadDimensionin interfaceINode- Returns:
- the int totalLoadDimension
-
getNodeId
Deprecated.- Returns:
- the node id
- Category:
- Legacy
Gets the node id.
-
setNodeId
Deprecated.- Parameters:
id- the new node id- Category:
- Legacy
Sets the node id.
-
setNodeDepot
- Specified by:
setNodeDepotin interfaceINode
-
getNodeDepot
- Specified by:
getNodeDepotin interfaceINode
-
putResourceToBlacklist
- Specified by:
putResourceToBlacklistin interfaceINode
-
isOnBlackList
- Specified by:
isOnBlackListin interfaceINode
-