Interface IPillarTimeWindowGeoNode
- All Superinterfaces:
INode,IOptimizationElement,IPillarNode,Serializable
- All Known Implementing Classes:
PillarTimeWindowGeoNode
This interface provides additional methods to the
IPillarNode in order to allow setting
the Pillar to a forcedStayNode or an anchorNode.- Since:
- 22/11/2018
- Version:
- 14/02/2020
- Author:
- DNA
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.dna.jopt.member.unit.IOptimizationElement
IOptimizationElement.OptimizationElementFlavour -
Method Summary
Modifier and TypeMethodDescriptiongetConnectionRelatedLateMargin(long connectionMillis) Gets the connection related late margin.doubleGets the connection related margin factor.Gets the connection related max late margin.booleanGets the last known as route start.booleanChecks if is apply partial connection related late margin.booleanChecks if thisPillarwill automatically transform into ananchorNodeif it is the firstPillarand cannot be reached in time..booleanChecks if is do element shift connection related late margin.booleanChecksPillarTimeWindowGeoNode.isForcedStayNode.booleanbooleanChecks if theILogicEntityRoutehas to end at thisAnchorNode.voidvoidsetAutoTransformable2StartAnchor(boolean isAutoTransformable2StartAnchor) When thisPillaris the first pillar and cannot be reached in time, it will automatically transform into ananchorNodeif set totrue.booleansetConnectionRelatedLateMargin(double connectionFactor, Duration maxMargin, boolean shiftElement, boolean applyPartial) Sets the connection related late margin.voidsetIsForcedStayNode(boolean isForcedStayNode) SetsPillarTimeWindowGeoNode.isForcedStayNodeandAbstractNode.isStayNodeto the input value.voidsetIsOverwritingRouteStart(boolean isOverwritingRouteStart, boolean isAdjustable) Methods inherited from interface com.dna.jopt.member.unit.node.INode
addConstraint, addNode2NodeRelation, addQualification, addSubsequentSlaveNode, addSubsequentSlaveNodes, addViolation, decrementCurrentAutoFilterProtectedExecutions, detachNodeRelations, detachResourceConstraints, detachResourceConstraints, getAutoFilterViolationCollector, getBaseJointVisitDuration, getBaseJointVisitDurationMillis, getBaseVisitDuration, getBaseVisitDurationMillis, getConstraints, getCurrentLeftAutoFilterProtectedExecutions, getFirstNodeInRouteImportance, getFixCost, getImportance, getIndividualOfferedNodeMultiplier, getJointVisitDuration, getJointVisitDurationMillis, getLastKnownAttachedAndRemovedResIds, getLastNodeInRouteImportance, getLoad, getLockdownTime, getMinVisitDurationMillis, getNode2NodeRelations, getNodeColor, getNodeDepot, getOriginalDutyHours, getQualifications, getStayAtStartDuration, getSubsequentSlaveNodes, getTempImplausibleScore, getTotalLoadDimension, getUnloadAllDimension, getViolations, getVisitDurationMillis, hasFullJobLevelRelations, hasRelations, hasRouteDependentVisitDuration, isAllowMoveToReduceFlexTime, isAutoFilterProtected, isCausingIdleTimeCost, isDutyHoursIncludesVisitDuration, isOfferedNode, isOnBlackList, isOptimizable, isOptional, isPillarNode, isReturnStart, isStayNode, isUnassigned, isUnloadAll, isUseJointVisitDuration, isWaitOnEarlyArrival, isWaitOnEarlyArrivalFirstNode, isWorkNode, putResourceToBlacklist, removeConstraint, removeNode2NodeRelations, resetDutyHoursTempActivation, resetLockdownTime, resetSubsequentSlaveNodes, setAllowMoveToReduceFlexTime, setAutoFilterConstraints, setConstraints, setFirstNodeInRouteImportance, setFixCost, setHasRouteDependentVisitDuration, setImportance, setIndividualOfferedNodeMultiplier, setIsCausingIdleTimeCost, setIsDutyHoursIncludesVisitDuration, setIsOfferedNode, setIsOptional, setIsReturnStart, setIsStayNode, setIsWorkNode, setJointVisitDuration, setLastNodeInRouteImportance, setLoad, setLockdownTime, setMinAutoFilterProtectedExecutions, setMinimalVisitDuration, setNodeColor, setNodeDepot, setOptimizable, setOptimizable, setUnassigned, setUnloadAll, setUnloadAllDimension, setVisitDuration, setVisitDurationMillis, setWaitOnEarlyArrival, setWaitOnEarlyArrivalFirstNode, tempIncreaseImplausibleScore, tempSetActiveDutyHoursMethods inherited from interface com.dna.jopt.member.unit.IOptimizationElement
forceSetId, getConstraintAliasId, getDistMatrixId, getDutyHours, getExtraInfo, getFlavour, getId, getLatitude, getLocationId, getLongitude, getNodeConnection, getNodeConnectionKeySet, getNodeConnections, getPosition, getPreferredHoursInteractionController, hasRealGeoLocation, putNodeConnection, putNodeConnectionFromElement, removeNodeConnection, setConstraintAliasId, setDistMatrixId, setDutyHours, setExtraInfo, setId, setLatitude, setLocationId, setLongitude, setPositionMethods inherited from interface com.dna.jopt.member.unit.node.IPillarNode
attachResource, getAttachedResourceId, getLastKnownAsRouteTermination, isOnlyScheduledInCompany, isOverwritingRouteStartOrTermination, isResourceAttached, isSchedulableAfterWorkingHours, isSchedulableBeforeWorkingHours, isTimeAdjustableAnchor, setIsOnlyScheduledInCompany, setIsOverwritingRouteTermination, setIsSchedulableOutsideWorkingHours
-
Method Details
-
setIsForcedStayNode
void setIsForcedStayNode(boolean isForcedStayNode) SetsPillarTimeWindowGeoNode.isForcedStayNodeandAbstractNode.isStayNodeto the input value.- Parameters:
isForcedStayNode- the boolean to be set
-
isForcedStayNode
boolean isForcedStayNode()ChecksPillarTimeWindowGeoNode.isForcedStayNode.- Returns:
- the value of isForcedStayNode
-
isOverwritingRouteStart
boolean isOverwritingRouteStart()- Returns:
- if the node is overwriting the route start
-
isOverwritingRouteTermination
boolean isOverwritingRouteTermination()Checks if theILogicEntityRoutehas to end at thisAnchorNode.If a job has to be done at this
AnchorPillar, then anotherPillarhas to be added again.- Specified by:
isOverwritingRouteTerminationin interfaceIPillarNode- Returns:
- whether the node is overwriting route termination
-
setIsOverwritingRouteStart
void setIsOverwritingRouteStart(boolean isOverwritingRouteStart, boolean isAdjustable) Overwrites theRoute start, forcing theIResourceto visit thisAnchorNodefirst. AnAnchorNodeessentially is anIPillarNodethat is specifically set tostartorendanILogicEntityRoute. Any driving time or distance for theResourcebetween theAnchorNodeand its home is not counted. An example would be a truck driver who has to park his truck in a specific truck deposit and travels on his own time to/from home.The
boolean isAdjustabledefines whether thePillarcan still be moved a bit, allowing theAnchorNodeto be shifted towards theINodefollowing it on theRoute.- Parameters:
isOverwritingRouteStart- the boolean, iftrueturning thePillarin anAnchorNodeisAdjustable- the boolean allowing theAnchorNodeto be shifted slightly
-
isAutoTransformable2StartAnchor
boolean isAutoTransformable2StartAnchor()Checks if thisPillarwill automatically transform into ananchorNodeif it is the firstPillarand cannot be reached in time..- Returns:
- true if it can transform into an
anchorNode
-
setAutoTransformable2StartAnchor
void setAutoTransformable2StartAnchor(boolean isAutoTransformable2StartAnchor) When thisPillaris the first pillar and cannot be reached in time, it will automatically transform into ananchorNodeif set totrue.- Parameters:
isAutoTransformable2StartAnchor- the boolean, might transform into ananchorNodeiftrue
-
getLastKnownAsRouteStart
boolean getLastKnownAsRouteStart()Gets the last known as route start.- Returns:
- the last known as route start
-
setConnectionRelatedLateMargin
boolean setConnectionRelatedLateMargin(double connectionFactor, Duration maxMargin, boolean shiftElement, boolean applyPartial) Sets the connection related late margin. Margin is calculated as margin = connectionToElement*factor. If the margin is bigger than maxMargin the maxMargin is used. If shiftElement is true, the node will move to beginning of the used margin. If applyPartial is set to true, a pillar with higher lateness than what the margin could compensate is at least compensated partially. If false, no margin is applied.- Parameters:
connectionFactor- the connectionFactormaxMargin- the max marginshiftElement- the shift elementapplyPartial- the apply partial- Returns:
- true, if successful
-
getConnectionRelatedLateMargin
Gets the connection related late margin.- Parameters:
connectionMillis- the connection millis- Returns:
- the connection related late margin
-
isDoElementShiftConnectionRelatedLateMargin
boolean isDoElementShiftConnectionRelatedLateMargin()Checks if is do element shift connection related late margin.- Returns:
- true, if is do element shift connection related late margin
-
isApplyPartialConnectionRelatedLateMargin
boolean isApplyPartialConnectionRelatedLateMargin()Checks if is apply partial connection related late margin.- Returns:
- true, if is apply partial connection related late margin
-
getConnectionRelatedMaxLateMargin
Duration getConnectionRelatedMaxLateMargin()Gets the connection related max late margin.- Returns:
- the connection related max late margin
-
getConnectionRelatedMarginFactor
double getConnectionRelatedMarginFactor()Gets the connection related margin factor.- Returns:
- the connection related margin factor
-
resetConnectionRelatedMargin
void resetConnectionRelatedMargin()
-