Class PillarTimeWindowGeoNode
java.lang.Object
com.dna.jopt.member.unit.AbstractOptimizationElement
com.dna.jopt.member.unit.node.AbstractNode
com.dna.jopt.member.unit.node.geo.TimeWindowGeoNode
com.dna.jopt.member.unit.node.geo.PillarTimeWindowGeoNode
- All Implemented Interfaces:
IOptimizationElement,IPillarTimeWindowGeoNode,INode,IPillarNode,Serializable
A
TimeWindowGeoNode which, if not reached in time, will be skipped entirely by
unassigning it. PillarTimeWindowGeoNode(String, double, double, IOpeningHours, Duration)
is the normal constructor. PillarTimeWindowGeoNode(String, double, double, IOpeningHours, Duration, boolean) includes the option that the work at the PillarTimeWindowGeoNode has
to be done within the OpeningHours.- Since:
- 03/08/2019
- Version:
- 14/08/2019
- Author:
- DNA
- 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
ConstructorsConstructorDescriptionPillarTimeWindowGeoNode(String nodeId, double latitude, double longitude, IOpeningHours openingHour) The constructor for thePillarTimeWindowGeoNode, which is aTimeWindowGeoNodethat if not reached in time, will be skipped entirely.PillarTimeWindowGeoNode(String nodeId, double latitude, double longitude, IOpeningHours openingHour, Duration visitDuration) The constructor for thePillarTimeWindowGeoNode, which is aTimeWindowGeoNodethat if not reached in time, will be skipped entirely.PillarTimeWindowGeoNode(String nodeId, double latitude, double longitude, IOpeningHours openingHour, Duration visitDuration, boolean isDutyHoursIncludeVisitDuration) The constructor for thePillarTimeWindowGeoNode, which is aTimeWindowGeoNodethat if not reached in time, will be skipped entirely.PillarTimeWindowGeoNode(String nodeId, com.dna.jopt.config.types.Position pos, IOpeningHours openingHour) PillarTimeWindowGeoNode(String nodeId, com.dna.jopt.config.types.Position pos, IOpeningHours openingHour, Duration visitDuration) PillarTimeWindowGeoNode(String nodeId, com.dna.jopt.config.types.Position pos, IOpeningHours openingHour, Duration visitDuration, boolean isDutyHoursIncludeVisitDuration) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddConstraint(IConstraint constraint) Adds aconstraintwhich limits theResourcesthat can serve thisNodeto those that have the specificQualificationto do so.voidattachResource(IResource mandatoryVisitor) Attaching themandatoryVisitoras the visitingresourcewill be treated as ahard constraintif amandatoryVisitorwas set using this method.voidRemoves allIConstraint.voiddetachResourceConstraints(String resId) booleanGets theidof thePillarEventNode.attachedres, returnsnullif noresourcehas been attached.getConnectionRelatedLateMargin(long connectionMillis) Gets the connection related late margin.doubleGets the connection related margin factor.Gets the connection related max late margin.Gets the flavour which spells out the kind ofNodeof the element.booleanGets the last known as route start.booleaninthashCode()booleanChecks if is apply partial connection related late margin.booleanChecks if theNodeis protected from being filtered.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.booleanChecksisForcedStayNode.booleanSomePillarsthat are scheduled are not actually jobs.booleanbooleanChecks if thePillaris anAnchorPillarin which case theRoutehas to start or and at saidAnchorPillar.booleanChecks if theILogicEntityRoutehas to end at thisAnchorNode.booleanChecks if the node is aisPillarNode.booleanChecks the state ofattachedres.booleanChecksisSchedulableOutsideWorkingsHoursEnd.booleanChecksisSchedulableOutsideWorkingsHoursStart.booleanChecksisTimeAdjustableAnchor.voidvoidsetAutoTransformable2StartAnchor(boolean isAutoTransformable2StartAnchor) When thisPillaris the first pillar and cannot be reached in time, it will automatically transform into ananchorNodeif set totrue.booleansetConnectionRelatedLateMargin(double connectionFator, Duration maxMargin, boolean shiftNode, boolean applyPartial) Sets the connection related late margin.voidsetIsForcedStayNode(boolean isForcedStayNode) SetsisForcedStayNodeandAbstractNode.isStayNodeto the input value.voidsetIsOnlyScheduledInCompany(boolean isOnlyScheduledInCompany) Sets thePillaronly to be visited of otherwork Nodesare scheduled that day.voidsetIsOverwritingRouteStart(boolean isOverwritingRouteStart, boolean isAdjustable) voidsetIsOverwritingRouteTermination(boolean isOverwritingRouteTermination, boolean isAdjustable) Sets thePillarto beanAnchorPillarat which theRoutehas to start or end.voidsetIsSchedulableOutsideWorkingHours(boolean isSchedulableOutsideWorkingsHoursStart, boolean isSchedulableOutsideWorkingsHoursEnd) Sets thePillarthat it has to be visited by aResourceoutside of herWorkingHoursifIResource.setMaxPillarAfterHoursTime(Duration)is also set totrue.Methods inherited from class com.dna.jopt.member.unit.node.geo.TimeWindowGeoNode
hasRealGeoLocationMethods inherited from class com.dna.jopt.member.unit.node.AbstractNode
addNode2NodeRelation, addQualification, addSubsequentSlaveNode, addSubsequentSlaveNodes, addViolation, decrementCurrentAutoFilterProtectedExecutions, detachNodeRelations, getAutoFilterViolationCollector, getBaseJointVisitDuration, getBaseJointVisitDurationMillis, getBaseVisitDuration, getBaseVisitDurationMillis, getConstraints, getCurrentLeftAutoFilterProtectedExecutions, getDutyHours, getFirstNodeInRouteImportance, getFixCost, getImportance, getIndividualOfferedNodeMultiplier, getJointVisitDuration, getJointVisitDurationMillis, getLastKnownAttachedAndRemovedResIds, getLastNodeInRouteImportance, getLoad, getLockdownTime, getMinVisitDuration, getMinVisitDurationMillis, getNode2NodeRelations, getNodeColor, getNodeDepot, getNodeId, getOriginalDutyHours, getQualifications, getStayAtStartDuration, getSubsequentSlaveNodes, getTempImplausibleScore, getTotalLoadDimension, getUnloadAllDimension, getViolations, getVisitDurationMillis, hasFullJobLevelRelations, hasRelations, hasRouteDependentVisitDuration, invokeDetachedResourceConstraints, isAllowMoveToReduceFlexTime, isCausingIdleTimeCost, isDutyHoursIncludesVisitDuration, isOfferedNode, isOnBlackList, isOptimizable, isOptional, 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, setNodeId, setOptimizable, setOptimizable, setUnassigned, setUnloadAll, setUnloadAllDimension, setVisitDuration, setVisitDurationMillis, setWaitOnEarlyArrival, setWaitOnEarlyArrivalFirstNode, tempIncreaseImplausibleScore, tempSetActiveDutyHours, toStringMethods 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
addNode2NodeRelation, addQualification, addSubsequentSlaveNode, addSubsequentSlaveNodes, addViolation, decrementCurrentAutoFilterProtectedExecutions, detachNodeRelations, 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, isCausingIdleTimeCost, isDutyHoursIncludesVisitDuration, isOfferedNode, isOnBlackList, isOptimizable, isOptional, 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, getId, getLatitude, getLocationId, getLongitude, getNodeConnection, getNodeConnectionKeySet, getNodeConnections, getPosition, getPreferredHoursInteractionController, hasRealGeoLocation, putNodeConnection, putNodeConnectionFromElement, removeNodeConnection, setConstraintAliasId, setDistMatrixId, setDutyHours, setExtraInfo, setId, setLatitude, setLocationId, setLongitude, setPosition
-
Constructor Details
-
PillarTimeWindowGeoNode
public PillarTimeWindowGeoNode(String nodeId, double latitude, double longitude, IOpeningHours openingHour) The constructor for thePillarTimeWindowGeoNode, which is aTimeWindowGeoNodethat if not reached in time, will be skipped entirely. If avisit durationis supposed to be set, please usePillarTimeWindowGeoNode(String, double, double, IOpeningHours, Duration).Implementation example:
// Defining opening hours OpeningHours openingHours = new OpeningHours(ZonedDateTime.of(2020, MAY.getValue(), 6, 14, 0, 0, 0, ZoneId.of("Europe/Berlin")), ZonedDateTime.of(2020, MAY.getValue(), 6, 21, 0, 0, 0, ZoneId.of("Europe/Berlin"))); // Defining an (optional) constraint IConstraint typeConstraint = new TypeConstraint(); ((TypeConstraint) typeConstraint).addType("plumbing"); typeConstraint.setIsHard(true); PillarTimeWindowGeoNode aachen = new PillarTimeWindowGeoNode("Aachen", 50.775346, 6.083887, openingHours); aachen.addConstraint(typeConstraint); this.addElement(aachen);- Parameters:
nodeId- the string node IDlatitude- the double latitude of the PillarTimeWindowGeoNodelongitude- the double longitude of the PillarTimeWindowGeoNodeopeningHour- the IOpeninghours
-
PillarTimeWindowGeoNode
public PillarTimeWindowGeoNode(String nodeId, com.dna.jopt.config.types.Position pos, IOpeningHours openingHour) -
PillarTimeWindowGeoNode
public PillarTimeWindowGeoNode(String nodeId, double latitude, double longitude, IOpeningHours openingHour, Duration visitDuration) The constructor for thePillarTimeWindowGeoNode, which is aTimeWindowGeoNodethat if not reached in time, will be skipped entirely. If the work at thePillarTimeWindowGeoNodehas to be finished within theIDutyHours, please usePillarTimeWindowGeoNode(String, double, double, IOpeningHours, Duration, boolean).Implementation example
// Defining opening hours OpeningHours openingHours = new OpeningHours(ZonedDateTime.of(2020, MAY.getValue(), 6, 14, 0, 0, 0, ZoneId.of("Europe/Berlin")), ZonedDateTime.of(2020, MAY.getValue(), 6, 21, 0, 0, 0, ZoneId.of("Europe/Berlin"))); // Defining an (optional) constraint IConstraint typeConstraint = new TypeConstraint(); ((TypeConstraint) typeConstraint).addType("plumbing"); typeConstraint.setIsHard(true); Duration visitDuration = Duration.ofMinutes(20); PillarTimeWindowGeoNode aachen = new PillarTimeWindowGeoNode("Aachen", 50.775346, 6.083887, openingHours, visitDuration); aachen.addConstraint(typeConstraint); this.addElement(aachen);- Parameters:
nodeId- the string node IDlatitude- the double latitude of the PillarTimeWindowGeoNodelongitude- the double longitude of the PillarTimeWindowGeoNodeopeningHour- the IOpeninghoursvisitDuration- the duration visitduration that the work needs in order to be done
-
PillarTimeWindowGeoNode
public PillarTimeWindowGeoNode(String nodeId, com.dna.jopt.config.types.Position pos, IOpeningHours openingHour, Duration visitDuration) -
PillarTimeWindowGeoNode
public PillarTimeWindowGeoNode(String nodeId, double latitude, double longitude, IOpeningHours openingHour, Duration visitDuration, boolean isDutyHoursIncludeVisitDuration) The constructor for thePillarTimeWindowGeoNode, which is aTimeWindowGeoNodethat if not reached in time, will be skipped entirely. In the other constructors the work has to be started but not necessarily finished within theIDutyHours. IfisDutyHoursIncludeVisitDurationis set totrue, the work has to be started and finished within theDutyHours.Implementation example
// Defining opening hours OpeningHours openingHours = new OpeningHours(ZonedDateTime.of(2020, MAY.getValue(), 6, 14, 0, 0, 0, ZoneId.of("Europe/Berlin")), ZonedDateTime.of(2020, MAY.getValue(), 6, 21, 0, 0, 0, ZoneId.of("Europe/Berlin"))); // Defining an (optional) constraint IConstraint typeConstraint = new TypeConstraint(); ((TypeConstraint) typeConstraint).addType("plumbing"); typeConstraint.setIsHard(true); Duration visitDuration = Duration.ofMinutes(20); PillarTimeWindowGeoNode aachen = new PillarTimeWindowGeoNode("Aachen", 50.775346, 6.083887, openingHours, visitDuration, true); aachen.addConstraint(typeConstraint); this.addElement(aachen);- Parameters:
nodeId- the string node IDlatitude- the double latitude of the PillarTimeWindowGeoNodelongitude- the double longitude of the PillarTimeWindowGeoNodeopeningHour- the iOpeningHoursvisitDuration- the duration visitDuration that the work needsisDutyHoursIncludeVisitDuration- the boolean whether the visitDuration if the work has to be done within the DutyHours
-
PillarTimeWindowGeoNode
public PillarTimeWindowGeoNode(String nodeId, com.dna.jopt.config.types.Position pos, IOpeningHours openingHour, Duration visitDuration, boolean isDutyHoursIncludeVisitDuration)
-
-
Method Details
-
isTimeAdjustableAnchor
public boolean isTimeAdjustableAnchor()Description copied from interface:IPillarNodeChecksisTimeAdjustableAnchor. If yes, then thePillaris allowed to change time a bit if theRoutestart is moving as well. The default value isfalse.- Specified by:
isTimeAdjustableAnchorin interfaceIPillarNode- Returns:
- the state of isTimeAdjustableAnchor
-
isOverwritingRouteStart
public boolean isOverwritingRouteStart()Description copied from interface:IPillarTimeWindowGeoNode- Specified by:
isOverwritingRouteStartin interfaceIPillarTimeWindowGeoNode- Returns:
- if the node is overwriting the route start
-
isOverwritingRouteTermination
public boolean isOverwritingRouteTermination()Description copied from interface:IPillarTimeWindowGeoNodeChecks 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- Specified by:
isOverwritingRouteTerminationin interfaceIPillarTimeWindowGeoNode- Returns:
- whether the node is overwriting route termination
-
attachResource
Description copied from interface:IPillarNodeAttaching themandatoryVisitoras the visitingresourcewill be treated as ahard constraintif amandatoryVisitorwas set using this method.Throws an
IllegalStateExceptionif amandatoryVisitorhas already been attached- Specified by:
attachResourcein interfaceIPillarNode- Parameters:
mandatoryVisitor- the Resource to attach to the Pillarnode
-
detachResourceConstraints
public void detachResourceConstraints()Description copied from interface:INodeRemoves allIConstraint. This method is used internally.- Specified by:
detachResourceConstraintsin interfaceINode- Overrides:
detachResourceConstraintsin classAbstractNode
-
getLastKnownAsRouteStart
public boolean getLastKnownAsRouteStart()Description copied from interface:IPillarTimeWindowGeoNodeGets the last known as route start.- Specified by:
getLastKnownAsRouteStartin interfaceIPillarTimeWindowGeoNode- Returns:
- the last known as route start
-
getLastKnownAsRouteTermination
public boolean getLastKnownAsRouteTermination()- Specified by:
getLastKnownAsRouteTerminationin interfaceIPillarNode
-
detachResourceConstraints
Description copied from interface:INodeRemoves theIResourcewith the givenresIdfrom theIConstraintthat areIConstraintResource. This method is used internally.- Specified by:
detachResourceConstraintsin interfaceINode- Overrides:
detachResourceConstraintsin classAbstractNode- Parameters:
resId- the string Resource /D
-
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- Overrides:
addConstraintin classAbstractNode- Parameters:
constraint- theIconstraintto be added
-
getAttachedResourceId
Description copied from interface:IPillarNodeGets theidof thePillarEventNode.attachedres, returnsnullif noresourcehas been attached.- Specified by:
getAttachedResourceIdin interfaceIPillarNode- Returns:
- the id of the attached resource
-
getFlavour
Description copied from interface:IOptimizationElementGets the flavour which spells out the kind ofNodeof the element.- Specified by:
getFlavourin interfaceIOptimizationElement- Overrides:
getFlavourin classTimeWindowGeoNode- Returns:
- the flavour
-
isPillarNode
public boolean isPillarNode()Description copied from interface:INodeChecks if the node is aisPillarNode.PillarNodeswill only be served if theResourcearrives on time. If theResourceis arriving too late thePillarNodewill be skipped.- Specified by:
isPillarNodein interfaceINode- Overrides:
isPillarNodein classTimeWindowGeoNode- Returns:
- the boolean
isPillarNode
-
isResourceAttached
public boolean isResourceAttached()Description copied from interface:IPillarNodeChecks the state ofattachedres.- Specified by:
isResourceAttachedin interfaceIPillarNode- Returns:
- true if an attachedResource has already ben set
-
equals
- Overrides:
equalsin classAbstractNode
-
hashCode
public int hashCode()- Overrides:
hashCodein classAbstractNode
-
setIsForcedStayNode
public void setIsForcedStayNode(boolean isForcedStayNode) Description copied from interface:IPillarTimeWindowGeoNodeSetsisForcedStayNodeandAbstractNode.isStayNodeto the input value.- Specified by:
setIsForcedStayNodein interfaceIPillarTimeWindowGeoNode- Parameters:
isForcedStayNode- the boolean to be set
-
isForcedStayNode
public boolean isForcedStayNode()Description copied from interface:IPillarTimeWindowGeoNodeChecksisForcedStayNode.- Specified by:
isForcedStayNodein interfaceIPillarTimeWindowGeoNode- Returns:
- the value of isForcedStayNode
-
isOnlyScheduledInCompany
public boolean isOnlyScheduledInCompany()Description copied from interface:IPillarNodeSomePillarsthat are scheduled are not actually jobs. Setting this totruethesePillarsonly need to be visited if they occur on a day thatwork Nodesare scheduled. The default value isfalse.- Specified by:
isOnlyScheduledInCompanyin interfaceIPillarNode- Returns:
- whether the
Nodeis only scheduled in company
-
setIsOnlyScheduledInCompany
public void setIsOnlyScheduledInCompany(boolean isOnlyScheduledInCompany) Description copied from interface:IPillarNodeSets thePillaronly to be visited of otherwork Nodesare scheduled that day. The default value isfalse.- Specified by:
setIsOnlyScheduledInCompanyin interfaceIPillarNode- Parameters:
isOnlyScheduledInCompany- the boolean whether theNodeis only scheduled in company
-
setIsSchedulableOutsideWorkingHours
public void setIsSchedulableOutsideWorkingHours(boolean isSchedulableOutsideWorkingsHoursStart, boolean isSchedulableOutsideWorkingsHoursEnd) Description copied from interface:IPillarNodeSets thePillarthat it has to be visited by aResourceoutside of herWorkingHoursifIResource.setMaxPillarAfterHoursTime(Duration)is also set totrue.- Specified by:
setIsSchedulableOutsideWorkingHoursin interfaceIPillarNode- Parameters:
isSchedulableOutsideWorkingsHoursStart- the boolean if working is possible before workingHoursisSchedulableOutsideWorkingsHoursEnd- the boolean if working is possible after workingHours
-
isSchedulableBeforeWorkingHours
public boolean isSchedulableBeforeWorkingHours()Description copied from interface:IPillarNodeChecksisSchedulableOutsideWorkingsHoursStart. The default value isfalse.- Specified by:
isSchedulableBeforeWorkingHoursin interfaceIPillarNode- Returns:
- whether working is possible before workingHours
-
isSchedulableAfterWorkingHours
public boolean isSchedulableAfterWorkingHours()Description copied from interface:IPillarNodeChecksisSchedulableOutsideWorkingsHoursEnd. The default value isfalse.- Specified by:
isSchedulableAfterWorkingHoursin interfaceIPillarNode- Returns:
- whether working is possible after workingHours
-
setIsOverwritingRouteStart
public void setIsOverwritingRouteStart(boolean isOverwritingRouteStart, boolean isAdjustable) Description copied from interface:IPillarTimeWindowGeoNodeOverwrites 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.- Specified by:
setIsOverwritingRouteStartin interfaceIPillarTimeWindowGeoNode- Parameters:
isOverwritingRouteStart- the boolean, iftrueturning thePillarin anAnchorNodeisAdjustable- the boolean allowing theAnchorNodeto be shifted slightly
-
setIsOverwritingRouteTermination
public void setIsOverwritingRouteTermination(boolean isOverwritingRouteTermination, boolean isAdjustable) Description copied from interface:IPillarNodeSets thePillarto beanAnchorPillarat which theRoutehas to start or end. Thebooleandefines whether thePillarcan still be moved.- Specified by:
setIsOverwritingRouteTerminationin interfaceIPillarNode- Parameters:
isOverwritingRouteTermination- the boolean whether it is overwriting route terminationisAdjustable- the boolean whether it is adjustable
-
isAutoFilterProtected
public boolean isAutoFilterProtected()Description copied from interface:INodeChecks if theNodeis protected from being filtered.- Specified by:
isAutoFilterProtectedin interfaceINode- Overrides:
isAutoFilterProtectedin classAbstractNode- Returns:
trueif the condition allows
-
isOverwritingRouteStartOrTermination
public boolean isOverwritingRouteStartOrTermination()Description copied from interface:IPillarNodeChecks if thePillaris anAnchorPillarin which case theRoutehas to start or and at saidAnchorPillar. The default values arefalse- Specified by:
isOverwritingRouteStartOrTerminationin interfaceIPillarNode- Returns:
- the states if either the route start or the route termination is overwritten
-
isAutoTransformable2StartAnchor
public boolean isAutoTransformable2StartAnchor()Description copied from interface:IPillarTimeWindowGeoNodeChecks if thisPillarwill automatically transform into ananchorNodeif it is the firstPillarand cannot be reached in time..- Specified by:
isAutoTransformable2StartAnchorin interfaceIPillarTimeWindowGeoNode- Returns:
- true if it can transform into an
anchorNode
-
setAutoTransformable2StartAnchor
public void setAutoTransformable2StartAnchor(boolean isAutoTransformable2StartAnchor) Description copied from interface:IPillarTimeWindowGeoNodeWhen thisPillaris the first pillar and cannot be reached in time, it will automatically transform into ananchorNodeif set totrue.- Specified by:
setAutoTransformable2StartAnchorin interfaceIPillarTimeWindowGeoNode- Parameters:
isAutoTransformable2StartAnchor- the boolean, might transform into ananchorNodeiftrue
-
setConnectionRelatedLateMargin
public boolean setConnectionRelatedLateMargin(double connectionFator, Duration maxMargin, boolean shiftNode, boolean applyPartial) Description copied from interface:IPillarTimeWindowGeoNodeSets 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.- Specified by:
setConnectionRelatedLateMarginin interfaceIPillarTimeWindowGeoNode- Parameters:
connectionFator- the connectionFactormaxMargin- the max marginshiftNode- the shift elementapplyPartial- the apply partial- Returns:
- true, if successful
-
resetConnectionRelatedMargin
public void resetConnectionRelatedMargin()- Specified by:
resetConnectionRelatedMarginin interfaceIPillarTimeWindowGeoNode
-
getConnectionRelatedLateMargin
Description copied from interface:IPillarTimeWindowGeoNodeGets the connection related late margin.- Specified by:
getConnectionRelatedLateMarginin interfaceIPillarTimeWindowGeoNode- Parameters:
connectionMillis- the connection millis- Returns:
- the connection related late margin
-
isDoElementShiftConnectionRelatedLateMargin
public boolean isDoElementShiftConnectionRelatedLateMargin()Description copied from interface:IPillarTimeWindowGeoNodeChecks if is do element shift connection related late margin.- Specified by:
isDoElementShiftConnectionRelatedLateMarginin interfaceIPillarTimeWindowGeoNode- Returns:
- true, if is do element shift connection related late margin
-
isApplyPartialConnectionRelatedLateMargin
public boolean isApplyPartialConnectionRelatedLateMargin()Description copied from interface:IPillarTimeWindowGeoNodeChecks if is apply partial connection related late margin.- Specified by:
isApplyPartialConnectionRelatedLateMarginin interfaceIPillarTimeWindowGeoNode- Returns:
- true, if is apply partial connection related late margin
-
getConnectionRelatedMaxLateMargin
Description copied from interface:IPillarTimeWindowGeoNodeGets the connection related max late margin.- Specified by:
getConnectionRelatedMaxLateMarginin interfaceIPillarTimeWindowGeoNode- Returns:
- the connection related max late margin
-
getConnectionRelatedMarginFactor
public double getConnectionRelatedMarginFactor()Description copied from interface:IPillarTimeWindowGeoNodeGets the connection related margin factor.- Specified by:
getConnectionRelatedMarginFactorin interfaceIPillarTimeWindowGeoNode- Returns:
- the connection related margin factor
-