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.double
Gets the connection related margin factor.Gets the connection related max late margin.boolean
Gets the last known as route start.boolean
Checks if is apply partial connection related late margin.boolean
Checks if thisPillar
will automatically transform into ananchorNode
if it is the firstPillar
and cannot be reached in time..boolean
Checks if is do element shift connection related late margin.boolean
ChecksPillarTimeWindowGeoNode.isForcedStayNode
.boolean
boolean
Checks if theILogicEntityRoute
has to end at thisAnchorNode
.void
void
setAutoTransformable2StartAnchor
(boolean isAutoTransformable2StartAnchor) When thisPillar
is the first pillar and cannot be reached in time, it will automatically transform into ananchorNode
if set totrue
.boolean
setConnectionRelatedLateMargin
(double connectionFactor, Duration maxMargin, boolean shiftElement, boolean applyPartial) Sets the connection related late margin.void
setIsForcedStayNode
(boolean isForcedStayNode) SetsPillarTimeWindowGeoNode.isForcedStayNode
andAbstractNode.isStayNode
to the input value.void
setIsOverwritingRouteStart
(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, isOptimizable, isOptional, isPillarNode, isReturnStart, isStayNode, isUnassigned, isUnloadAll, isUseJointVisitDuration, isWaitOnEarlyArrival, isWaitOnEarlyArrivalFirstNode, isWorkNode, 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, tempSetActiveDutyHours
Methods 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, setPosition
Methods 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.isForcedStayNode
andAbstractNode.isStayNode
to 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 theILogicEntityRoute
has to end at thisAnchorNode
.If a job has to be done at this
AnchorPillar
, then anotherPillar
has to be added again.- Specified by:
isOverwritingRouteTermination
in interfaceIPillarNode
- Returns:
- whether the node is overwriting route termination
-
setIsOverwritingRouteStart
void setIsOverwritingRouteStart(boolean isOverwritingRouteStart, boolean isAdjustable) Overwrites theRoute start
, forcing theIResource
to visit thisAnchorNode
first. AnAnchorNode
essentially is anIPillarNode
that is specifically set tostart
orend
anILogicEntityRoute
. Any driving time or distance for theResource
between theAnchorNode
and 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 isAdjustable
defines whether thePillar
can still be moved a bit, allowing theAnchorNode
to be shifted towards theINode
following it on theRoute
.- Parameters:
isOverwritingRouteStart
- the boolean, iftrue
turning thePillar
in anAnchorNode
isAdjustable
- the boolean allowing theAnchorNode
to be shifted slightly
-
isAutoTransformable2StartAnchor
boolean isAutoTransformable2StartAnchor()Checks if thisPillar
will automatically transform into ananchorNode
if it is the firstPillar
and cannot be reached in time..- Returns:
- true if it can transform into an
anchorNode
-
setAutoTransformable2StartAnchor
void setAutoTransformable2StartAnchor(boolean isAutoTransformable2StartAnchor) When thisPillar
is the first pillar and cannot be reached in time, it will automatically transform into ananchorNode
if set totrue
.- Parameters:
isAutoTransformable2StartAnchor
- the boolean, might transform into ananchorNode
iftrue
-
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()
-