19 package org.matsim.core.replanning;
21 import org.apache.logging.log4j.LogManager;
22 import org.apache.logging.log4j.Logger;
30 import java.util.ArrayList;
31 import java.util.List;
41 private final List<GenericPlanStrategyModule<T>>
modules =
new ArrayList<>();
42 private final List<T>
plans =
new ArrayList<>();
56 if (this.firstModule == null) {
57 this.firstModule = module;
59 this.modules.add(module);
64 if (this.firstModule == null) {
67 return this.modules.size() + 1;
87 log.error( planSelector+
" returned no plan: not changing selected plan for person "+person );
91 if (this.firstModule != null) {
97 if (plan instanceof
Plan && ((
Plan) plan).getId() != null) {
104 this.plans.add(plan);
114 this.replanningContext = replanningContext0;
115 if (this.firstModule != null) {
122 if (this.firstModule != null) {
127 module.prepareReplanning(replanningContext);
128 for (T plan : this.plans) {
129 module.handlePlan(plan);
131 module.finishReplanning();
135 log.info(
"Plan-Strategy finished, " + this.counter +
" plans handled. Strategy: " + this.
toString());
141 StringBuilder name =
new StringBuilder(20);
142 name.append(this.planSelector.getClass().getSimpleName());
143 if (this.firstModule != null) {
145 name.append(this.firstModule.getClass().getSimpleName());
146 for (Object module : this.modules) {
148 name.append(module.getClass().getSimpleName());
151 return name.toString();
ReplanningContext replanningContext
final List< GenericPlanStrategyModule< T > > modules
void init(ReplanningContext replanningContext0)
PlanSelector< T, I > planSelector
T selectPlan(HasPlansAndId< T, I > member)
PlanSelector< T, I > getPlanSelector()
void addStrategyModule(final GenericPlanStrategyModule< T > module)
GenericPlanStrategyImpl(final PlanSelector< T, I > planSelector)
void run(final HasPlansAndId< T, I > person)
GenericPlanStrategyModule< T > firstModule
abstract void setSelectedPlan(T selectedPlan)
abstract T createCopyOfSelectedPlanAndMakeSelected()
void prepareReplanning(ReplanningContext replanningContext)
int getNumberOfStrategyModules()