Class AenderbareMenge<E extends SystemObjekt>

  • Type Parameters:
    E - der Typ der Objekte in der Menge.
    All Implemented Interfaces:
    SystemObjekt, java.lang.Iterable<E>, java.util.Collection<E>

    public class AenderbareMenge<E extends SystemObjekt>
    extends java.util.AbstractCollection<E>
    implements SystemObjekt
    Wrapper für online änderbare Mengen im Datenverteiler.
    • Constructor Summary

      Constructors 
      Constructor Description
      AenderbareMenge​(ObjektFactory objektFactory, de.bsvrz.dav.daf.main.config.MutableSet mutableSet, int minAnzahl, int maxAnzahl, SystemObjekt systemObjekt)
      Initialisiert den Wrapper.
    • Method Summary

      Modifier and Type Method Description
      boolean add​(E e)  
      void addMengenListener​(MengenListener l)
      Registriert einen Listener für Änderungen an dieser Menge.
      void cleanUp()
      Entfernt alle invalidierten Objekte aus der Menge.
      protected void fireMengeAktualisiert​(java.util.Collection<E> hinzugefuegt, java.util.Collection<E> entfernt)
      Informiert die angemeldeten Listener über eine Änderung an dieser Menge.
      long getId()
      Gibt die ID des Systemobjekts zurück.
      SystemObjektBereich getKonfigurationsBereich()
      Wird nicht unterstützt und wirft immer eine UnsupportedOperationException.
      int getMaxAnzahl()
      Gibt die maximal erlaubte Anzahl von Objekten in der Menge zurück.
      int getMinAnzahl()
      Gibt die minimal erlaubte Anzahl von Objekten in der Menge zurück.
      de.bsvrz.dav.daf.main.config.MutableSet getMutableSet()
      Gibt die gekapselte Menge zurück.
      java.lang.String getName()
      Gibt den Namen des Systemobjekts zurück.
      java.lang.String getPid()
      Gibt die PID des Systemobjekts zurück.
      de.bsvrz.dav.daf.main.config.SystemObject getSystemObject()
      Gibt das gekapselte Systemobjekt des Datenverteilers zurück.
      SystemObjekt getSystemObjekt()
      Gibt das Systemobjekt zurück, an dem die Menge hängt.
      SystemObjektTyp getTyp()
      Wird nicht unterstützt und wirft immer eine UnsupportedOperationException.
      java.util.Iterator<E> iterator()  
      boolean remove​(java.lang.Object o)  
      boolean removeAndInvalidate​(E o)
      Entfernt ein Objekt aus der Menge und invalidert das Objekt anschließend.
      void removeMengenListener​(MengenListener l)
      Deregistriert einen Listener für Änderungen an dieser Menge.
      int size()  
      java.lang.String toString()  
      • Methods inherited from class java.util.AbstractCollection

        addAll, clear, contains, containsAll, isEmpty, removeAll, retainAll, toArray, toArray
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.util.Collection

        equals, hashCode, parallelStream, removeIf, spliterator, stream, toArray
      • Methods inherited from interface java.lang.Iterable

        forEach
    • Constructor Detail

      • AenderbareMenge

        public AenderbareMenge​(ObjektFactory objektFactory,
                               de.bsvrz.dav.daf.main.config.MutableSet mutableSet,
                               int minAnzahl,
                               int maxAnzahl,
                               SystemObjekt systemObjekt)
        Initialisiert den Wrapper.

        Hinweis: Der Konstruktor gehört nicht zur public API.

        Parameters:
        objektFactory - die Objektfabrik, die von der Menge verwendet werden soll.
        mutableSet - die zu kapselnde Menge,
        minAnzahl - die minimale Anzahl von Objekten in der Menge.
        maxAnzahl - die maximale Anzahl von Objekten in der Menge.
        systemObjekt - das Systemobjekt an dem die Menge hängt.
    • Method Detail

      • getMutableSet

        public de.bsvrz.dav.daf.main.config.MutableSet getMutableSet()
        Gibt die gekapselte Menge zurück.

        Hinweis: Diese Methode gehört nicht zur public API.

        Returns:
        die gekapselte Menge.
      • getMinAnzahl

        public int getMinAnzahl()
        Gibt die minimal erlaubte Anzahl von Objekten in der Menge zurück.
        Returns:
        die minimale Objektanzahl.
      • getMaxAnzahl

        public int getMaxAnzahl()
        Gibt die maximal erlaubte Anzahl von Objekten in der Menge zurück.
        Returns:
        die maximale Objektanzahl.
      • getSystemObjekt

        public SystemObjekt getSystemObjekt()
        Gibt das Systemobjekt zurück, an dem die Menge hängt.
        Returns:
        das Systemobjekt, an dem die Menge hängt.
      • add

        public boolean add​(E e)
        Specified by:
        add in interface java.util.Collection<E extends SystemObjekt>
        Overrides:
        add in class java.util.AbstractCollection<E extends SystemObjekt>
        Throws:
        java.lang.IllegalStateException - wenn die maximal erlaubte Anzahl von Objekten in dieser Menge bereits erreicht ist.
        See Also:
        getMaxAnzahl()
      • remove

        public boolean remove​(java.lang.Object o)
        Specified by:
        remove in interface java.util.Collection<E extends SystemObjekt>
        Overrides:
        remove in class java.util.AbstractCollection<E extends SystemObjekt>
        Throws:
        java.lang.IllegalStateException - wenn die minimal erlaubte Anzahl von Objekten in dieser Menge bereits erreicht ist.
        See Also:
        getMinAnzahl()
      • removeAndInvalidate

        public boolean removeAndInvalidate​(E o)
        Entfernt ein Objekt aus der Menge und invalidert das Objekt anschließend. Kann das Objekt aus der Menge nicht entfernt werden, wird es auch nicht invalidiert.
        Parameters:
        o - das zu entfernende und zu invalidierende Objekt.
        Returns:
        true, wenn das Objekt aus der Menge entfernt wurde und invalidiert ist. Sollte eines von beiden schiefgehen, wird false zurückgegeben.
      • iterator

        public java.util.Iterator<E> iterator()
        Specified by:
        iterator in interface java.util.Collection<E extends SystemObjekt>
        Specified by:
        iterator in interface java.lang.Iterable<E extends SystemObjekt>
        Specified by:
        iterator in class java.util.AbstractCollection<E extends SystemObjekt>
      • size

        public int size()
        Specified by:
        size in interface java.util.Collection<E extends SystemObjekt>
        Specified by:
        size in class java.util.AbstractCollection<E extends SystemObjekt>
      • cleanUp

        public void cleanUp()
                     throws de.bsvrz.sys.funclib.dynobj.DynObjektException
        Entfernt alle invalidierten Objekte aus der Menge.
        Throws:
        de.bsvrz.sys.funclib.dynobj.DynObjektException - wenn nicht alle invalidierten Objekte aus der Menge erfolgreich entfernt werden konnten.
      • addMengenListener

        public void addMengenListener​(MengenListener l)
        Registriert einen Listener für Änderungen an dieser Menge.
        Parameters:
        l - ein Listener.
      • removeMengenListener

        public void removeMengenListener​(MengenListener l)
        Deregistriert einen Listener für Änderungen an dieser Menge.
        Parameters:
        l - ein Listener.
      • fireMengeAktualisiert

        protected void fireMengeAktualisiert​(java.util.Collection<E> hinzugefuegt,
                                             java.util.Collection<E> entfernt)
        Informiert die angemeldeten Listener über eine Änderung an dieser Menge.
        Parameters:
        hinzugefuegt - die Menge der hinzugefügten Objekte.
        entfernt - die Menge der entfernten Objekte.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.util.AbstractCollection<E extends SystemObjekt>
      • getId

        public long getId()
        Description copied from interface: SystemObjekt
        Gibt die ID des Systemobjekts zurück.
        Specified by:
        getId in interface SystemObjekt
        Returns:
        Die ID
        See Also:
        SystemObject.getId()
      • getName

        public java.lang.String getName()
        Description copied from interface: SystemObjekt
        Gibt den Namen des Systemobjekts zurück.
        Specified by:
        getName in interface SystemObjekt
        Returns:
        Der Systemobjektname
        See Also:
        SystemObject.getName()
      • getPid

        public java.lang.String getPid()
        Description copied from interface: SystemObjekt
        Gibt die PID des Systemobjekts zurück.
        Specified by:
        getPid in interface SystemObjekt
        Returns:
        Die PID als String
        See Also:
        SystemObject.getPid()
      • getSystemObject

        public de.bsvrz.dav.daf.main.config.SystemObject getSystemObject()
        Description copied from interface: SystemObjekt
        Gibt das gekapselte Systemobjekt des Datenverteilers zurück.
        Specified by:
        getSystemObject in interface SystemObjekt
        Returns:
        Das Datenverteilersystemobjekt
        See Also:
        SystemObject.getId()
      • getTyp

        public SystemObjektTyp getTyp()
        Wird nicht unterstützt und wirft immer eine UnsupportedOperationException.
        Specified by:
        getTyp in interface SystemObjekt
        Returns:
        den Typ
      • getKonfigurationsBereich

        public SystemObjektBereich getKonfigurationsBereich()
        Wird nicht unterstützt und wirft immer eine UnsupportedOperationException.
        Specified by:
        getKonfigurationsBereich in interface SystemObjekt
        Returns:
        der Konfigurationsbereich des Systemobjekts.