package jhaushalt.service.factories.buchung;
import java.io.IOException;
import java.text.ParseException;
import jhaushalt.domain.Geldbetrag;
import jhaushalt.domain.buchung.Buchung;
import jhaushalt.domain.buchung.SplitBuchung;
import jhaushalt.domain.kategorie.EinzelKategorie;
import jhaushalt.domain.kategorie.MehrfachKategorie;
import jhaushalt.service.factories.CategoryFactory;
import jhaushalt.service.factories.DatumFactory;
import jhaushalt.service.factories.GeldbetragFactory;
import jhaushalt.service.factories.io.DataInputFacade;
public class SplitBuchungStrategy implements BuchungStrategy {
public Buchung loadData(DataInputFacade in) throws IOException, ParseException {
return laden(in);
}
private SplitBuchung laden(final DataInputFacade in) throws IOException, ParseException {
final SplitBuchung splitBuchung = new SplitBuchung();
splitBuchung.setDatum(DatumFactory.getInstance(in));
splitBuchung.setText(in.getDataString());
final int size = in.getInt();
MehrfachKategorie kategorien = new MehrfachKategorie(size); // this.splitKategorie = new MehrfachKategorie(size);
for (int i = 0; i < size; i++) {
final EinzelKategorie category = CategoryFactory.getInstance(in);
final Geldbetrag betrag = GeldbetragFactory.getInstance(in);
category.setWert(betrag);
kategorien.add(category);
}
splitBuchung.setSplitCategories(kategorien);
return splitBuchung;
}
}