20 package org.matsim.households;
24 import com.google.inject.Inject;
33 import org.xml.sax.Attributes;
41 private List<Id<Person>> currentmembers = null;
43 private Income currentincome = null;
49 private List<Id<Vehicle>> currentVehicleIds = null;
53 private String currentincomeCurrency;
59 private Household currentHousehold = null;
65 public AbstractHouseholdsReaderV10(
Households households) {
66 super(ValidationType.XSD_ONLY);
67 if (households == null) {
68 throw new IllegalArgumentException(
"Container for households must not be null!");
70 this.households = households;
84 public void endTag(String name, String content, Stack<String> context) {
88 this.currentHousehold = null;
92 this.currentincome = this.builder.
createIncome(Double.parseDouble(content.trim()), this.currentIncomePeriod);
93 this.currentincome.
setCurrency(this.currentincomeCurrency);
99 this.currAttributes = null;
102 this.attributesReader.
endTag( name , content , context );
106 private void fillHousehold() {
107 ((
HouseholdImpl) this.currentHousehold).setMemberIds(this.currentmembers);
108 ((
HouseholdImpl) this.currentHousehold).setVehicleIds(this.currentVehicleIds);
109 this.currentHousehold.
setIncome(this.currentincome);
110 this.currentHhId = null;
111 this.currentVehicleIds = null;
112 this.currentincome = null;
113 this.currentmembers = null;
114 this.currentIncomePeriod = null;
115 this.currentincomeCurrency = null;
123 this.currentHhId = null;
124 this.currentVehicleIds = null;
125 this.currentincome = null;
126 this.currentmembers = null;
127 this.currentIncomePeriod = null;
128 this.currentincomeCurrency = null;
136 public void startTag(String name,
Attributes atts, Stack<String> context) {
139 this.currentHousehold = this.builder.
createHousehold(this.currentHhId);
140 this.currentmembers =
new ArrayList<>();
141 this.currentVehicleIds =
new ArrayList<>();
148 this.currentmembers.add(personId);
159 this.currentVehicleIds.add(vehicleId);
164 attributesReader.
startTag( name , atts , context, currAttributes );
168 attributesReader.
startTag( name , atts , context, currAttributes );
191 throw new IllegalArgumentException(
"Not known income period!");
195 return this.households;
static final String PERIOD
Attributes getAttributes()
static final String MEMBERS
void setIncome(Income income)
static final String PERSONID
static final String REFID
static final String HOUSEHOLD
static final String ATTRIBUTE
Household createHousehold(Id< Household > householdId)
static final String ATTRIBUTES
HouseholdsFactory getFactory()
static< T > Id< T > create(final long key, final Class< T > type)
void setCurrency(String currency)
static final String VEHICLEDEFINITIONID
static final String INCOME
static final String CURRENCY
void endTag(String name, String content, Stack< String > context)
static final String HOUSEHOLDS
Income createIncome(double income, IncomePeriod period)
void putAttributeConverters(final Map< Class<?>, AttributeConverter<?>> converters)
AttributeConverter<?> putAttributeConverter(final Class<?> clazz, final AttributeConverter<?> converter)
static final String VEHICLES
void startTag(String name, org.xml.sax.Attributes atts, Stack< String > context, Attributes currentAttributes)