Class DefaultObjektFactory
- java.lang.Object
-
- de.bsvrz.sys.funclib.bitctrl.daf.DefaultDavProvider
-
- de.bsvrz.sys.funclib.bitctrl.modell.DefaultObjektFactory
-
- All Implemented Interfaces:
de.bsvrz.dav.daf.main.DavConnectionListener
,de.bsvrz.sys.funclib.bitctrl.daf.DavProvider
,ObjektFactory
public class DefaultObjektFactory extends de.bsvrz.sys.funclib.bitctrl.daf.DefaultDavProvider implements ObjektFactory
Defaultimplmentierung der SchnittstelleObjektFactory
. Kann als Grundlage für eigene Implementierungen verwendet werden oder wenn nur eine Instanz (Singleton) benötigt wird.
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
DefaultObjektFactory(java.lang.String name, de.bsvrz.dav.daf.main.ClientDavInterface dav)
Klasse darf nicht direkt instanziiert werden, wegen dem Singleton-Entwurfsmuster.
-
Method Summary
Modifier and Type Method Description java.util.List<SystemObjekt>
bestimmeModellobjekte(java.lang.String... pids)
Bestimmt eine Liste der Modellobjekte zu vorgegebenen PIDs von Systemobjekten.<T extends DynamischesObjekt>
TcreateDynamischesObjekt(java.lang.Class<T> clazz, java.lang.String name, java.lang.String pid, KonfigurationsDatum... daten)
Erzeugt ein dynamisches Objekt.<T extends KonfigurationsDatum>
java.util.List<T>getDaten(java.util.List<? extends SystemObjekt> objekte, java.lang.Class<? extends KonfigurationsDatensatz<T>> datensatzTyp)
Ruft die konfigurierenden Daten mehrerer Objekte in einem Vorgang ab.static ObjektFactory
getInstanz()
Gibt eine DefaultFabrik als Singleton zurück.SystemObjekt
getModellobjekt(long id)
Sucht mit Hilfe der registrierten Fabriken nach einem Systemobjekt, dessen Id bekannt ist.SystemObjekt
getModellobjekt(de.bsvrz.dav.daf.main.config.SystemObject obj)
Versucht mit Hilfe der registrierten Fabriken ein Systemobjekt in ein Modellobjekt zu überführen.SystemObjekt
getModellobjekt(java.lang.String pid)
Bestimmt das Modellobjekt zu einer PID.java.util.Collection<SystemObjektTyp>
getTypen()
Sammelt alle erzeugbaren Objekttypen der registrierten Factories.void
invalidateDynamischesObjekt(DynamischesObjekt objekt)
Invalidiert ein dynamisches Objekt.void
setDav(de.bsvrz.dav.daf.main.ClientDavInterface dav)
Legt die zu verwendende Datenverteilerverbindung fest.protected void
setVerbunden(boolean verbunden)
-
Methods inherited from class de.bsvrz.sys.funclib.bitctrl.daf.DefaultDavProvider
addPropertyChangeListener, addPropertyChangeListener, connectionClosed, getDav, getName, init, isVerbunden, removePropertyChangeListener, removePropertyChangeListener, setName, toString
-
-
-
-
Method Detail
-
getInstanz
public static ObjektFactory getInstanz()
Gibt eine DefaultFabrik als Singleton zurück. Nützlich für Applikationen, die nur mit einer Verbindung umgehen müssen.- Returns:
- eine Singletonverbindung.
-
setDav
public void setDav(de.bsvrz.dav.daf.main.ClientDavInterface dav)
Description copied from interface:ObjektFactory
Legt die zu verwendende Datenverteilerverbindung fest.- Specified by:
setDav
in interfaceObjektFactory
- Overrides:
setDav
in classde.bsvrz.sys.funclib.bitctrl.daf.DefaultDavProvider
- Parameters:
dav
- die zu verwendende Verbindung.
-
setVerbunden
protected void setVerbunden(boolean verbunden)
- Overrides:
setVerbunden
in classde.bsvrz.sys.funclib.bitctrl.daf.DefaultDavProvider
-
getModellobjekt
public SystemObjekt getModellobjekt(java.lang.String pid)
Description copied from interface:ObjektFactory
Bestimmt das Modellobjekt zu einer PID.- Specified by:
getModellobjekt
in interfaceObjektFactory
- Parameters:
pid
- die PID des gesuchten Systemobjekts.- Returns:
- das Systemobjekt oder
null
, wenn keines existiert oder es nicht als Modellobjekt darstellbar ist.
-
getModellobjekt
public SystemObjekt getModellobjekt(long id)
Description copied from interface:ObjektFactory
Sucht mit Hilfe der registrierten Fabriken nach einem Systemobjekt, dessen Id bekannt ist.- Specified by:
getModellobjekt
in interfaceObjektFactory
- Parameters:
id
- die Id eines Systemobjekts.- Returns:
- das korrespondierende Modellobjekt oder
null
, wenn es keines mit der Id gibt.
-
getModellobjekt
public SystemObjekt getModellobjekt(de.bsvrz.dav.daf.main.config.SystemObject obj)
Description copied from interface:ObjektFactory
Versucht mit Hilfe der registrierten Fabriken ein Systemobjekt in ein Modellobjekt zu überführen. Gibt es mehrere Fabriken, die dazu in der Lage sind, wird die Fabrik benutzt, die zuerst registriert wurde. Existiert keine passende Fabrik, wird generischesSystemObjekt
zurückgegeben.- Specified by:
getModellobjekt
in interfaceObjektFactory
- Parameters:
obj
- Ein Systemobjekt- Returns:
- das korrespondierende Modellobjekt, niemals
null
.
-
bestimmeModellobjekte
public java.util.List<SystemObjekt> bestimmeModellobjekte(java.lang.String... pids)
Description copied from interface:ObjektFactory
Bestimmt eine Liste der Modellobjekte zu vorgegebenen PIDs von Systemobjekten. Ist eine PID ein Konfigurationsbereich, werden alle Objekte des Konfigurationsbereichs bestimmt. Ist eine PID ein Typ, werden alle Objekte des Typs bestimmt.Für einen Konfigurationsbereich werden die enthaltenen Typen nicht aufgelöst. Da laut Konvention Typen und Objekte nicht im selben Konfigurationsbereich angelegt werden sollen, ist dieses Verhalten angebracht. Ansonsten könnte man die definierten Typen eines Konfigurationsbereichs bestimmen.
- Specified by:
bestimmeModellobjekte
in interfaceObjektFactory
- Parameters:
pids
- PIDs der zu übersetzenden Systemobjekte- Returns:
- Tabelle von IDs und Modellobjekten
-
getTypen
public java.util.Collection<SystemObjektTyp> getTypen()
Description copied from interface:ObjektFactory
Sammelt alle erzeugbaren Objekttypen der registrierten Factories.- Specified by:
getTypen
in interfaceObjektFactory
- Returns:
- die Menge der erzeugbaren Objekttypen.
-
createDynamischesObjekt
public <T extends DynamischesObjekt> T createDynamischesObjekt(java.lang.Class<T> clazz, java.lang.String name, java.lang.String pid, KonfigurationsDatum... daten) throws de.bsvrz.sys.funclib.dynobj.DynObjektException
Description copied from interface:ObjektFactory
Erzeugt ein dynamisches Objekt.- Specified by:
createDynamischesObjekt
in interfaceObjektFactory
- Type Parameters:
T
- der Typ des zu erzeugenden Objekts.- Parameters:
clazz
- die Klasse des zu erzeugenden Objekts.name
- der Name des Objekts.pid
- die PID des Objekts.daten
- optionale Menge von Konfigurierenden Daten die initial am Objekt gesetzt werden sollen.- Returns:
- das angelegte Objekt.
- Throws:
de.bsvrz.sys.funclib.dynobj.DynObjektException
- wenn das Erzeugen schiefgegangen ist.
-
invalidateDynamischesObjekt
public void invalidateDynamischesObjekt(DynamischesObjekt objekt) throws de.bsvrz.sys.funclib.dynobj.DynObjektException
Description copied from interface:ObjektFactory
Invalidiert ein dynamisches Objekt.Das Invalidieren ist nicht gleichzusetzen mit dem Löschen eines Objekts. An dem betroffenen Objekt wird lediglich ein gelöscht-Flag gesetzt. Das Objekt wird nun von den normalen Operationen des Datenverteilers nicht mehr berührt. Das Objekt kann jedoch noch mit speziellen Methoden wiedergeholt werden, wobei nicht das Objekt wiederhergestellt wird, sondern hierbei wird lediglich das gelöscht -Flag ignoriert.
- Specified by:
invalidateDynamischesObjekt
in interfaceObjektFactory
- Parameters:
objekt
- das zu invalidierende Objekt.- Throws:
de.bsvrz.sys.funclib.dynobj.DynObjektException
- wenn das invalidieren schiefgegangen ist.
-
getDaten
public <T extends KonfigurationsDatum> java.util.List<T> getDaten(java.util.List<? extends SystemObjekt> objekte, java.lang.Class<? extends KonfigurationsDatensatz<T>> datensatzTyp)
Description copied from interface:ObjektFactory
Ruft die konfigurierenden Daten mehrerer Objekte in einem Vorgang ab. Werden die Daten sehr vieler Objekte benötigt, sollte diese Methode verwendet werden, anstatt jedes Datum einzeln abzurufen.- Specified by:
getDaten
in interfaceObjektFactory
- Type Parameters:
T
- der Typ der Daten.- Parameters:
objekte
- die Objekte für die die Daten abgerufen werden sollen.datensatzTyp
- der konfigurierende Datensatz der abgerufen werden soll.- Returns:
- die konfigurienden Daten in der selben Reihenfolge, wie die Objektliste.
-
-