Class ResourceLocationConstraint

java.lang.Object
com.dna.jopt.member.unit.condition.resource.ResourceLocationConstraint
All Implemented Interfaces:
IConstraint, IResourceLevelConstraint, Serializable

public class ResourceLocationConstraint extends Object implements IResourceLevelConstraint
See Also:
  • Constructor Summary

    Constructors
    Constructor
    Description
     
    ResourceLocationConstraint(javax.measure.Quantity<javax.measure.quantity.Length> maxRadiusDistance)
     
    ResourceLocationConstraint(javax.measure.Quantity<javax.measure.quantity.Length> maxRadiusDistance, Duration maxRadiusTime)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    com.dna.jopt.assessment.costassessorrestriction.restrictionresult.IEntityRestrictionResult
    assessConstraint(IEntity en, ILogicEntityRoute route, INode node, com.dna.jopt.assessment.costadjustment.IEntityCostAdjuster costAdjuster, com.dna.jopt.assessment.costassessor.IEntityCostAssessor ca, com.dna.jopt.framework.inputplausibility.properties.IPropertyProvider propertyProvider, boolean resultRequested)
    Assesses the route, checking if the appropriate qualifications for the constraints are present.
    static com.dna.jopt.assessment.costassessorrestriction.restrictionresult.EntityRestrictionResult
    assessMaxRadius(ILogicEntityRoute route, IOptimizationElement node, IOptimizationElement anchorNode, double maxRadiusDistanceMeter, String distanceViolationPrefix, long maxRadiusTimeMillis, String timeViolationPrefix, com.dna.jopt.assessment.costadjustment.IEntityCostAdjuster costAdjuster, com.dna.jopt.assessment.costassessor.IEntityCostAssessor ca, com.dna.jopt.framework.inputplausibility.properties.IPropertyProvider propertyProvider, boolean resultRequested)
     
    Optional<javax.measure.Quantity<javax.measure.quantity.Length>>
     
     
    Gets the title of the constraint.
    boolean
     
    boolean
    Checks the parameter or directly returns true where this must be the case.
    boolean
    isSatisfied(com.dna.jopt.assessment.costassessor.IEntityCostAssessor ca, INode node, ILogicEntityRoute route)
    Filters out hard constraint mismatches by checking whether a Node demands a Qualification as a hard constraint but the Resource does not provide this one.
    void
    setIsHard(boolean isHard)
    Sets the constraint to hard if the respective parameter is given or returns an IllegalStateException if this is expected but not the case.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • ResourceLocationConstraint

      public ResourceLocationConstraint(javax.measure.Quantity<javax.measure.quantity.Length> maxRadiusDistance)
    • ResourceLocationConstraint

      public ResourceLocationConstraint(Duration maxRadiusTime)
    • ResourceLocationConstraint

      public ResourceLocationConstraint(javax.measure.Quantity<javax.measure.quantity.Length> maxRadiusDistance, Duration maxRadiusTime)
  • Method Details

    • getMaxRadiusDistance

      public Optional<javax.measure.Quantity<javax.measure.quantity.Length>> getMaxRadiusDistance()
    • getMaxRadiusTime

      public Optional<Duration> getMaxRadiusTime()
    • assessMaxRadius

      public static com.dna.jopt.assessment.costassessorrestriction.restrictionresult.EntityRestrictionResult assessMaxRadius(ILogicEntityRoute route, IOptimizationElement node, IOptimizationElement anchorNode, double maxRadiusDistanceMeter, String distanceViolationPrefix, long maxRadiusTimeMillis, String timeViolationPrefix, com.dna.jopt.assessment.costadjustment.IEntityCostAdjuster costAdjuster, com.dna.jopt.assessment.costassessor.IEntityCostAssessor ca, com.dna.jopt.framework.inputplausibility.properties.IPropertyProvider propertyProvider, boolean resultRequested)
    • assessConstraint

      public com.dna.jopt.assessment.costassessorrestriction.restrictionresult.IEntityRestrictionResult assessConstraint(IEntity en, ILogicEntityRoute route, INode node, com.dna.jopt.assessment.costadjustment.IEntityCostAdjuster costAdjuster, com.dna.jopt.assessment.costassessor.IEntityCostAssessor ca, com.dna.jopt.framework.inputplausibility.properties.IPropertyProvider propertyProvider, boolean resultRequested)
      Description copied from interface: IConstraint
      Assesses the route, checking if the appropriate qualifications for the constraints are present.

      The boolean true saves the data.

      Specified by:
      assessConstraint in interface IConstraint
      Parameters:
      en - entity
      route - the iLogicEntityRoute
      node - node
      costAdjuster - iEntityCostAdjuster
      ca - ca
      propertyProvider - iPropertyProvider
      resultRequested - the boolean whether to save the results of the route
      Returns:
      Entity Restriction Result
    • setIsHard

      public void setIsHard(boolean isHard)
      Description copied from interface: IConstraint
      Sets the constraint to hard if the respective parameter is given or returns an IllegalStateException if this is expected but not the case.
      Specified by:
      setIsHard in interface IConstraint
      Parameters:
      isHard - the boolean to be set
    • isHard

      public boolean isHard()
      Description copied from interface: IConstraint
      Checks the parameter or directly returns true where this must be the case.
      Specified by:
      isHard in interface IConstraint
      Returns:
      the value of the checked boolean
    • isSatisfied

      public boolean isSatisfied(com.dna.jopt.assessment.costassessor.IEntityCostAssessor ca, INode node, ILogicEntityRoute route)
      Description copied from interface: IConstraint
      Filters out hard constraint mismatches by checking whether a Node demands a Qualification as a hard constraint but the Resource does not provide this one. The idea is to have only soft constraints problems in the optimisation which can get solved by adding cost.
      Specified by:
      isSatisfied in interface IConstraint
      Parameters:
      ca - the iEntityCostAssessor
      node - the iNode
      route - the iLogicEntityRoute
      Returns:
      the boolean whether the route is satisfied. True means no problems detected
    • getTitle

      public String getTitle()
      Description copied from interface: IConstraint
      Gets the title of the constraint.
      Specified by:
      getTitle in interface IConstraint
      Returns:
      the title
    • hasMembers

      public boolean hasMembers()
      Specified by:
      hasMembers in interface IConstraint