public class PillarEventNode extends EventNode implements IPillarEventNode
EventNode
that is also a Pillar
. PillarEventNodes
cannot be attended outside of their OpeningHours
, they will be unassigned in case they cannot
be visited in time.IOptimizationElement.OptimizationElementFlavour
dutyHours
Constructor and Description |
---|
PillarEventNode(String nodeId,
IDutyHours openingHour)
Deprecated.
|
PillarEventNode(String nodeId,
IOpeningHours openingHour)
A
PillarEventNodes does not have a location and cannot be attended outside of their
OpeningHours , it will be skipped instead. |
PillarEventNode(String nodeId,
IOpeningHours openingHour,
Duration visitDuration)
A
PillarEventNodes does not have a location and cannot be attended outside of their
OpeningHours , it will be skipped instead. |
PillarEventNode(String nodeId,
IOpeningHours openingHour,
Duration visitDuration,
boolean isDutyHoursIncludeVisitDuration)
A
PillarEventNodes does not have a location and has to be started within the
OpeningHours if isDutyHoursIncludeVisitDuration is false . |
Modifier and Type | Method and Description |
---|---|
void |
addConstraint(IConstraint constraint)
Adds a
constraint which limits the Resources that can serve
this Node to those that have the specific Qualification to do
so. |
void |
attachResource(IResource mandatoryVisitor)
Attaching the
mandatoryVisitor as the visiting resource will be treated as a hard constraint
if a mandatoryVisitor was set using this method. |
void |
detachResourceConstraints()
Removes all
IConstraint . |
void |
detachResourceConstraints(String resId)
|
boolean |
equals(Object obj) |
String |
getAttachedResourceId()
|
IOptimizationElement.OptimizationElementFlavour |
getFlavour()
Gets the flavour which spells out the kind of
Node of the element. |
boolean |
getLastKnownAsRouteTermination() |
int |
hashCode() |
boolean |
hasRealGeoLocation()
Gets whether this
Node has a location. |
boolean |
isAutoFilterProtected()
Checks if the
Node is protected from being filtered. |
boolean |
isOnlyScheduledInCompany()
Some
Pillars that are scheduled are not actually jobs. |
boolean |
isOverwritingRouteStartOrTermination()
Checks if the
Pillar is an AnchorPillar in which case the Route has to start or
and at said AnchorPillar . |
boolean |
isOverwritingRouteTermination()
Checks if it is an
AnchorPillar at which the Route has to start or end. |
boolean |
isPillarNode()
Checks, whether this
Node is a PillarNode . |
boolean |
isResourceAttached()
Checks the state of
PillarTimeWindowGeoNode.attachedres . |
boolean |
isSchedulableAfterWorkingHours()
|
boolean |
isSchedulableBeforeWorkingHours()
|
boolean |
isTimeAdjustableAnchor()
|
void |
setIsOnlyScheduledInCompany(boolean isOnlyScheduledInCompany)
Sets the
Pillar only to be visited of other work Nodes are scheduled that day. |
void |
setIsOverwritingRouteTermination(boolean isOverwritingRouteTermination,
boolean isAdjustable)
Sets the
Pillar to bean AnchorPillar at which the Route has to start or end. |
void |
setIsSchedulableOutsideWorkingHours(boolean isSchedulableOutsideWorkingsHoursStart,
boolean isSchedulableOutsideWorkingsHoursEnd)
Sets the
Pillar that it has to be visited by a Resource outside of her WorkingHours
if IResource.setMaxPillarAfterHoursTime(Duration) is also set to true . |
isPartialExchangeIdleForDrivingTime, setIsPartialExchangeIdleForDrivingTime
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
forceSetId, getDistMatrixId, getExtraInfo, getId, getLatitude, getLocationId, getLongitude, getNodeConnection, getNodeConnectionKeySet, getNodeConnections, getPosition, getPreferredHoursInteractionController, putNodeConnection, putNodeConnectionFromElement, removeNodeConnection, setDistMatrixId, setDutyHours, setExtraInfo, setId, setLatitude, setLocationId, setLongitude, setPosition
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
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
forceSetId, getDistMatrixId, getDutyHours, getExtraInfo, getId, getLatitude, getLocationId, getLongitude, getNodeConnection, getNodeConnectionKeySet, getNodeConnections, getPosition, getPreferredHoursInteractionController, putNodeConnection, putNodeConnectionFromElement, removeNodeConnection, setDistMatrixId, setDutyHours, setExtraInfo, setId, setLatitude, setLocationId, setLongitude, setPosition
@Deprecated public PillarEventNode(String nodeId, IDutyHours openingHour)
PillarEventNode(String, IOpeningHours)
, PillarEventNode(String, IOpeningHours, Duration)
or PillarEventNode(String, IOpeningHours, Duration, boolean)
insteadnodeId
- the string ID of the nodeopeningHour
- the iDutyhours when the Node can be given servicepublic PillarEventNode(String nodeId, IOpeningHours openingHour)
PillarEventNodes
does not have a location and cannot be attended outside of their
OpeningHours
, it will be skipped instead. The total OpeningHours
will be the Duration
of the Event
.
Implementation example
// Defining OpeningHours
IOpeningHours telCoTime = new OpeningHours(
ZonedDateTime.of(2020, MAY.getValue(), 6, 14, 0, 0, 0, ZoneId.of("Europe/Berlin")),
ZonedDateTime.of(2020, MAY.getValue(), 6, 16, 0, 0, 0, ZoneId.of("Europe/Berlin")));
// Defining Node
PillarEventNode telCoNoLateArrivals =
new PillarEventNode("TelCo no late arrivals", telCoTime);
nodeId
- the string ID of the nodeopeningHour
- the iOpeninghours of the PillarEventNodepublic PillarEventNode(String nodeId, IOpeningHours openingHour, Duration visitDuration)
PillarEventNodes
does not have a location and cannot be attended outside of their
OpeningHours
, it will be skipped instead. In this constructor the Event
is
placed within the OpeningHours
but not for the full Duration
.
Implementation example
// Defining OpeningHours
IOpeningHours telCoTime = new OpeningHours(
ZonedDateTime.of(2020, MAY.getValue(), 6, 13, 0, 0, 0, ZoneId.of("Europe/Berlin")),
ZonedDateTime.of(2020, MAY.getValue(), 6, 17, 0, 0, 0, ZoneId.of("Europe/Berlin")));
Duration durationOfTelCo = Duration.ofMinutes(120);
// Defining Node
PillarEventNode telCoNoLateArrivals =
new PillarEventNode("TelCo no late arrivals", telCoTime, durationOfTelCo);
nodeId
- the string ID of the nodeopeningHour
- the iOpeninghours of the PillarEventNodevisitDuration
- the duration of the eventpublic PillarEventNode(String nodeId, IOpeningHours openingHour, Duration visitDuration, boolean isDutyHoursIncludeVisitDuration)
PillarEventNodes
does not have a location and has to be started within the
OpeningHours
if isDutyHoursIncludeVisitDuration
is false
.
If isDutyHoursIncludeVisitDuration
is true
the visitDuration
has to
fit in the OpeningHours
, otherwise the PillarEventnode
will be skipped.
Implementation example
// Defining OpeningHours
IOpeningHours telCoTime = new OpeningHours(
ZonedDateTime.of(2020, MAY.getValue(), 6, 13, 0, 0, 0, ZoneId.of("Europe/Berlin")),
ZonedDateTime.of(2020, MAY.getValue(), 6, 14, 0, 0, 0, ZoneId.of("Europe/Berlin")));
Duration durationOfTelCo = Duration.ofMinutes(120);
// Defining Node
PillarEventNode telCoNoLateArrivals =
new PillarEventNode("TelCo no late arrivals", telCoTime, durationOfTelCo, false);
nodeId
- the string ID of the nodeopeningHour
- the iOpeningHoursvisitDuration
- the duration of the eventisDutyHoursIncludeVisitDuration
- the boolean whether the event has to be finished within the OpeningHours or notpublic void setIsOverwritingRouteTermination(boolean isOverwritingRouteTermination, boolean isAdjustable)
IPillarNode
Pillar
to bean AnchorPillar
at which the Route
has to start or end.
The boolean
defines whether the Pillar
can still be moved.setIsOverwritingRouteTermination
in interface IPillarNode
isOverwritingRouteTermination
- the boolean whether it is overwriting route terminationisAdjustable
- the boolean whether it is adjustablepublic boolean isTimeAdjustableAnchor()
IPillarNode
PillarTimeWindowGeoNode.isTimeAdjustableAnchor
. If yes, then the Pillar
is allowed
to change time a bit if the Route
start is moving as well. The default value is false
.isTimeAdjustableAnchor
in interface IPillarNode
public boolean isOverwritingRouteTermination()
IPillarNode
AnchorPillar
at which the Route
has to start or end.isOverwritingRouteTermination
in interface IPillarNode
public void attachResource(IResource mandatoryVisitor)
IPillarNode
mandatoryVisitor
as the visiting resource
will be treated as a hard constraint
if a mandatoryVisitor
was set using this method.
Throws an IllegalStateException
if a mandatoryVisitor
has already been attached
attachResource
in interface IPillarNode
mandatoryVisitor
- the Resource to attach to the Pillarnodepublic void detachResourceConstraints()
INode
IConstraint
. This method is used internally.detachResourceConstraints
in interface INode
detachResourceConstraints
in class AbstractNode
public void detachResourceConstraints(String resId)
INode
IResource
with the given resId
from the
IConstraint
that are IConstraintResource
. This method is used
internally.detachResourceConstraints
in interface INode
detachResourceConstraints
in class AbstractNode
resId
- the string Resource /Dpublic boolean getLastKnownAsRouteTermination()
getLastKnownAsRouteTermination
in interface IPillarNode
public boolean isAutoFilterProtected()
INode
Node
is protected from being filtered.isAutoFilterProtected
in interface INode
isAutoFilterProtected
in class AbstractNode
true
if the condition allowspublic void addConstraint(IConstraint constraint)
INode
constraint
which limits the Resources
that can serve
this Node
to those that have the specific Qualification
to do
so.
For further explanations and implementation examples please see
TypeConstraint
and
TypeQualification
.
addConstraint
in interface INode
addConstraint
in class AbstractNode
constraint
- the Iconstraint
to be addedpublic String getAttachedResourceId()
IPillarNode
getAttachedResourceId
in interface IPillarNode
public boolean isOnlyScheduledInCompany()
IPillarNode
Pillars
that are scheduled are not actually jobs. Setting this to true
these Pillars
only
need to be visited if they occur on a day that work Nodes
are scheduled.
The default value is false
.isOnlyScheduledInCompany
in interface IPillarNode
Node
is only scheduled in companypublic void setIsOnlyScheduledInCompany(boolean isOnlyScheduledInCompany)
IPillarNode
Pillar
only to be visited of other work Nodes
are scheduled that day.
The default value is false
.setIsOnlyScheduledInCompany
in interface IPillarNode
isOnlyScheduledInCompany
- the boolean whether the Node
is only scheduled in companypublic IOptimizationElement.OptimizationElementFlavour getFlavour()
IOptimizationElement
Node
of the element.getFlavour
in interface IOptimizationElement
getFlavour
in class EventNode
public boolean isPillarNode()
EventNode
Node
is a PillarNode
. Since this is an EventNode
the
response always is false
.isPillarNode
in interface INode
isPillarNode
in class EventNode
EventNode
IPillarEventNode
public boolean isResourceAttached()
IPillarNode
PillarTimeWindowGeoNode.attachedres
.isResourceAttached
in interface IPillarNode
public boolean equals(Object obj)
equals
in class AbstractNode
public int hashCode()
hashCode
in class AbstractNode
public void setIsSchedulableOutsideWorkingHours(boolean isSchedulableOutsideWorkingsHoursStart, boolean isSchedulableOutsideWorkingsHoursEnd)
IPillarNode
Pillar
that it has to be visited by a Resource
outside of her WorkingHours
if IResource.setMaxPillarAfterHoursTime(Duration)
is also set to true
.setIsSchedulableOutsideWorkingHours
in interface IPillarNode
isSchedulableOutsideWorkingsHoursStart
- the boolean if working is possible before workingHoursisSchedulableOutsideWorkingsHoursEnd
- the boolean if working is possible after workingHourspublic boolean isSchedulableBeforeWorkingHours()
IPillarNode
PillarTimeWindowGeoNode.isSchedulableOutsideWorkingsHoursStart
. The default value is false
.isSchedulableBeforeWorkingHours
in interface IPillarNode
public boolean isSchedulableAfterWorkingHours()
IPillarNode
PillarTimeWindowGeoNode.isSchedulableOutsideWorkingsHoursEnd
. The default value is false
.isSchedulableAfterWorkingHours
in interface IPillarNode
public boolean isOverwritingRouteStartOrTermination()
IPillarNode
Pillar
is an AnchorPillar
in which case the Route
has to start or
and at said AnchorPillar
.
The default values are false
isOverwritingRouteStartOrTermination
in interface IPillarNode
public boolean hasRealGeoLocation()
EventNode
Node
has a location. Since this is an Eventnode
the response always
is false
.hasRealGeoLocation
in interface IOptimizationElement
hasRealGeoLocation
in class EventNode
EventNode
Copyright © 2017–2023 DNA Evolutions GmbH. All rights reserved.