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
ConstructorDescriptionPillarTimeWindowGeoNode
(String nodeId, double latitude, double longitude, IOpeningHours openingHour) The constructor for thePillarTimeWindowGeoNode
, which is aTimeWindowGeoNode
that 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 aTimeWindowGeoNode
that 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 aTimeWindowGeoNode
that 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 TypeMethodDescriptionvoid
addConstraint
(IConstraint constraint) Adds aconstraint
which limits theResources
that can serve thisNode
to those that have the specificQualification
to do so.void
attachResource
(IResource mandatoryVisitor) Attaching themandatoryVisitor
as the visitingresource
will be treated as ahard constraint
if amandatoryVisitor
was set using this method.void
Removes allIConstraint
.void
detachResourceConstraints
(String resId) boolean
Gets theid
of thePillarEventNode.attachedres
, returnsnull
if noresource
has been attached.getConnectionRelatedLateMargin
(long connectionMillis) Gets the connection related late margin.double
Gets the connection related margin factor.Gets the connection related max late margin.Gets the flavour which spells out the kind ofNode
of the element.boolean
Gets the last known as route start.boolean
int
hashCode()
boolean
Checks if is apply partial connection related late margin.boolean
Checks if theNode
is protected from being filtered.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
ChecksisForcedStayNode
.boolean
SomePillars
that are scheduled are not actually jobs.boolean
boolean
Checks if thePillar
is anAnchorPillar
in which case theRoute
has to start or and at saidAnchorPillar
.boolean
Checks if theILogicEntityRoute
has to end at thisAnchorNode
.boolean
Checks if the node is aisPillarNode
.boolean
Checks the state ofattachedres
.boolean
ChecksisSchedulableOutsideWorkingsHoursEnd
.boolean
ChecksisSchedulableOutsideWorkingsHoursStart
.boolean
ChecksisTimeAdjustableAnchor
.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 connectionFator, Duration maxMargin, boolean shiftNode, boolean applyPartial) Sets the connection related late margin.void
setIsForcedStayNode
(boolean isForcedStayNode) SetsisForcedStayNode
andAbstractNode.isStayNode
to the input value.void
setIsOnlyScheduledInCompany
(boolean isOnlyScheduledInCompany) Sets thePillar
only to be visited of otherwork Nodes
are scheduled that day.void
setIsOverwritingRouteStart
(boolean isOverwritingRouteStart, boolean isAdjustable) void
setIsOverwritingRouteTermination
(boolean isOverwritingRouteTermination, boolean isAdjustable) Sets thePillar
to beanAnchorPillar
at which theRoute
has to start or end.void
setIsSchedulableOutsideWorkingHours
(boolean isSchedulableOutsideWorkingsHoursStart, boolean isSchedulableOutsideWorkingsHoursEnd) Sets thePillar
that it has to be visited by aResource
outside of herWorkingHours
ifIResource.setMaxPillarAfterHoursTime(Duration)
is also set totrue
.Methods inherited from class com.dna.jopt.member.unit.node.geo.TimeWindowGeoNode
hasRealGeoLocation
Methods 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, isOptimizable, isOptional, 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, setNodeId, setOptimizable, setOptimizable, setUnassigned, setUnloadAll, setUnloadAllDimension, setVisitDuration, setVisitDurationMillis, setWaitOnEarlyArrival, setWaitOnEarlyArrivalFirstNode, tempIncreaseImplausibleScore, tempSetActiveDutyHours, 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, setPosition
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods 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, isOptimizable, isOptional, 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, 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 aTimeWindowGeoNode
that if not reached in time, will be skipped entirely. If avisit duration
is 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 aTimeWindowGeoNode
that if not reached in time, will be skipped entirely. If the work at thePillarTimeWindowGeoNode
has 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 aTimeWindowGeoNode
that 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
. IfisDutyHoursIncludeVisitDuration
is 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:IPillarNode
ChecksisTimeAdjustableAnchor
. If yes, then thePillar
is allowed to change time a bit if theRoute
start is moving as well. The default value isfalse
.- Specified by:
isTimeAdjustableAnchor
in interfaceIPillarNode
- Returns:
- the state of isTimeAdjustableAnchor
-
isOverwritingRouteStart
public boolean isOverwritingRouteStart()Description copied from interface:IPillarTimeWindowGeoNode
- Specified by:
isOverwritingRouteStart
in interfaceIPillarTimeWindowGeoNode
- Returns:
- if the node is overwriting the route start
-
isOverwritingRouteTermination
public boolean isOverwritingRouteTermination()Description copied from interface:IPillarTimeWindowGeoNode
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
- Specified by:
isOverwritingRouteTermination
in interfaceIPillarTimeWindowGeoNode
- Returns:
- whether the node is overwriting route termination
-
attachResource
Description copied from interface:IPillarNode
Attaching themandatoryVisitor
as the visitingresource
will be treated as ahard constraint
if amandatoryVisitor
was set using this method.Throws an
IllegalStateException
if amandatoryVisitor
has already been attached- Specified by:
attachResource
in interfaceIPillarNode
- Parameters:
mandatoryVisitor
- the Resource to attach to the Pillarnode
-
detachResourceConstraints
public void detachResourceConstraints()Description copied from interface:INode
Removes allIConstraint
. This method is used internally.- Specified by:
detachResourceConstraints
in interfaceINode
- Overrides:
detachResourceConstraints
in classAbstractNode
-
getLastKnownAsRouteStart
public boolean getLastKnownAsRouteStart()Description copied from interface:IPillarTimeWindowGeoNode
Gets the last known as route start.- Specified by:
getLastKnownAsRouteStart
in interfaceIPillarTimeWindowGeoNode
- Returns:
- the last known as route start
-
getLastKnownAsRouteTermination
public boolean getLastKnownAsRouteTermination()- Specified by:
getLastKnownAsRouteTermination
in interfaceIPillarNode
-
detachResourceConstraints
Description copied from interface:INode
Removes theIResource
with the givenresId
from theIConstraint
that areIConstraintResource
. This method is used internally.- Specified by:
detachResourceConstraints
in interfaceINode
- Overrides:
detachResourceConstraints
in classAbstractNode
- Parameters:
resId
- the string Resource /D
-
addConstraint
Description copied from interface:INode
Adds aconstraint
which limits theResources
that can serve thisNode
to those that have the specificQualification
to do so.For further explanations and implementation examples please see
TypeConstraint
andTypeQualification
.- Specified by:
addConstraint
in interfaceINode
- Overrides:
addConstraint
in classAbstractNode
- Parameters:
constraint
- theIconstraint
to be added
-
getAttachedResourceId
Description copied from interface:IPillarNode
Gets theid
of thePillarEventNode.attachedres
, returnsnull
if noresource
has been attached.- Specified by:
getAttachedResourceId
in interfaceIPillarNode
- Returns:
- the id of the attached resource
-
getFlavour
Description copied from interface:IOptimizationElement
Gets the flavour which spells out the kind ofNode
of the element.- Specified by:
getFlavour
in interfaceIOptimizationElement
- Overrides:
getFlavour
in classTimeWindowGeoNode
- Returns:
- the flavour
-
isPillarNode
public boolean isPillarNode()Description copied from interface:INode
Checks if the node is aisPillarNode
.PillarNodes
will only be served if theResource
arrives on time. If theResource
is arriving too late thePillarNode
will be skipped.- Specified by:
isPillarNode
in interfaceINode
- Overrides:
isPillarNode
in classTimeWindowGeoNode
- Returns:
- the boolean
isPillarNode
-
isResourceAttached
public boolean isResourceAttached()Description copied from interface:IPillarNode
Checks the state ofattachedres
.- Specified by:
isResourceAttached
in interfaceIPillarNode
- Returns:
- true if an attachedResource has already ben set
-
equals
- Overrides:
equals
in classAbstractNode
-
hashCode
public int hashCode()- Overrides:
hashCode
in classAbstractNode
-
setIsForcedStayNode
public void setIsForcedStayNode(boolean isForcedStayNode) Description copied from interface:IPillarTimeWindowGeoNode
SetsisForcedStayNode
andAbstractNode.isStayNode
to the input value.- Specified by:
setIsForcedStayNode
in interfaceIPillarTimeWindowGeoNode
- Parameters:
isForcedStayNode
- the boolean to be set
-
isForcedStayNode
public boolean isForcedStayNode()Description copied from interface:IPillarTimeWindowGeoNode
ChecksisForcedStayNode
.- Specified by:
isForcedStayNode
in interfaceIPillarTimeWindowGeoNode
- Returns:
- the value of isForcedStayNode
-
isOnlyScheduledInCompany
public boolean isOnlyScheduledInCompany()Description copied from interface:IPillarNode
SomePillars
that are scheduled are not actually jobs. Setting this totrue
thesePillars
only need to be visited if they occur on a day thatwork Nodes
are scheduled. The default value isfalse
.- Specified by:
isOnlyScheduledInCompany
in interfaceIPillarNode
- Returns:
- whether the
Node
is only scheduled in company
-
setIsOnlyScheduledInCompany
public void setIsOnlyScheduledInCompany(boolean isOnlyScheduledInCompany) Description copied from interface:IPillarNode
Sets thePillar
only to be visited of otherwork Nodes
are scheduled that day. The default value isfalse
.- Specified by:
setIsOnlyScheduledInCompany
in interfaceIPillarNode
- Parameters:
isOnlyScheduledInCompany
- the boolean whether theNode
is only scheduled in company
-
setIsSchedulableOutsideWorkingHours
public void setIsSchedulableOutsideWorkingHours(boolean isSchedulableOutsideWorkingsHoursStart, boolean isSchedulableOutsideWorkingsHoursEnd) Description copied from interface:IPillarNode
Sets thePillar
that it has to be visited by aResource
outside of herWorkingHours
ifIResource.setMaxPillarAfterHoursTime(Duration)
is also set totrue
.- Specified by:
setIsSchedulableOutsideWorkingHours
in 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:IPillarNode
ChecksisSchedulableOutsideWorkingsHoursStart
. The default value isfalse
.- Specified by:
isSchedulableBeforeWorkingHours
in interfaceIPillarNode
- Returns:
- whether working is possible before workingHours
-
isSchedulableAfterWorkingHours
public boolean isSchedulableAfterWorkingHours()Description copied from interface:IPillarNode
ChecksisSchedulableOutsideWorkingsHoursEnd
. The default value isfalse
.- Specified by:
isSchedulableAfterWorkingHours
in interfaceIPillarNode
- Returns:
- whether working is possible after workingHours
-
setIsOverwritingRouteStart
public void setIsOverwritingRouteStart(boolean isOverwritingRouteStart, boolean isAdjustable) Description copied from interface:IPillarTimeWindowGeoNode
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
.- Specified by:
setIsOverwritingRouteStart
in interfaceIPillarTimeWindowGeoNode
- Parameters:
isOverwritingRouteStart
- the boolean, iftrue
turning thePillar
in anAnchorNode
isAdjustable
- the boolean allowing theAnchorNode
to be shifted slightly
-
setIsOverwritingRouteTermination
public void setIsOverwritingRouteTermination(boolean isOverwritingRouteTermination, boolean isAdjustable) Description copied from interface:IPillarNode
Sets thePillar
to beanAnchorPillar
at which theRoute
has to start or end. Theboolean
defines whether thePillar
can still be moved.- Specified by:
setIsOverwritingRouteTermination
in 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:INode
Checks if theNode
is protected from being filtered.- Specified by:
isAutoFilterProtected
in interfaceINode
- Overrides:
isAutoFilterProtected
in classAbstractNode
- Returns:
true
if the condition allows
-
isOverwritingRouteStartOrTermination
public boolean isOverwritingRouteStartOrTermination()Description copied from interface:IPillarNode
Checks if thePillar
is anAnchorPillar
in which case theRoute
has to start or and at saidAnchorPillar
. The default values arefalse
- Specified by:
isOverwritingRouteStartOrTermination
in interfaceIPillarNode
- Returns:
- the states if either the route start or the route termination is overwritten
-
isAutoTransformable2StartAnchor
public boolean isAutoTransformable2StartAnchor()Description copied from interface:IPillarTimeWindowGeoNode
Checks if thisPillar
will automatically transform into ananchorNode
if it is the firstPillar
and cannot be reached in time..- Specified by:
isAutoTransformable2StartAnchor
in interfaceIPillarTimeWindowGeoNode
- Returns:
- true if it can transform into an
anchorNode
-
setAutoTransformable2StartAnchor
public void setAutoTransformable2StartAnchor(boolean isAutoTransformable2StartAnchor) Description copied from interface:IPillarTimeWindowGeoNode
When thisPillar
is the first pillar and cannot be reached in time, it will automatically transform into ananchorNode
if set totrue
.- Specified by:
setAutoTransformable2StartAnchor
in interfaceIPillarTimeWindowGeoNode
- Parameters:
isAutoTransformable2StartAnchor
- the boolean, might transform into ananchorNode
iftrue
-
setConnectionRelatedLateMargin
public boolean setConnectionRelatedLateMargin(double connectionFator, Duration maxMargin, boolean shiftNode, boolean applyPartial) Description copied from interface:IPillarTimeWindowGeoNode
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.- Specified by:
setConnectionRelatedLateMargin
in interfaceIPillarTimeWindowGeoNode
- Parameters:
connectionFator
- the connectionFactormaxMargin
- the max marginshiftNode
- the shift elementapplyPartial
- the apply partial- Returns:
- true, if successful
-
resetConnectionRelatedMargin
public void resetConnectionRelatedMargin()- Specified by:
resetConnectionRelatedMargin
in interfaceIPillarTimeWindowGeoNode
-
getConnectionRelatedLateMargin
Description copied from interface:IPillarTimeWindowGeoNode
Gets the connection related late margin.- Specified by:
getConnectionRelatedLateMargin
in interfaceIPillarTimeWindowGeoNode
- Parameters:
connectionMillis
- the connection millis- Returns:
- the connection related late margin
-
isDoElementShiftConnectionRelatedLateMargin
public boolean isDoElementShiftConnectionRelatedLateMargin()Description copied from interface:IPillarTimeWindowGeoNode
Checks if is do element shift connection related late margin.- Specified by:
isDoElementShiftConnectionRelatedLateMargin
in interfaceIPillarTimeWindowGeoNode
- Returns:
- true, if is do element shift connection related late margin
-
isApplyPartialConnectionRelatedLateMargin
public boolean isApplyPartialConnectionRelatedLateMargin()Description copied from interface:IPillarTimeWindowGeoNode
Checks if is apply partial connection related late margin.- Specified by:
isApplyPartialConnectionRelatedLateMargin
in interfaceIPillarTimeWindowGeoNode
- Returns:
- true, if is apply partial connection related late margin
-
getConnectionRelatedMaxLateMargin
Description copied from interface:IPillarTimeWindowGeoNode
Gets the connection related max late margin.- Specified by:
getConnectionRelatedMaxLateMargin
in interfaceIPillarTimeWindowGeoNode
- Returns:
- the connection related max late margin
-
getConnectionRelatedMarginFactor
public double getConnectionRelatedMarginFactor()Description copied from interface:IPillarTimeWindowGeoNode
Gets the connection related margin factor.- Specified by:
getConnectionRelatedMarginFactor
in interfaceIPillarTimeWindowGeoNode
- Returns:
- the connection related margin factor
-