MATSIM
LeaveLinkIdentifier.java
Go to the documentation of this file.
1 /* *********************************************************************** *
2  * project: org.matsim.*
3  * ActivityEndIdentifier.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.withinday.replanning.identifiers;
22 
23 import java.util.Map;
24 import java.util.Set;
25 import java.util.TreeSet;
26 
27 import org.matsim.api.core.v01.Id;
33 
35 
38 
39  // use the Factory!
40  /*package*/ LeaveLinkIdentifier(LinkReplanningMap linkReplanningMap, MobsimDataProvider mobsimDataProvider) {
41  this.linkReplanningMap = linkReplanningMap;
42  this.mobsimDataProvider = mobsimDataProvider;
43  }
44 
45  @Override
46  public Set<MobsimAgent> getAgentsToReplan(double time) {
47  Map<Id<Person>, MobsimAgent> mapping = this.mobsimDataProvider.getAgents();
48  Set<MobsimAgent> agentsToReplan = new TreeSet<MobsimAgent>(new ById());
49 
50  /*
51  * Identify those leg performing agents that should be replanned.
52  * Add them to a set of MobsimAgents.
53  */
54  for (Id<Person> agentId : this.linkReplanningMap.getReplanningAgents(time)) {
55  if (this.applyFilters(agentId, time)) agentsToReplan.add(mapping.get(agentId));
56  }
57 
58  return agentsToReplan;
59  }
60 
61 }
final Map< Id< Person >, MobsimAgent > getAgents()
final void applyFilters(Set< Id< Person >> set, double time)