1
0
Fork 0
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:
oblonski 2014-03-26 07:08:20 +01:00
parent 959b467ac7
commit 2f636fc07b

View file

@ -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();
}
/**