Class 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 Schnittstelle ObjektFactory. Kann als Grundlage für eigene Implementierungen verwendet werden oder wenn nur eine Instanz (Singleton) benötigt wird.
    • Field Summary

      • Fields inherited from class de.bsvrz.sys.funclib.bitctrl.daf.DefaultDavProvider

        propertyChangeSupport
      • Fields inherited from interface de.bsvrz.sys.funclib.bitctrl.daf.DavProvider

        NUTZVERVERBINDUNG, PROP_DAV, PROP_NAME, PROP_VERBUNDEN, URLASSERVERBINDUNG
    • 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>
      T
      createDynamischesObjekt​(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
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface de.bsvrz.sys.funclib.bitctrl.daf.DavProvider

        addPropertyChangeListener, addPropertyChangeListener, getDav, getName, isVerbunden, removePropertyChangeListener, removePropertyChangeListener
    • Constructor Detail

      • DefaultObjektFactory

        protected DefaultObjektFactory​(java.lang.String name,
                                       de.bsvrz.dav.daf.main.ClientDavInterface dav)
        Klasse darf nicht direkt instanziiert werden, wegen dem Singleton-Entwurfsmuster.
        Parameters:
        name - der Name der Verbindung.
        dav - die Verbindung.
    • 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 interface ObjektFactory
        Overrides:
        setDav in class de.bsvrz.sys.funclib.bitctrl.daf.DefaultDavProvider
        Parameters:
        dav - die zu verwendende Verbindung.
      • setVerbunden

        protected void setVerbunden​(boolean verbunden)
        Overrides:
        setVerbunden in class de.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 interface ObjektFactory
        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 interface ObjektFactory
        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 generisches SystemObjekt zurückgegeben.
        Specified by:
        getModellobjekt in interface ObjektFactory
        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 interface ObjektFactory
        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 interface ObjektFactory
        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 interface ObjektFactory
        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 interface ObjektFactory
        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 interface ObjektFactory
        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.