Beispielfall 1: Nummernkreise
In einem Projekt gibt es mehrere BOs, die bei der Neuanlage eine automatische Nummer vom System vergeben bekommen.
Bei den betroffenen BOs handelt es sich um:
- Angebot
- Auftrag
- Lieferschein
- Bestellung
Die bisherige Implementierung wurde über Verwendung von instanceof gelöst (siehe Codeausschnitt rechts) und soll nun über ein Generisches BO abgelöst werden.
Bisherige Implementierung:
public void insert(InsertContext context) throws BusinessException { final Modifiable<?> businessObject = context.getBusinessObject(Modifiable.class); if (businessObject instanceof Angebot) { ((Angebot) businessObject).setAngebotsnr(NummernkreiseLogik.getNextValue(Angebot.class)); } else if (businessObject instanceof Auftrag) { ((Auftrag) businessObject).setAuftragsnr(NummernkreiseLogik.getNextValue(Auftrag.class)); } else if (businessObject instanceof Lieferschein) { ((Lieferschein) businessObject).setLieferscheinnr(NummernkreiseLogik.getNextValue(Lieferschein.class)); } else if (businessObject instanceof Bestellung) { ((Bestellung) businessObject).setBestellnr(NummernkreiseLogik.getNextValue(Bestellung.class)); } }
Zunächst wird ein neues generisches Businessobjekt namens 'Nummerierbar' erstellt.
Dieses BO erhält genau ein Attribut "Nummer".
Der Datentyp muss dem Datentyp des Feldes in den implentierenden BOs entsprechen !
Überblick
Inhalte