Package com.dna.jopt.member.unit.node
Interface IPillarNode
- All Superinterfaces:
INode
,IOptimizationElement
,Serializable
- All Known Subinterfaces:
IPillarEventNode
,IPillarExtendableNode
,IPillarTimeWindowGeoNode
- All Known Implementing Classes:
PillarEventNode
,PillarExtenbdableEventNode
,PillarTimeWindowGeoNode
This interface provides methods necessary for
PillarNodes
. In contrary to a INode
IResource
are not allowed to be late at Pillars
. If a Pillar
can not be given service within the IOpeningHours
the Pillar
has to be skipped.- Since:
- 19/11/2018
- Version:
- 23/09/2019
- Author:
- DNA
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.dna.jopt.member.unit.IOptimizationElement
IOptimizationElement.OptimizationElementFlavour
-
Method Summary
Modifier and TypeMethodDescriptionvoid
attachResource
(IResource mandatoryVisitor) Attaching themandatoryVisitor
as the visitingresource
will be treated as ahard constraint
if amandatoryVisitor
was set using this method.Gets theid
of thePillarEventNode.attachedres
, returnsnull
if noresource
has been attached.boolean
boolean
SomePillars
that are scheduled are not actually jobs.boolean
Checks if thePillar
is anAnchorPillar
in which case theRoute
has to start or and at saidAnchorPillar
.boolean
Checks if it is anAnchorPillar
at which theRoute
has to start or end.boolean
Checks the state ofPillarTimeWindowGeoNode.attachedres
.boolean
ChecksPillarTimeWindowGeoNode.isSchedulableOutsideWorkingsHoursEnd
.boolean
ChecksPillarTimeWindowGeoNode.isSchedulableOutsideWorkingsHoursStart
.boolean
ChecksPillarTimeWindowGeoNode.isTimeAdjustableAnchor
.void
setIsOnlyScheduledInCompany
(boolean isOnlyScheduledInCompany) Sets thePillar
only to be visited of otherwork Nodes
are scheduled that day.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 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
-
Method Details
-
attachResource
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- Parameters:
mandatoryVisitor
- the Resource to attach to the Pillarnode- Throws:
IllegalStateException
- if a mandatoryVisitor has already been attached
-
isResourceAttached
boolean isResourceAttached()Checks the state ofPillarTimeWindowGeoNode.attachedres
.- Returns:
- true if an attachedResource has already ben set
-
getAttachedResourceId
String getAttachedResourceId()Gets theid
of thePillarEventNode.attachedres
, returnsnull
if noresource
has been attached.- Returns:
- the id of the attached resource
-
isOnlyScheduledInCompany
boolean isOnlyScheduledInCompany()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
.- Returns:
- whether the
Node
is only scheduled in company
-
setIsOnlyScheduledInCompany
void setIsOnlyScheduledInCompany(boolean isOnlyScheduledInCompany) Sets thePillar
only to be visited of otherwork Nodes
are scheduled that day. The default value isfalse
.- Parameters:
isOnlyScheduledInCompany
- the boolean whether theNode
is only scheduled in company
-
setIsSchedulableOutsideWorkingHours
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
.- Parameters:
isSchedulableOutsideWorkingsHoursStart
- the boolean if working is possible before workingHoursisSchedulableOutsideWorkingsHoursEnd
- the boolean if working is possible after workingHours
-
isSchedulableBeforeWorkingHours
boolean isSchedulableBeforeWorkingHours()ChecksPillarTimeWindowGeoNode.isSchedulableOutsideWorkingsHoursStart
. The default value isfalse
.- Returns:
- whether working is possible before workingHours
-
isSchedulableAfterWorkingHours
boolean isSchedulableAfterWorkingHours()ChecksPillarTimeWindowGeoNode.isSchedulableOutsideWorkingsHoursEnd
. The default value isfalse
.- Returns:
- whether working is possible after workingHours
-
isOverwritingRouteTermination
boolean isOverwritingRouteTermination()Checks if it is anAnchorPillar
at which theRoute
has to start or end.- Returns:
- whether it is overwriting route termination
-
setIsOverwritingRouteTermination
void setIsOverwritingRouteTermination(boolean isOverwritingRouteTermination, boolean isAdjustable) Sets thePillar
to beanAnchorPillar
at which theRoute
has to start or end. Theboolean
defines whether thePillar
can still be moved.- Parameters:
isOverwritingRouteTermination
- the boolean whether it is overwriting route terminationisAdjustable
- the boolean whether it is adjustable
-
isTimeAdjustableAnchor
boolean isTimeAdjustableAnchor()ChecksPillarTimeWindowGeoNode.isTimeAdjustableAnchor
. If yes, then thePillar
is allowed to change time a bit if theRoute
start is moving as well. The default value isfalse
.- Returns:
- the state of isTimeAdjustableAnchor
-
isOverwritingRouteStartOrTermination
boolean isOverwritingRouteStartOrTermination()Checks if thePillar
is anAnchorPillar
in which case theRoute
has to start or and at saidAnchorPillar
. The default values arefalse
- Returns:
- the states if either the route start or the route termination is overwritten
-
getLastKnownAsRouteTermination
boolean getLastKnownAsRouteTermination()
-