Class DOTItemManager<E extends DisplayObjectType.DisplayObjectTypeItem>
- java.lang.Object
-
- de.kappich.pat.gnd.displayObjectToolkit.DOTItemManager<E>
-
- Direct Known Subclasses:
DynamicDOTItemManager
public class DOTItemManager<E extends DisplayObjectType.DisplayObjectTypeItem> extends java.lang.ObjectEine 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()undget(String)) und die Verwaltung aller Items mit ihren Intervalls in einer Liste (get(int)).
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description classDOTItemManager.DisplayObjectTypeItemWithIntervalDie Klasse DisplayObjectTypeItemWithInterval kapselt ein Paar bestehend aus einem Interval und einem Item.
-
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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancontainsKey(java.lang.String key)Gibttruezurück, wennkeyein gültiger Schlüssel für eine TreeMap ist.DOTItemManager.DisplayObjectTypeItemWithIntervalget(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üsselkeyzurück odernull.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.StringgetKeyString(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.booleanhasSubscriptionData(DOTSubscriptionData subscriptionData)Gibttruezurück, wenn es mindestens eines der verwalteten Items ein Anmeldung auf subscriptionData benötigt, sonstfalse.voidinsert(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 Methodeget(String)), die eine TreeMap liefert, zurück.voidput(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.voidremove(int index)Entfernt Item und Interval aus der Listenverwaltung des Managers für den Index.intsize()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.StringtoString()
-
-
-
Field Detail
-
_displayObjectTypesItemMap
protected final java.util.Map<java.lang.String,java.util.TreeMap<Interval<java.lang.Double>,E extends DisplayObjectType.DisplayObjectTypeItem>> _displayObjectTypesItemMap
-
-
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)
Gibttruezurück, wenn es mindestens eines der verwalteten Items ein Anmeldung auf subscriptionData benötigt, sonstfalse.- Parameters:
subscriptionData- eine Anmeldung- Returns:
truegenau 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
-
keySet
public java.util.Set<java.lang.String> keySet()
Gibt die möglichen Zugriffsschlüssel für die Methodeget(String)), die eine TreeMap liefert, zurück. Ein solcher Zugriffsschlüssel besteht aus den aneinandergehängter und nur durch Punkt getrennten Attributgruppenname, Aspektname und Attributname (s. auchgetKeyString(de.kappich.pat.gnd.displayObjectToolkit.DOTSubscriptionData, java.lang.String)).- Returns:
- alle Zugriffsschlüssel der Methode
get(String))
-
get
public java.util.TreeMap<Interval<java.lang.Double>,E> get(java.lang.String key)
Gibt die TreeMap zu dem Schlüsselkeyzurück odernull. Ein solcher Zugriffsschlüssel besteht aus den aneinandergehängter und nur durch Punkt getrennten Attributgruppenname, Aspektname und Attributname ((s. auchgetKeyString(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)
Gibttruezurück, wennkeyein gültiger Schlüssel für eine TreeMap ist.- Parameters:
key- ein Zugriffsschlüssel- Returns:
truegenau 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 Intervallitem- 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 Intervallitem- 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 AnmeldungattributeName- 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:
toStringin classjava.lang.Object
-
-