package org.nuclet.nummernkreise.rule; import org.nuclos.api.rule.InsertRule; import org.nuclos.api.context.InsertContext; import org.nuclos.api.annotation.Rule; import org.nuclos.api.businessobject.BusinessObject; import org.nuclos.api.businessobject.facade.Modifiable; import org.nuclos.api.exception.BusinessException; import org.nuclos.api.provider.BusinessObjectProvider; import org.nuclos.api.provider.QueryProvider; import org.nuclet.nummernkreise.logic.NummernkreiseLogik; import org.nuclet.businessentity.Kunde; import org.nuclet.businessentity.Artikel; import org.nuclet.businessentity.Auftrag; import org.nuclet.businessentity.Bestellung; import org.nuclet.businessentity.Lieferant; import org.nuclet.businessentity.Lieferschein; import org.nuclet.businessentity.Rechnung; @Rule(name="GeneriereNummer", description="Generiert fortlaufende Nummern") public class GeneriereNummer implements InsertRule { public void insert(InsertContext context) throws BusinessException { // Nummerngenerierung nur für verschiedene Entitäten): final Modifiable businessObject = context.getBusinessObject(Modifiable.class); if (businessObject instanceof Auftrag) { ((Auftrag)businessObject).setNummer(NummernkreiseLogik.getNextValue(Auftrag.class)); } else if (businessObject instanceof Bestellung) { ((Bestellung)businessObject).setNummer(NummernkreiseLogik.getNextValue(Bestellung.class)); } else if (businessObject instanceof Lieferschein) { ((Lieferschein)businessObject).setNummer(NummernkreiseLogik.getNextValue(Lieferschein.class)); } else if (businessObject instanceof Kunde) { ((Lieferschein)businessObject).setNummer(NummernkreiseLogik.getNextValue(Kunde.class)); } else if (businessObject instanceof Artikel) { ((Lieferschein)businessObject).setNummer(NummernkreiseLogik.getNextValue(Artikel.class)); } else if (businessObject instanceof Lieferant { ((Lieferschein)businessObject).setNummer(NummernkreiseLogik.getNextValue(Lieferant.class)); } else if (businessObject instanceof Rechnung) { ((Lieferschein)businessObject).setNummer(NummernkreiseLogik.getNextValue(Rechnung.class)); } } }