MATSIM
PersonVehiclesAttributeConverter.java
Go to the documentation of this file.
1 package org.matsim.utils.objectattributes.attributeconverters;
2 
3 import org.apache.logging.log4j.LogManager;
4 import org.apache.logging.log4j.Logger;
5 import org.matsim.api.core.v01.Id;
9 
10 import java.util.HashMap;
11 import java.util.Map;
12 
13 public class PersonVehiclesAttributeConverter implements AttributeConverter<PersonVehicles> {
14 
15  private final Logger logger = LogManager.getLogger(PersonVehiclesAttributeConverter.class);
16 
17  @Override
18  public PersonVehicles convert(String value) {
19  PersonVehicles vehicles = new PersonVehicles();
20  Map<String, String> stringMap = new StringStringMapConverter().convert(value);
21  for (Map.Entry<String, String> entry: stringMap.entrySet()) {
22  vehicles.addModeVehicle(entry.getKey(), Id.createVehicleId(entry.getValue()));
23  }
24  return vehicles;
25  }
26 
27  @Override
28  public String convertToString(Object o) {
29  if(!(o instanceof PersonVehicles vehicles)){
30  logger.error("Object is not of type PersonVehicles: " + o.getClass());
31  return null;
32  }
33  Map<String, String> stringMap = new HashMap<>();
34  for (Map.Entry<String, Id<Vehicle>> entry: vehicles.getModeVehicles().entrySet()) {
35  stringMap.put(entry.getKey(), entry.getValue().toString());
36  }
37  return new StringStringMapConverter().convertToString(stringMap);
38  }
39 }
static Id< Vehicle > createVehicleId(final long key)
Definition: Id.java:220
void addModeVehicle(String mode, Id< Vehicle > vehicle)