de.bsvrz.ars.ars.mgmt.datatree
Class DataIdentTree

java.lang.Object
  extended by de.bsvrz.ars.ars.mgmt.datatree.DataIdentTree

public class DataIdentTree
extends Object

Hash-Tabelle, die pro Daten-Identifikation einen DataIdentNode haelt. Baumartige Implementierung als mehrstufige Hash-Map aus mehreren IDMap.

Derzeit werden keine DataIdentNodes geloescht.

Author:
beck et al. projects GmbH, Thomas Schaefer

Constructor Summary
DataIdentTree()
          Erzeugt einen neuen DataIdentTree.
 
Method Summary
 void cleanUp()
          DataIdentNodes löschen, die nicht parametriert sind.
 int countDataIdentNodes()
          Liefet die Anzahl der DataIdentNodes im Baum zurueck.
 DataIdentTreeIterator createIterator()
          Liefert einen DataIdentTreeIterator zum Iterieren des DataIdentTrees zurueck.
 void deleteDataIdentNode(DataIdentification did)
          Loescht den DataIdentNode zur angegebenen Daten-Identifikation.
 void deleteDataIdentNode(long objID, long atgID, long aspID, int sv)
          Loescht den DataIdentNode zur angegebenen Daten-Identifikation.
 DataIdentNode existsCreate(ArchiveDataSpecification ads)
          Liefert den DataIdentNode zur angegebenen Daten-Identifikation und legt ihn vorher noetigenfalls an, falls er noch nicht existiert.
 DataIdentNode existsCreate(DataIdentification did)
          Liefert den DataIdentNode zur angegebenen Daten-Identifikation und legt ihn vorher noetigenfalls an, falls er noch nicht existiert.
 DataIdentNode existsCreate(long objId, long atgId, long aspId, int sv)
          Liefert den DataIdentNode zur angegebenen Daten-Identifikation und legt ihn vorher noetigenfalls an, falls er noch nicht existiert.
 Aspect[] getAsps(long objId, long atgId, DataModel model)
          Liefert alle möglichen Aspekte zu einem Objekt und einer zugehörigen Attributgruppe AspekteIds werden mit Hilfe des DataModel aufgelöst.
 AttributeGroup[] getAtgs(long objID, DataModel model)
          Liefert alle Attributgruppen zu einem Objekt, die im Baum gespeichert sind.
 DataIdentNode getDataIdentNode(ArchiveDataSpecification ads)
          Liefert den DataIdentNode zur angegebenen Daten-Identifikation.
 DataIdentNode getDataIdentNode(DataIdentification did)
          Liefert den DataIdentNode zur angegebenen Daten-Identifikation.
 DataIdentNode getDataIdentNode(long objID, long atgID, long aspID, int sv)
          Liefert den DataIdentNode zur angegebenen Daten-Identifikation.
 DataIdentNode getDataIdentNode(ResultData rd)
          Liefert den DataIdentNode zur angegebenen Daten-Identifikation.
 SystemObject[] getObjects(DataModel model)
          Liefert alle Objekte, die im rootNode gespeichert sind.
 int[] getSimVars(long objId, long atgId, long aspId)
          Liefert alle möglichen Simulationsvarianten zu einem Objekt mit Attributgruppe und Aspekt.
 StringBuilder print()
          Liefert einen Stringbuffer mit allen Datenidentifikation.
 void putDataIdentNode(DataIdentification did, DataIdentNode din)
          Fuegt den uebergebenen DataIdentNode mit der angegebenen Daten-Identifikation ein.
 void putDataIdentNode(long objId, long atgId, long aspId, int sv, DataIdentNode din)
          Fuegt den uebergebenen DataIdentNode mit der angegebenen Daten-Identifikation ein.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DataIdentTree

public DataIdentTree()
Erzeugt einen neuen DataIdentTree.

Method Detail

putDataIdentNode

public void putDataIdentNode(DataIdentification did,
                             DataIdentNode din)
Fuegt den uebergebenen DataIdentNode mit der angegebenen Daten-Identifikation ein.

Parameters:
did - Daten-Identifikation.
din - Abzulegender DataIdentNode.

putDataIdentNode

public void putDataIdentNode(long objId,
                             long atgId,
                             long aspId,
                             int sv,
                             DataIdentNode din)
Fuegt den uebergebenen DataIdentNode mit der angegebenen Daten-Identifikation ein.

Parameters:
objId - Objekt-ID
atgId - Attributgruppen-ID
aspId - Aspekt-ID
sv - Simulationsvariante
din - Abzulegender DataIdentNode.

getDataIdentNode

public DataIdentNode getDataIdentNode(DataIdentification did)
                               throws DIdNodeNotFoundException
Liefert den DataIdentNode zur angegebenen Daten-Identifikation.

Parameters:
did - Datenidentifikation
Returns:
DataIdentNode
Throws:
DIdNodeNotFoundException - falls nicht gefunden.

getDataIdentNode

public DataIdentNode getDataIdentNode(ResultData rd)
                               throws DIdNodeNotFoundException
Liefert den DataIdentNode zur angegebenen Daten-Identifikation.

Parameters:
rd - Datensatz vom Datenverteiler
Returns:
DataIdentNode zur angegebenen Daten-Identifikation.
Throws:
DIdNodeNotFoundException

getDataIdentNode

public DataIdentNode getDataIdentNode(ArchiveDataSpecification ads)
                               throws DIdNodeNotFoundException
Liefert den DataIdentNode zur angegebenen Daten-Identifikation.

Parameters:
ads - Spezifikation des Archivdatensatzes (enthaelt objID, atgID, aspID, sv)
Returns:
DataIdentNode zur angegebenen Daten-Identifikation.
Throws:
DIdNodeNotFoundException

getDataIdentNode

public DataIdentNode getDataIdentNode(long objID,
                                      long atgID,
                                      long aspID,
                                      int sv)
                               throws DIdNodeNotFoundException
Liefert den DataIdentNode zur angegebenen Daten-Identifikation.

Parameters:
objID - ID des Objektes
atgID - ID der Attributgruppe
aspID - ID des Aspektes
sv - Simulationsvariante
Returns:
DataIdentNode
Throws:
DIdNodeNotFoundException - falls nicht gefunden.

existsCreate

public DataIdentNode existsCreate(DataIdentification did)
Liefert den DataIdentNode zur angegebenen Daten-Identifikation und legt ihn vorher noetigenfalls an, falls er noch nicht existiert. Dieser DataIdentNode gehoert nicht zur aktuellen Archivparametrierung, sondern wurde z.B. aufgrund einer Anfrage um die Indexe zu speichern eingefuegt. Ggf. koennen solche DIN wieder geloescht werden, siehe cleanUp().

Parameters:
did - Datenidentifikation
Returns:
DataIdentNode

existsCreate

public DataIdentNode existsCreate(ArchiveDataSpecification ads)
Liefert den DataIdentNode zur angegebenen Daten-Identifikation und legt ihn vorher noetigenfalls an, falls er noch nicht existiert. Dieser DataIdentNode gehoert nicht zur aktuellen Archivparametrierung, sondern wurde z.B. aufgrund einer Anfrage um die Indexe zu speichern eingefuegt. Ggf. koennen solche DIN wieder geloescht werden, siehe cleanUp().

Parameters:
ads - Spezifikation des Archivdatensatzes (enthaelt objID, atgID, aspID, sv)
Returns:
DataIdentNode

existsCreate

public DataIdentNode existsCreate(long objId,
                                  long atgId,
                                  long aspId,
                                  int sv)
Liefert den DataIdentNode zur angegebenen Daten-Identifikation und legt ihn vorher noetigenfalls an, falls er noch nicht existiert. Dieser DataIdentNode gehoert nicht zur aktuellen Archivparametrierung, sondern wurde z.B. aufgrund einer Anfrage um die Indexe zu speichern eingefuegt. Ggf. koennen solche DIN wieder geloescht werden, siehe cleanUp().

Parameters:
objId - Objekt-ID
atgId - Attributgruppen-ID
aspId - Aspekt-ID
sv - Simulationsvariante
Returns:
DataIdentNode

deleteDataIdentNode

public void deleteDataIdentNode(DataIdentification did)
                         throws DIdNodeNotFoundException
Loescht den DataIdentNode zur angegebenen Daten-Identifikation. Nach dem Loeschen des DataIdentNodes leer gewordene ObjNodes, AtgNodes oder AspNodes werden ebenfalls aus dem Baum entfernt.

Parameters:
did - Datenidentifikation
Throws:
DIdNodeNotFoundException

deleteDataIdentNode

public void deleteDataIdentNode(long objID,
                                long atgID,
                                long aspID,
                                int sv)
                         throws DIdNodeNotFoundException
Loescht den DataIdentNode zur angegebenen Daten-Identifikation. Nach dem Loeschen des DataIdentNodes leer gewordene ObjNodes, AtgNodes oder AspNodes werden ebenfalls aus dem Baum entfernt.

Parameters:
objID - ID des Objektes
atgID - ID der Attributgruppe
aspID - ID des Aspektes
sv - Simulationsvariante
Throws:
DIdNodeNotFoundException

getObjects

public SystemObject[] getObjects(DataModel model)
                          throws ConfigurationException
Liefert alle Objekte, die im rootNode gespeichert sind. ObjekteIds werden mit Hilfe des DataModel aufgelöst.

Parameters:
model - das DataModel
Returns:
ein Array von Systemobjekten
Throws:
ConfigurationException

getAtgs

public AttributeGroup[] getAtgs(long objID,
                                DataModel model)
                         throws ConfigurationException
Liefert alle Attributgruppen zu einem Objekt, die im Baum gespeichert sind. AtgIds werden mit Hilfe des DataModel aufgelöst.

Parameters:
objID -
model -
Returns:
ein Array von Attributgruppen
Throws:
ConfigurationException

getAsps

public Aspect[] getAsps(long objId,
                        long atgId,
                        DataModel model)
                 throws ConfigurationException
Liefert alle möglichen Aspekte zu einem Objekt und einer zugehörigen Attributgruppe AspekteIds werden mit Hilfe des DataModel aufgelöst.

Parameters:
objId - die Id des Objekts
atgId - die Id der Attributgruppe
model - das DataModel
Returns:
ein Array von Aspekten
Throws:
ConfigurationException

getSimVars

public int[] getSimVars(long objId,
                        long atgId,
                        long aspId)
Liefert alle möglichen Simulationsvarianten zu einem Objekt mit Attributgruppe und Aspekt. Werte werden direkt aus dem AspNode gelesen.

Parameters:
objId - die Id des Objekts
atgId - die Id der Attributgruppe
aspId - die Id des Aspekts
Returns:
ein Array von möglichen Simulationsvarianten

createIterator

public DataIdentTreeIterator createIterator()
Liefert einen DataIdentTreeIterator zum Iterieren des DataIdentTrees zurueck.

Returns:
DataIdentTreeIterator

countDataIdentNodes

public int countDataIdentNodes()
Liefet die Anzahl der DataIdentNodes im Baum zurueck.

Returns:
Anzahl DataIdentNodes

print

public StringBuilder print()
Liefert einen Stringbuffer mit allen Datenidentifikation.

Returns:
Stringbuffer

cleanUp

public void cleanUp()
DataIdentNodes löschen, die nicht parametriert sind.