Interface IPillarTimeWindowGeoNode

All Superinterfaces:
INode, IOptimizationElement, IPillarNode, Serializable
All Known Implementing Classes:
PillarTimeWindowGeoNode

public interface IPillarTimeWindowGeoNode extends IPillarNode
This interface provides additional methods to the IPillarNode in order to allow setting the Pillar to a forcedStayNode or an anchorNode.
Since:
22/11/2018
Version:
14/02/2020
Author:
DNA
  • Method Details

    • setIsForcedStayNode

      void setIsForcedStayNode(boolean isForcedStayNode)
      Sets PillarTimeWindowGeoNode.isForcedStayNode and AbstractNode.isStayNode to the input value.
      Parameters:
      isForcedStayNode - the boolean to be set
    • isForcedStayNode

      boolean isForcedStayNode()
      Checks PillarTimeWindowGeoNode.isForcedStayNode.
      Returns:
      the value of isForcedStayNode
    • isOverwritingRouteStart

      boolean isOverwritingRouteStart()
      Checks if this IPillarNode overrides the Route start, turning it into an AnchorNode.
      Returns:
      if the node is overwriting the route start
    • isOverwritingRouteTermination

      boolean isOverwritingRouteTermination()
      Checks if the ILogicEntityRoute has to end at this AnchorNode.

      If a job has to be done at this AnchorPillar, then another Pillar has to be added again.

      Specified by:
      isOverwritingRouteTermination in interface IPillarNode
      Returns:
      whether the node is overwriting route termination
    • setIsOverwritingRouteStart

      void setIsOverwritingRouteStart(boolean isOverwritingRouteStart, boolean isAdjustable)
      Overwrites the Route start, forcing the IResource to visit this AnchorNode first. An AnchorNode essentially is an IPillarNode that is specifically set to start or end an ILogicEntityRoute. Any driving time or distance for the Resource between the AnchorNode 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 the Pillar can still be moved a bit, allowing the AnchorNode to be shifted towards the INode following it on the Route.

      Parameters:
      isOverwritingRouteStart - the boolean, if true turning the Pillar in an AnchorNode
      isAdjustable - the boolean allowing the AnchorNode to be shifted slightly
    • isAutoTransformable2StartAnchor

      boolean isAutoTransformable2StartAnchor()
      Checks if this Pillar will automatically transform into an anchorNode if it is the first Pillar and cannot be reached in time..
      Returns:
      true if it can transform into an anchorNode
    • setAutoTransformable2StartAnchor

      void setAutoTransformable2StartAnchor(boolean isAutoTransformable2StartAnchor)
      When this Pillar is the first pillar and cannot be reached in time, it will automatically transform into an anchorNode if set to true.
      Parameters:
      isAutoTransformable2StartAnchor - the boolean, might transform into an anchorNode if true
    • getLastKnownAsRouteStart

      boolean getLastKnownAsRouteStart()
      Gets the last known as route start.
      Returns:
      the last known as route start
    • setConnectionRelatedLateMargin

      boolean setConnectionRelatedLateMargin(double connectionFactor, Duration maxMargin, boolean shiftElement, boolean applyPartial)
      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.
      Parameters:
      connectionFactor - the connectionFactor
      maxMargin - the max margin
      shiftElement - the shift element
      applyPartial - the apply partial
      Returns:
      true, if successful
    • getConnectionRelatedLateMargin

      Optional<Long> getConnectionRelatedLateMargin(long connectionMillis)
      Gets the connection related late margin.
      Parameters:
      connectionMillis - the connection millis
      Returns:
      the connection related late margin
    • isDoElementShiftConnectionRelatedLateMargin

      boolean isDoElementShiftConnectionRelatedLateMargin()
      Checks if is do element shift connection related late margin.
      Returns:
      true, if is do element shift connection related late margin
    • isApplyPartialConnectionRelatedLateMargin

      boolean isApplyPartialConnectionRelatedLateMargin()
      Checks if is apply partial connection related late margin.
      Returns:
      true, if is apply partial connection related late margin
    • getConnectionRelatedMaxLateMargin

      Duration getConnectionRelatedMaxLateMargin()
      Gets the connection related max late margin.
      Returns:
      the connection related max late margin
    • getConnectionRelatedMarginFactor

      double getConnectionRelatedMarginFactor()
      Gets the connection related margin factor.
      Returns:
      the connection related margin factor
    • resetConnectionRelatedMargin

      void resetConnectionRelatedMargin()