MATSIM
PersonDriverAgentImpl.java
Go to the documentation of this file.
1 /* *********************************************************************** *
2  * project: org.matsim.*
3  * PersonAgent.java
4  * *
5  * *********************************************************************** *
6  * *
7  * copyright : (C) 2008 by the members listed in the COPYING, *
8  * LICENSE and WARRANTY file. *
9  * email : info at matsim dot org *
10  * *
11  * *********************************************************************** *
12  * *
13  * This program is free software; you can redistribute it and/or modify *
14  * it under the terms of the GNU General Public License as published by *
15  * the Free Software Foundation; either version 2 of the License, or *
16  * (at your option) any later version. *
17  * See also COPYING, LICENSE and WARRANTY file *
18  * *
19  * *********************************************************************** */
20 
21 package org.matsim.core.mobsim.qsim.agents;
22 
23 import org.apache.logging.log4j.LogManager;
24 import org.apache.logging.log4j.Logger;
25 import org.matsim.api.core.v01.Id;
40 import org.matsim.vehicles.Vehicle;
41 
48  // yy cannot make this final since it is overridden at 65 locations
49  // (but since all methods are final, it seems that all of these could be solved by delegation).
50  // kai, nov'14
51 
52  private static final Logger log = LogManager.getLogger(PersonDriverAgentImpl.class);
53 
56 
57  public PersonDriverAgentImpl(final Plan plan1, final Netsim simulation, final TimeInterpretation timeInterpretation) {
58  basicAgentDelegate = new BasicPlanAgentImpl(plan1, simulation.getScenario(), simulation.getEventsManager(),
59  simulation.getSimTimer(), timeInterpretation ) ;
60  driverAgentDelegate = new PlanBasedDriverAgentImpl(basicAgentDelegate) ;
61 
62  // deliberately does NOT keep a back pointer to the whole Netsim; this should also be removed in the constructor call.
63  }
64 
65  @Override
66  public final void endLegAndComputeNextState(double now) {
67  basicAgentDelegate.endLegAndComputeNextState(now);
68  }
69 
70  @Override
71  public final void setStateToAbort(double now) {
72  basicAgentDelegate.setStateToAbort(now);
73  }
74 
75  @Override
76  public final void notifyArrivalOnLinkByNonNetworkMode(Id<Link> linkId) {
77  basicAgentDelegate.notifyArrivalOnLinkByNonNetworkMode(linkId);
78  }
79 
80  @Override
81  public final void endActivityAndComputeNextState(double now) {
82  basicAgentDelegate.endActivityAndComputeNextState(now);
83  }
84 
85  @Override
87  return basicAgentDelegate.getPlannedVehicleId();
88  }
89 
90  @Override
91  public final String getMode() {
92  return basicAgentDelegate.getMode();
93  }
94 
95  @Override
97  return basicAgentDelegate.getExpectedTravelTime();
98  }
99 
100  @Override
101  public final Double getExpectedTravelDistance() {
102  return basicAgentDelegate.getExpectedTravelDistance();
103  }
104 
105  @Override
106  public String toString() {
107  return basicAgentDelegate.toString();
108  }
109 
110  @Override
112  return basicAgentDelegate.getCurrentPlanElement();
113  }
114 
115  @Override
117  return basicAgentDelegate.getNextPlanElement();
118  }
119 
120  @Override
121  public final Plan getCurrentPlan() {
122  return basicAgentDelegate.getCurrentPlan();
123  }
124 
125  @Override
126  public final Id<Person> getId() {
127  return basicAgentDelegate.getId();
128  }
129 
130  @Override
131  public final Person getPerson() {
132  return basicAgentDelegate.getPerson();
133  }
134 
135  @Override
136  public final MobsimVehicle getVehicle() {
137  return basicAgentDelegate.getVehicle();
138  }
139 
140  @Override
141  public final void setVehicle(MobsimVehicle vehicle) {
142  basicAgentDelegate.setVehicle(vehicle);
143  }
144 
145  @Override
146  public final Id<Link> getCurrentLinkId() {
147  return basicAgentDelegate.getCurrentLinkId();
148  }
149 
150  @Override
152  return basicAgentDelegate.getDestinationLinkId();
153  }
154 
155  @Override
156  public final double getActivityEndTime() {
157  return basicAgentDelegate.getActivityEndTime();
158  }
159 
160  @Override
161  public final State getState() {
162  return basicAgentDelegate.getState();
163  }
164 
165  @Override
166  public final void notifyMoveOverNode(Id<Link> newLinkId) {
167  driverAgentDelegate.notifyMoveOverNode(newLinkId);
168  }
169 
170  @Override
171  public final Id<Link> chooseNextLinkId() {
172  return driverAgentDelegate.chooseNextLinkId();
173  }
174 
175  @Override
176  public final boolean isWantingToArriveOnCurrentLink() {
177  return driverAgentDelegate.isWantingToArriveOnCurrentLink();
178  }
179 
180  final Leg getCurrentLeg() {
181  return basicAgentDelegate.getCurrentLeg() ;
182  }
183  @Override
184  public final int getCurrentLinkIndex() {
185  return basicAgentDelegate.getCurrentLinkIndex() ;
186  }
187  final int getCurrentPlanElementIndex() {
188  return basicAgentDelegate.getCurrentPlanElementIndex() ;
189  }
190  @Override
191  public final Plan getModifiablePlan() {
192  return basicAgentDelegate.getModifiablePlan() ;
193  }
194 // final void calculateAndSetDepartureTime( Activity act ) {
195 // basicAgentDelegate.calculateAndSetDepartureTime(act);
196 // }
197  @Override public final void resetCaches() {
198  basicAgentDelegate.resetCaches();
199  driverAgentDelegate.resetCaches();
200  }
201 
202  @Override
204  return this.basicAgentDelegate.getCurrentFacility();
205  }
206 
207  @Override
209  return this.basicAgentDelegate.getDestinationFacility();
210  }
211 
212  @Override
214  return this.basicAgentDelegate.getPreviousPlanElement();
215  }
216 
217 }
PersonDriverAgentImpl(final Plan plan1, final Netsim simulation, final TimeInterpretation timeInterpretation)
final void notifyArrivalOnLinkByNonNetworkMode(final Id< Link > linkId)