21 package org.matsim.core.mobsim.qsim.agents;
23 import java.util.ArrayList;
24 import java.util.List;
26 import org.apache.logging.log4j.LogManager;
27 import org.apache.logging.log4j.Logger;
80 return ((PlanAgent)agent).getCurrentPlan().getPlanElements().indexOf( ((PlanAgent)agent).
getCurrentPlanElement() ) ;
82 throw new RuntimeException(
"Sorry, agent is from type " + agent.getClass().toString() +
83 " which does not support getCurrentPlanElementIndex(...). Aborting!");
97 return ((HasModifiablePlan) agent).getCurrentLinkIndex();
120 throw new RuntimeException(
"Sorry, agent is from type " + agent.getClass().toString() +
121 " which does not support getCurrentRouteLinkIdIndex(...). Aborting!");
136 ((HasModifiablePlan) agent).resetCaches();
138 throw new RuntimeException(
"Sorry, agent is from type " + agent.getClass().toString() +
139 " which does not support resetCaches(...). Aborting!");
144 ((ActivityEndRescheduler) mobsim).rescheduleActivityEnd(agent);
146 throw new RuntimeException(
"mobsim does not support activity end rescheduling; aborting ...") ;
152 if (!(currentPlanElement instanceof
Leg)) {
155 return (Leg) currentPlanElement;
160 return ((HasModifiablePlan) agent).getModifiablePlan();
162 throw new RuntimeException(
"Sorry, agent is from type " + agent.getClass().toString() +
163 " which does not support getModifiablePlan(...). Aborting!");
177 log.info(
"agent not on leg; returning ... ") ;
181 log.info(
"not a car leg; can only replan car legs; returning ... ") ;
193 System.err.println(
"plan=" + plan );
195 System.err.println(
"\t" + ii +
":\t" + plan.
getPlanElements().get(ii) );
209 if (plan == null)
return false;
210 if (oldLeg == null)
return false;
211 if (newLeg == null)
return false;
218 if (index == -1)
return false;
235 if (plan == null)
return false;
236 if (oldActivity == null)
return false;
237 if (newActivity == null)
return false;
244 if (index == -1)
return false;
266 return planElements.indexOf(pe) ;
276 if ( ((Activity)pe).getType().equals(type) ) {
294 List<PlanElement> updatedElements =
new ArrayList<>(elements.size());
296 for (
int i = 0; i < elements.size(); i++) {
303 updatedElements.add(element);
306 return updatedElements;
static Integer getCurrentRouteLinkIdIndex(MobsimAgent agent)
static boolean replaceActivityBlindly(Plan plan, Activity oldActivity, Activity newActivity)
static Plan printPlan(MobsimAgent agent1)
static boolean replaceLegBlindly(Plan plan, Leg oldLeg, Leg newLeg)
static Plan printPlan(Plan plan)
static Integer getCurrentPlanElementIndex(MobsimAgent agent)
static Activity convertInteractionToStandardActivity(Activity activity)
static PlanElement getCurrentPlanElement(MobsimAgent agent)
static int indexOfNextActivityWithType(MobsimAgent agent, String type)
static List< PlanElement > convertInteractionActivities(List<? extends PlanElement > elements)
static List< PlanElement > subList(MobsimAgent agent, int fromIndex, int toIndex)
List< PlanElement > getPlanElements()
static void rescheduleActivityEnd(MobsimAgent agent, Mobsim mobsim)
static void resetCaches(MobsimAgent agent)
static Activity findNextActivityWithType(MobsimAgent agent, String type)
static boolean isOnReplannableCarLeg(MobsimAgent agent)
static Leg getModifiableCurrentLeg(MobsimAgent agent)
static int indexOfPlanElement(MobsimAgent agent, PlanElement pe)
static Plan getModifiablePlan(MobsimAgent agent)