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 TypeMethodDescriptionvoidattachResource(IResource mandatoryVisitor) Attaching themandatoryVisitoras the visitingresourcewill be treated as ahard constraintif amandatoryVisitorwas set using this method.Gets theidof thePillarEventNode.attachedres, returnsnullif noresourcehas been attached.booleanbooleanSomePillarsthat are scheduled are not actually jobs.booleanChecks if thePillaris anAnchorPillarin which case theRoutehas to start or and at saidAnchorPillar.booleanChecks if it is anAnchorPillarat which theRoutehas to start or end.booleanChecks the state ofPillarTimeWindowGeoNode.attachedres.booleanChecksPillarTimeWindowGeoNode.isSchedulableOutsideWorkingsHoursEnd.booleanChecksPillarTimeWindowGeoNode.isSchedulableOutsideWorkingsHoursStart.booleanChecksPillarTimeWindowGeoNode.isTimeAdjustableAnchor.voidsetIsOnlyScheduledInCompany(boolean isOnlyScheduledInCompany) Sets thePillaronly to be visited of otherwork Nodesare scheduled that day.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 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, setPosition
-
Method Details
-
attachResource
Attaching themandatoryVisitoras the visitingresourcewill be treated as ahard constraintif amandatoryVisitorwas set using this method.Throws an
IllegalStateExceptionif amandatoryVisitorhas 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 theidof thePillarEventNode.attachedres, returnsnullif noresourcehas been attached.- Returns:
- the id of the attached resource
-
isOnlyScheduledInCompany
boolean isOnlyScheduledInCompany()SomePillarsthat 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.- Returns:
- whether the
Nodeis only scheduled in company
-
setIsOnlyScheduledInCompany
void setIsOnlyScheduledInCompany(boolean isOnlyScheduledInCompany) Sets thePillaronly to be visited of otherwork Nodesare scheduled that day. The default value isfalse.- Parameters:
isOnlyScheduledInCompany- the boolean whether theNodeis only scheduled in company
-
setIsSchedulableOutsideWorkingHours
void setIsSchedulableOutsideWorkingHours(boolean isSchedulableOutsideWorkingsHoursStart, boolean isSchedulableOutsideWorkingsHoursEnd) Sets thePillarthat it has to be visited by aResourceoutside of herWorkingHoursifIResource.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 anAnchorPillarat which theRoutehas to start or end.- Returns:
- whether it is overwriting route termination
-
setIsOverwritingRouteTermination
void setIsOverwritingRouteTermination(boolean isOverwritingRouteTermination, boolean isAdjustable) Sets thePillarto beanAnchorPillarat which theRoutehas to start or end. Thebooleandefines whether thePillarcan 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 thePillaris allowed to change time a bit if theRoutestart is moving as well. The default value isfalse.- Returns:
- the state of isTimeAdjustableAnchor
-
isOverwritingRouteStartOrTermination
boolean isOverwritingRouteStartOrTermination()Checks if thePillaris anAnchorPillarin which case theRoutehas 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()
-