public interface ILogicEntityRoute extends Cloneable, Serializable
Route
IOptimizationElements
like the INodes
, the IResource
, getting the IDutyHours
and much more.
IEntityInvokedOperatorControllerListIterator<IOptimizationElement> getOptimizableElementIterator()
ListIterator
for the optimizable Elements
.ListIterator<IOptimizationElement> getNoneOptimizableElementIterator()
ListIterator
for the NoneOptimizableElements
.IOptimizationElement getRouteOptimizableElement(int index)
index
- the int indexList<IOptimizationElement> getRouteOptimizableElements()
Elements
void setRouteOptimizableElements(List<IOptimizationElement> elements)
IOptimizationElements
.This method should NOT used
directly only together with copy.elements
- the new route elementsIResource getCurrentVisitingResource()
IResource
that is visiting this Route
.IResource
int getCurrentVisitingResourceWorkingHoursIndex()
IOptimizationElement getRouteTermination()
IOptimizationElement
where the Route
will end.
If Route
termination has not been overwritten it will be at the location of the
IResource
or at an one night stay Node
. If Route termination
has been
overwritten it will be at the anchorNode
.
Element
where the Route
terminatesvoid setRouteTermination(IOptimizationElement terminationItem)
IOptimizationElement
where the Route
will end.terminationItem
- the iOptimizationElementIOptimizationElement getRouteStart()
IOptimizationElement
where the Route
starts.Route
void setRouteStart(IOptimizationElement startItem)
IOptimizationElement
where the route will start.startItem
- the iOptimizationElement where the route has to startlong getRouteStartTime()
Route
start time in milliseconds since 01.01.1970.Route
startvoid addOptimizableElement(IOptimizationElement element)
element
- iOptimizationElement to addvoid addOptimizableElement(IOptimizationElement element, int index)
IOptimizationElement removeOptimizableElement(IOptimizationElement element)
IOptimizationElement removeOptimizableElement(int index)
void setCurrentVisitingResource(IResource res, int workingHourIndex)
boolean removeAllFromOptimizableElements(List<IOptimizationElement> removeList)
ILogicRouteCostAndViolationController getRouteCostAndViolationController()
ILogicRouteElementDetailController getRouteElementsDetailController()
IJoinedRouteDetailController getJoinedDetailController()
int getRouteId()
int getRouteOptimizableElementCount()
boolean isUnassessed()
void setIsUnassessed(boolean isUnassessed)
List<IOptimizationElement> getOptimizableElementsSubList(int fromIndex, int toIndex)
boolean addAllToOptimizableElements(int index, List<IOptimizationElement> addList)
boolean addAllToOptimizableElements(List<IOptimizationElement> addList)
ILogicEntityRoute copy()
void setCurrentVisitingResourceWorkingHoursIndex(int index)
void setRouteId(int routeId)
void clearOptimizableElements()
void clearNoneOptimizableElements()
boolean isLastOptimizableElementInRoute(IOptimizationElement element)
boolean isFirstOptimizableElementInRoute(IOptimizationElement element)
void addRoutePillar(IPillarNode pillar)
boolean hasRoutePillars()
List<IPillarNode> getRoutePillars()
IDutyHours getRouteDutyHours()
LogicEntityRoute.currentRouteDutyHours
of this LogicEntityRoute
.LogicEntityRoute.currentRouteDutyHours
void initRouteWorkingHours()
void setRoutePillars(List<IPillarNode> pillars)
void setRequestElementDetails(boolean requestDetails)
result requested
resulting in the ILogicRouteElementDetailItem
being saved and being accessable afterwards. This will seen by
the cost assessor. After one request the ILogicEntityRoute
automatically is set back to
no request.requestDetails
- the boolean whether the ILogicRouteElementDetailItem
should be
savedboolean isRequestElementDetails()
boolean isFinalized()
List<IOptimizationElement> getRouteNoneOptimizableElements()
void setRouteNoneOptimizableElements(List<IOptimizationElement> elements)
boolean addAllToNoneOptimizableElements(List<IOptimizationElement> routeOptimizableElements)
void addRoutePillars(List<IPillarNode> pillars)
long getRouteStopTime()
IPillarNode removeRoutePillar(IPillarNode pillar)
long getEffectiveRouteStartTime()
long getEffectiveRouteStopTime()
double getMaxWorkingHours()
double getMaxDistanceKilometer()
void addRoutePillar(IPillarNode pillar, int index)
void setEffectivePillarLatestArrivalMap(Map<String,Long> effectivePillarLatestArrivalMap)
long getPillarLatestEffectiveArrival(IPillarNode p)
boolean isScheduled()
void setIsScheduled(boolean isScheduled)
void removeRoutePillars(List<IPillarNode> pillars)
void clearRoutePillars()
void setRouteCostAndViolationController(ILogicRouteCostAndViolationController controller)
void addOptionalOptimizableElement(IOptimizationElement optionalElement)
boolean hasSameElementsStructure(ILogicEntityRoute compareRoute)
void setRouteOptionalOptimizableElements(List<IOptimizationElement> elements)
List<IOptimizationElement> getRouteOptionalOptimizableElements()
boolean addAllToOptionalOptimizableElements(List<IOptimizationElement> addList)
boolean hasSameElementsStructureIgnorePillars(ILogicEntityRoute compareRoute, boolean doIgnorePillars)
IPillarNode removeRoutePillar(int index)
boolean isClosedRoute()
LogicEntityRoute.getCurrentWorkingHours()
is closed or not.false
. Returns true
if IWorkingHours.isClosedRoute()
has been set to true
by using IWorkingHours.setIsClosedRoute(boolean)
.void markAsToBeRemoved()
boolean isMarkedToBeRemoved()
long getRouteTimeMillis()
Optional<Long> getMaxRouteStartReductionTimeMillisPillar()
double getTotalRouteDistanceMeter()
Optional<Long> getMaxFreePostWorkDrivingTerminationTimeMillis()
boolean hasOverriddenRouteStart()
boolean hasOverriddenRouteTermination()
void initRouteWorkingHours(IDutyHours fakeHours)
long getPillarLatestEffectiveOffsetArrival(IPillarNode p)
long putEffectivePillarLatestArrivalOffset(IPillarNode p, Long valueMillis)
long getPillarEffectiveLatestArrivalMinusStartMillis(IPillarNode p)
long getPillarLatestEffectiveArrivalOffsetCorrected(IPillarNode p)
void setEffectivePillarLatestArrivalOffsetMap(Map<String,Long> effectivePillarLatestArrivalOffsetMap)
Map<String,Long> getEffectivePillarLatestArrivalOffsetMap()
void clearOptionalOptimizableElements()
Map<Class<? extends IQualification>,IQualification> getQualifications()
void addFlag(LogicEntityRouteFlag flag)
List<LogicEntityRouteFlag> getFlags()
void setFirstGeoElementWithinRoute(IOptimizationElement firstGeoLocationElementWithinRoute)
void setLastGeoElementWithinRoute(IOptimizationElement lastGeoLocationElementWithinRoute)
IOptimizationElement getFirstGeoElementWithinRoute()
IOptimizationElement getLastGeoElementWithinRoute()
List<IOptimizationElement> getAllElements()
void setIsInactive(boolean isInactive)
boolean isInactive()
void setIsLockedDown(boolean isLockedDown)
boolean isLockedDown()
ILoadController getLoadController()
void setLoadController(ILoadController copy)
Optional<IResourceDepot> getResourceDepot()
List<IOptimizationElement> getRouteOptimizableElementsIncludingSubsequentNodes()
boolean removeAllFromOptimizableElementsInlcudingSubsequentNodes(List<IOptimizationElement> removeList)
IClusterController getRouteClusterController()
void setRouteClusterController(IClusterController routeClusterController)
Optional<ReducedNodeEdgeConnectorItem> getConnectionHook(String toId)
Optional<Boolean> isOnlyApplyFreePostWorkDrivingOnOvertime()
Optional<IOptimizationElement> getElement(String id, boolean ignoreStartEnd)
boolean hasNode(String nodeId, boolean ignoreStartEnd)
Set<IOptimizationElement> getAllNodes()
Copyright © 2017–2023 DNA Evolutions GmbH. All rights reserved.