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.buchung.StandardBuchung; import jhaushalt.domain.kategorie.EinzelKategorie; import jhaushalt.domain.zeitraum.Datum; import jhaushalt.service.factories.CategoryFactory; import jhaushalt.service.factories.DatumFactory; import jhaushalt.service.factories.GeldbetragFactory; import jhaushalt.service.factories.io.DataInputFacade; public class StandardOrSplitBuchungStrategy implements BuchungStrategy { public Buchung loadData(DataInputFacade in) throws IOException, ParseException { Buchung buchung = null; Datum datum = DatumFactory.getInstance(in); String text = in.getDataString(); int numberOfEntries = in.getInt(); if (numberOfEntries > 1) { SplitBuchung splitBuchung = new SplitBuchung(datum, text); for (int j = 0; j < numberOfEntries; j++) { final String kategorie = in.getDataString(); GeldbetragFactory.getInstance(in); // where to put it in? // buchung.add(db.findeOderErzeugeKategorie(kategorie), betrag); } // einsortierenBuchung(buchung); // db.buchungMerken(buchung); } else if (numberOfEntries == 1) { final EinzelKategorie kategorie = (EinzelKategorie) CategoryFactory.getInstance(in); Geldbetrag betrag = GeldbetragFactory.getInstance(in); // where to put it in? StandardBuchung standardBuchung = new StandardBuchung(datum, text, kategorie, betrag); // einsortierenBuchung(standardBuchung); // db.buchungMerken(standardBuchung); } else { // TODO nothing here? } return buchung; } }