mil.af.afit.uvr
Interface HOrder


public interface HOrder

Use this interface in your objects that represent orders, customers, etc. Orders are not cloned during the solve process, so the orders you pass into HEngine are the same ones that come out.

Since:
1.0
See Also:
HEngine

Method Summary
 int getAmountNeeded()
          The positive amount of product neeeded by the order.
 double getEarliestArrivalTime()
          The earliest time that an order may be serviced.
 double getEarliestRestrictedTime()
          The earliest time when a vehicle may not service an order.
 double getLatestDepartureTime()
          The latest time that a vehicle may remain at an order servicing it.
 double getLatestRestrictedTime()
          The latest time when a vehicle may not service an order.
 int getPriority()
          The order priority.
 

Method Detail

getPriority

public int getPriority()
The order priority. "Higher" priorities are lower numbers; thus priority 1 is a higher priority than priority 2.
Returns:
priority

getEarliestArrivalTime

public double getEarliestArrivalTime()
The earliest time that an order may be serviced. A vehicle that arrives early will wait until this time to begin servicing.
Returns:
earliest arrival time

getLatestDepartureTime

public double getLatestDepartureTime()
The latest time that a vehicle may remain at an order servicing it. If a vehicle begins servicing an order it will continue servicing it even if it busts this time window.
Returns:
latest departure time

getEarliestRestrictedTime

public double getEarliestRestrictedTime()
The earliest time when a vehicle may not service an order. This is a "time wall." If you are not using time walls, use the following.

 public final double getEarliestRestrictedTime()
 {    return -Double.MAX_VALUE;
 }    // end getEarliestRestrictedTime
 
Returns:
earliest restricted time

getLatestRestrictedTime

public double getLatestRestrictedTime()
The latest time when a vehicle may not service an order. This is a "time wall." If you are not using time walls, use the following.

 public final double getLatestRestrictedTime()
 {    return -Double.MAX_VALUE;
 }    // end getEarliestRestrictedTime
 
Returns:
latest restricted time

getAmountNeeded

public int getAmountNeeded()
The positive amount of product neeeded by the order. If you are not using amounts, do not return zero. Return one or more.
Returns:
amount needed