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 (DOTProperty
) 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 ({@link #get( int)}).
Modifier and Type | Class and Description |
---|---|
class |
DOTItemManager.DisplayObjectTypeItemWithInterval
Die Klasse DisplayObjectTypeItemWithInterval kapselt ein Paar bestehend aus einem Interval und einem Item.
|
Modifier and Type | Field and Description |
---|---|
protected java.util.Map<DOTSubscriptionData,java.util.List<java.lang.String>> |
_attributeNames |
protected java.util.List<DOTItemManager.DisplayObjectTypeItemWithInterval> |
_displayObjectTypesItemList |
protected java.util.Map<java.lang.String,java.util.TreeMap<Interval<java.lang.Double>,E>> |
_displayObjectTypesItemMap |
Constructor and Description |
---|
DOTItemManager()
Initialisiert einen leeren Manager.
|
Modifier and Type | Method and 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.
|
protected java.util.Map<DOTSubscriptionData,java.util.List<java.lang.String>> _attributeNames
protected java.util.Map<java.lang.String,java.util.TreeMap<Interval<java.lang.Double>,E extends DisplayObjectType.DisplayObjectTypeItem>> _displayObjectTypesItemMap
protected java.util.List<DOTItemManager.DisplayObjectTypeItemWithInterval> _displayObjectTypesItemList
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.
public java.util.Set<DOTSubscriptionData> getSubscriptionData()
Gibt eine Read-Only-Menge mit allen Anmeldeinformation des Managers zurück.
public boolean hasSubscriptionData(DOTSubscriptionData subscriptionData)
Gibt true
zurück, wenn es mindestens eines der verwalteten Items ein Anmeldung auf subscriptionData benötigt, sonst false
.
subscriptionData
- eine Anmeldungtrue
genau dann, wenn die Anmeldung benötigt wirdpublic 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.
subscriptionData
- eine Anmeldungpublic 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.
public 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. 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)
).
#get( String
)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)
).
key
- ein Zugriffsschlüsselpublic boolean containsKey(java.lang.String key)
Gibt true
zurück, wenn key
ein gültiger Schlüssel für eine TreeMap ist.
ein
- Zugriffsschlüsseltrue
genau dann, wenn zum Schlüssel eine TreeMap existiertpublic 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.
interval
- ein Intervallitem
- ein Itempublic void insert(Interval<java.lang.Double> interval, E item)
Fügt das Item für das Interval hinzu.
interval
- ein Intervallitem
- ein Itempublic DOTItemManager.DisplayObjectTypeItemWithInterval get(int index)
Liefert Item und Interval aus der Listenverwaltung des Managers für den Index.
index
- ein Index zwischen 0 und size()-1public void remove(int index)
Entfernt Item und Interval aus der Listenverwaltung des Managers für den Index.
index
- ein Index zwischen 0 und size()-1public 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).
data
- eine AnmeldungattributeName
- ein Attributname zu dieser Anmeldungpublic 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.