Class DOTItemManager<E extends DisplayObjectType.DisplayObjectTypeItem>

  • Direct Known Subclasses:
    DynamicDOTItemManager

    public class DOTItemManager<E extends DisplayObjectType.DisplayObjectTypeItem>
    extends java.lang.Object
    Eine Klasse zur Verwaltung von DisplayObjectItems.

    Ein DOTItemManager dient zur Verwaltung von DisplayObjectTypeItems einer Eigenschaft (Property) oder eines Paars bestehend aus einer Grundfigur und einer Eigenschaft (PrimitiveFormPropertyPair). Der DOTItemManager stellt mehrere effiziente Zugriffsmöglichkeiten zur Verfügung, die im Umfeld mit Datenverteiler-Anwendungen benötigt werden. Dies sind z.B. die Menge aller notwendigen Anmeldungen (s. getSubscriptionData()), die Intervalle mit zugehörigen Items einer Anmeldung (getTreeMaps() und get(String)) und die Verwaltung aller Items mit ihren Intervalls in einer Liste (get(int)).

    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.util.Map<java.lang.String,​java.util.TreeMap<Interval<java.lang.Double>,​E>> _displayObjectTypesItemMap  
    • Constructor Summary

      Constructors 
      Constructor Description
      DOTItemManager()
      Initialisiert einen leeren Manager.
    • Method Summary

      Modifier and Type Method Description
      boolean containsKey​(java.lang.String key)
      Gibt true zurück, wenn key ein gültiger Schlüssel für eine TreeMap ist.
      DOTItemManager.DisplayObjectTypeItemWithInterval get​(int index)
      Liefert Item und Interval aus der Listenverwaltung des Managers für den Index.
      java.util.TreeMap<Interval<java.lang.Double>,​E> get​(java.lang.String key)
      Gibt die TreeMap zu dem Schlüssel key zurück oder null.
      java.util.List<java.lang.String> getAttributeNames​(DOTSubscriptionData subscriptionData)
      Gibt die Menge aller Attributnamen zurück, für die von mindestens einem Item zu subscriptionData Daten benötigt werden.
      java.util.Set<java.lang.Integer> getConflictingRows()
      Gibt die Menge der Indizes aus der Listenverwaltung des Managers zurück, für die ein anderes überlappendes Interval existiert.
      java.lang.String getKeyString​(DOTSubscriptionData data, java.lang.String attributeName)
      Der Schlüssel-String eines Items bzw. der übergebenen Daten entsteht durch Aneinanderhängung von Attributgruppenname, Aspekt und Attributname, wobei jeweils ein Punkt als Trennzeichen verwendet wird.
      java.util.Set<DOTSubscriptionData> getSubscriptionData()
      Gibt eine Read-Only-Menge mit allen Anmeldeinformation des Managers zurück.
      java.util.Collection<java.util.TreeMap<Interval<java.lang.Double>,​E>> getTreeMaps()
      Gibt eine Read-Only-Ansicht aller internen TreeMaps zurück.
      boolean hasSubscriptionData​(DOTSubscriptionData subscriptionData)
      Gibt true zurück, wenn es mindestens eines der verwalteten Items ein Anmeldung auf subscriptionData benötigt, sonst false.
      void insert​(Interval<java.lang.Double> interval, E item)
      Fügt das Item für das Interval hinzu.
      java.util.Set<java.lang.String> keySet()
      Gibt die möglichen Zugriffsschlüssel für die Methode get(String)), die eine TreeMap liefert, zurück.
      void put​(Interval<java.lang.Double> interval, E item)
      Fügt dem Manager das Item für das Werteintervall hinzu oder macht ein Update des Items, wenn für die Anmeldedaten des Items (getAttributeGroup, getAspect) das Interval bereits benutzt wird.
      void remove​(int index)
      Entfernt Item und Interval aus der Listenverwaltung des Managers für den Index.
      int size()
      Gibt die Anzahl der Items in der Liste zurück, die gleichzeitig auch die Summe der Anzahl der Items über alle TreeMaps ist.
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • DOTItemManager

        public DOTItemManager()
        Initialisiert einen leeren Manager.
    • Method Detail

      • getTreeMaps

        public java.util.Collection<java.util.TreeMap<Interval<java.lang.Double>,​E>> getTreeMaps()
        Gibt eine Read-Only-Ansicht aller internen TreeMaps zurück. Jede solche TreeMap speichert für eine Anmeldung die notwendigen Intervalle mit zugehörigen Items.
        Returns:
        gibt eine Read-Only-Ansicht aller internen TreeMaps zurück
      • getSubscriptionData

        public java.util.Set<DOTSubscriptionData> getSubscriptionData()
        Gibt eine Read-Only-Menge mit allen Anmeldeinformation des Managers zurück.
        Returns:
        gibt eine Read-Only-Menge mit allen Anmeldeinformation des Managers zurück
      • hasSubscriptionData

        public boolean hasSubscriptionData​(DOTSubscriptionData subscriptionData)
        Gibt true zurück, wenn es mindestens eines der verwalteten Items ein Anmeldung auf subscriptionData benötigt, sonst false.
        Parameters:
        subscriptionData - eine Anmeldung
        Returns:
        true genau dann, wenn die Anmeldung benötigt wird
      • getAttributeNames

        public java.util.List<java.lang.String> getAttributeNames​(DOTSubscriptionData subscriptionData)
        Gibt die Menge aller Attributnamen zurück, für die von mindestens einem Item zu subscriptionData Daten benötigt werden.
        Parameters:
        subscriptionData - eine Anmeldung
        Returns:
        die verwendeten Attributnamen zu der Anmeldung
      • size

        public int size()
        Gibt die Anzahl der Items in der Liste zurück, die gleichzeitig auch die Summe der Anzahl der Items über alle TreeMaps ist. Dient im Wesentlichen zur Begrenzung von Vorschleifen.
        Returns:
        die Anzahl von Items
      • get

        public java.util.TreeMap<Interval<java.lang.Double>,​E> get​(java.lang.String key)
        Gibt die TreeMap zu dem Schlüssel key zurück oder null. Ein solcher Zugriffsschlüssel besteht aus den aneinandergehängter und nur durch Punkt getrennten Attributgruppenname, Aspektname und Attributname ((s. auch getKeyString(de.kappich.pat.gnd.displayObjectToolkit.DOTSubscriptionData, java.lang.String)).
        Parameters:
        key - ein Zugriffsschlüssel
        Returns:
        eine TreeMap, die Intervallen Items zuordnet
      • containsKey

        public boolean containsKey​(java.lang.String key)
        Gibt true zurück, wenn key ein gültiger Schlüssel für eine TreeMap ist.
        Parameters:
        key - ein Zugriffsschlüssel
        Returns:
        true genau dann, wenn zum Schlüssel eine TreeMap existiert
      • put

        public void put​(Interval<java.lang.Double> interval,
                        E item)
        Fügt dem Manager das Item für das Werteintervall hinzu oder macht ein Update des Items, wenn für die Anmeldedaten des Items (getAttributeGroup, getAspect) das Interval bereits benutzt wird.
        Parameters:
        interval - ein Intervall
        item - ein Item
      • insert

        public void insert​(Interval<java.lang.Double> interval,
                           E item)
        Fügt das Item für das Interval hinzu.
        Parameters:
        interval - ein Intervall
        item - ein Item
      • get

        public DOTItemManager.DisplayObjectTypeItemWithInterval get​(int index)
        Liefert Item und Interval aus der Listenverwaltung des Managers für den Index.
        Parameters:
        index - ein Index zwischen 0 und size()-1
        Returns:
        das entsprechende DisplayObjectTypeItemWithInterval
      • remove

        public void remove​(int index)
        Entfernt Item und Interval aus der Listenverwaltung des Managers für den Index.
        Parameters:
        index - ein Index zwischen 0 und size()-1
      • getKeyString

        public java.lang.String getKeyString​(DOTSubscriptionData data,
                                             java.lang.String attributeName)
        Der Schlüssel-String eines Items bzw. der übergebenen Daten entsteht durch Aneinanderhängung von Attributgruppenname, Aspekt und Attributname, wobei jeweils ein Punkt als Trennzeichen verwendet wird. Als Attributnamen kommen aber nicht nur die tatsächlichen Attribute der Attributgruppe in Frage, sondern auch spezielle Zeichenketten zur Verwaltung der Stati für 'leere Daten', 'keine Daten', 'keine Quelle' und 'keine Rechte' ( diese sind statische Member von DynamicDefinitionComponent).
        Parameters:
        data - eine Anmeldung
        attributeName - ein Attributname zu dieser Anmeldung
      • getConflictingRows

        public java.util.Set<java.lang.Integer> getConflictingRows()
        Gibt die Menge der Indizes aus der Listenverwaltung des Managers zurück, für die ein anderes überlappendes Interval existiert.
        Returns:
        die Menge von Indizes überlappender Intervalle
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object