mirror of
https://github.com/graphhopper/jsprit.git
synced 2020-01-24 07:45:05 +01:00
added problem states
This commit is contained in:
parent
959b467ac7
commit
2f636fc07b
1 changed files with 32 additions and 2 deletions
|
|
@ -74,12 +74,24 @@ public class StateManager implements RouteAndActivityStateGetter, IterationStart
|
|||
return null;
|
||||
}
|
||||
|
||||
public boolean containsKey(StateId stateId){
|
||||
return states.containsKey(stateId);
|
||||
}
|
||||
|
||||
public void clear(){
|
||||
states.clear();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private Map<VehicleRoute,States_> vehicleRouteStates_ = new HashMap<VehicleRoute, States_>();
|
||||
|
||||
private Map<TourActivity,States_> activityStates_ = new HashMap<TourActivity, States_>();
|
||||
|
||||
private States_ problemStates_ = new States_();
|
||||
|
||||
private States_ defaultProblemStates_ = new States_();
|
||||
|
||||
private RouteActivityVisitor routeActivityVisitor = new RouteActivityVisitor();
|
||||
|
||||
private ReverseRouteActivityVisitor revRouteActivityVisitor = new ReverseRouteActivityVisitor();
|
||||
|
|
@ -115,8 +127,6 @@ public class StateManager implements RouteAndActivityStateGetter, IterationStart
|
|||
|
||||
private void addDefaultStates() {
|
||||
defaultActivityStates_.put(StateFactory.LOAD, Capacity.Builder.newInstance().build());
|
||||
|
||||
|
||||
defaultActivityStates_.put(StateFactory.COSTS, 0.);
|
||||
defaultActivityStates_.put(StateFactory.DURATION, 0.);
|
||||
defaultActivityStates_.put(StateFactory.FUTURE_MAXLOAD, Capacity.Builder.newInstance().build());
|
||||
|
|
@ -141,6 +151,25 @@ public class StateManager implements RouteAndActivityStateGetter, IterationStart
|
|||
addDefaultStates();
|
||||
}
|
||||
|
||||
public <T> void putDefaultProblemState(StateId stateId, Class<T> type, T defaultState){
|
||||
defaultProblemStates_.putState(stateId, type, defaultState);
|
||||
}
|
||||
|
||||
public <T> void putProblemState(StateId stateId, Class<T> type, T state){
|
||||
problemStates_.putState(stateId, type, state);
|
||||
}
|
||||
|
||||
public <T> T getProblemState(StateId stateId, Class<T> type){
|
||||
if(!problemStates_.containsKey(stateId)){
|
||||
return getDefaultProblemState(stateId, type);
|
||||
}
|
||||
return problemStates_.getState(stateId, type);
|
||||
}
|
||||
|
||||
<T> T getDefaultProblemState(StateId stateId, Class<T> type){
|
||||
return defaultProblemStates_.getState(stateId, type);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated use the generic methode <code>addDefaultRouteState(StateId stateId, Class<T> type, T defaultState)</code> instead.
|
||||
* @param stateId
|
||||
|
|
@ -196,6 +225,7 @@ public class StateManager implements RouteAndActivityStateGetter, IterationStart
|
|||
public void clear(){
|
||||
vehicleRouteStates_.clear();
|
||||
activityStates_.clear();
|
||||
problemStates_.clear();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue