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.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()
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 class
DOTItemManager.DisplayObjectTypeItemWithInterval
Die 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
Modifier and Type Method Description boolean
containsKey(java.lang.String key)
Gibttrue
zurück, wennkey
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üsselkey
zurü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.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)
Gibttrue
zurück, wenn es mindestens eines der verwalteten Items ein Anmeldung auf subscriptionData benötigt, sonstfalse
.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 Methodeget(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()
-
-
-
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)
Gibttrue
zurück, wenn es mindestens eines der verwalteten Items ein Anmeldung auf subscriptionData benötigt, sonstfalse
.- 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
-
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üsselkey
zurü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)
Gibttrue
zurück, wennkey
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 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:
toString
in classjava.lang.Object
-
-