Interface IPillarNode

All Superinterfaces:
INode, IOptimizationElement, Serializable
All Known Subinterfaces:
IPillarEventNode, IPillarExtendableNode, IPillarTimeWindowGeoNode
All Known Implementing Classes:
PillarEventNode, PillarExtenbdableEventNode, PillarTimeWindowGeoNode

public interface IPillarNode extends INode
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
  • Method Details

    • attachResource

      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.

      Throws an IllegalStateException if a mandatoryVisitor 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 of PillarTimeWindowGeoNode.attachedres.
      Returns:
      true if an attachedResource has already ben set
    • getAttachedResourceId

      String getAttachedResourceId()
      Gets the id of the PillarEventNode.attachedres, returns null if no resource has been attached.
      Returns:
      the id of the attached resource
    • isOnlyScheduledInCompany

      boolean isOnlyScheduledInCompany()
      Some 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.
      Returns:
      whether the Node is only scheduled in company
    • setIsOnlyScheduledInCompany

      void setIsOnlyScheduledInCompany(boolean isOnlyScheduledInCompany)
      Sets the Pillar only to be visited of other work Nodes are scheduled that day. The default value is false.
      Parameters:
      isOnlyScheduledInCompany - the boolean whether the Node is only scheduled in company
    • setIsSchedulableOutsideWorkingHours

      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.
      Parameters:
      isSchedulableOutsideWorkingsHoursStart - the boolean if working is possible before workingHours
      isSchedulableOutsideWorkingsHoursEnd - the boolean if working is possible after workingHours
    • isSchedulableBeforeWorkingHours

      boolean isSchedulableBeforeWorkingHours()
      Checks PillarTimeWindowGeoNode.isSchedulableOutsideWorkingsHoursStart. The default value is false.
      Returns:
      whether working is possible before workingHours
    • isSchedulableAfterWorkingHours

      boolean isSchedulableAfterWorkingHours()
      Checks PillarTimeWindowGeoNode.isSchedulableOutsideWorkingsHoursEnd. The default value is false.
      Returns:
      whether working is possible after workingHours
    • isOverwritingRouteTermination

      boolean isOverwritingRouteTermination()
      Checks if it is an AnchorPillar at which the Route has to start or end.
      Returns:
      whether it is overwriting route termination
    • setIsOverwritingRouteTermination

      void setIsOverwritingRouteTermination(boolean isOverwritingRouteTermination, boolean isAdjustable)
      Sets the Pillar to bean AnchorPillar at which the Route has to start or end. The boolean defines whether the Pillar can still be moved.
      Parameters:
      isOverwritingRouteTermination - the boolean whether it is overwriting route termination
      isAdjustable - the boolean whether it is adjustable
    • isTimeAdjustableAnchor

      boolean isTimeAdjustableAnchor()
      Checks 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.
      Returns:
      the state of isTimeAdjustableAnchor
    • isOverwritingRouteStartOrTermination

      boolean isOverwritingRouteStartOrTermination()
      Checks if the Pillar is an AnchorPillar in which case the Route has to start or and at said AnchorPillar. The default values are false
      Returns:
      the states if either the route start or the route termination is overwritten
    • getLastKnownAsRouteTermination

      boolean getLastKnownAsRouteTermination()