de.bsvrz.puk.config.configFile.datamodel
Class ConfigDataModel

java.lang.Object
  extended by de.bsvrz.puk.config.configFile.datamodel.ConfigDataModel
All Implemented Interfaces:
DataModel, ConfigurationControl, ObjectLookup

public class ConfigDataModel
extends Object
implements DataModel, ConfigurationControl

Implementierung des Datenmodells auf Seiten der Konfiguration zum Zugriff auf die Konfigurationsdaten. Die Verwaltungsdaten und die Konfigurationsdaten werden hier zusammengeführt und entsprechend des Datenmodells zur Verfügung gestellt.

Author:
Kappich Systemberatung
See Also:
DataModel

Constructor Summary
ConfigDataModel(File adminFile)
          Erzeugt das Datenmodell der Konfiguration.
 
Method Summary
 ConsistencyCheckResultInterface activateConfigurationAreas(Collection<ConfigAreaAndVersion> configurationAreas)
           
 ConsistencyCheckResultInterface checkConsistency(Collection<ConfigAreaAndVersion> configurationAreas)
           
 void close()
           
 ConfigurationArea createConfigurationArea(String name, String pid, String authorityPid)
           
 ConfigurationArea createConfigurationArea(String areaName, String areaPid, SystemObjectType authorityObjectType, String authorityPid, String authorityName, long authorityCoding)
           
 ConfigurationObject createConfigurationObject(ConfigurationObjectType type, String pid, String name, List sets)
           
 DynamicObject createDynamicObject(SystemObjectType type, String pid, String name)
           
 void deleteObjects(short simulationVariant)
          Löscht alle dynamischen Objekte mit der angegebenen Simulationsvariante permanent.
 void exportConfigurationAreas(File exportPath, Collection<String> configurationAreaPids)
           
 short getActiveVersion(ConfigurationArea configurationArea)
           
 Map<String,ConfigurationArea> getAllConfigurationAreas()
           
 boolean getAllowDoublePids()
          Liefert das Flag, mit dem die Konsistenzprüfung entscheiden soll, ob doppelte Pids in verschiedenen Konfigurationsbereichen erlaubt sind.
protected  Collection<SystemObjectType> getAllSubTypes(SystemObjectType type)
          Diese Methode ermittelt zu diesem Objekt-Typ rekursiv alle Typen, die diesen Typ direkt und indirekt erweitern.
 Aspect getAspect(String pid)
           
 AttributeGroup getAttributeGroup(String pid)
           
 AttributeGroupUsage getAttributeGroupUsage(long usageIdentification)
          Bestimmt die Attributgruppenverwendung mit der angegebenen Datenverteiler-Identifizierung.
 AttributeType getAttributeType(String pid)
           
 List<SystemObjectType> getBaseTypes()
           
 ConfigurationArea getConfigurationArea(String pid)
           
 ConfigurationAreaManagementInfo getConfigurationAreaManagementInfo(String pid)
          Gibt zu einem Konfigurationsbereich dessen Verwaltungsinformationen zurück.
 ConfigurationAuthority getConfigurationAuthority()
           
 String getConfigurationAuthorityPid()
           
 Data[] getConfigurationData(Collection<SystemObject> objects, AttributeGroup atg)
           
 Data[] getConfigurationData(Collection<SystemObject> objects, AttributeGroup atg, Aspect asp)
           
 Data[] getConfigurationData(SystemObject[] objects, AttributeGroup atg)
           
 Data[] getConfigurationData(SystemObject[] objects, AttributeGroup atg, Aspect asp)
           
 ConfigurationFileManager getConfigurationFileManager()
          Liefert die Verwaltung für die Konfigurationsdateien.
 boolean getIgnoreDependencyErrorsInConsistencyCheck()
           
 ConfigurationManagementFile getManagementFile()
          Gibt das Objekt für Änderungen an der Verwaltungsdatei zurück.
 SystemObject getObject(long id)
           
 SystemObject getObject(String pid)
           
 Collection<SystemObject> getObjects(Collection<ConfigurationArea> configurationAreas, Collection<SystemObjectType> systemObjectTypes, ObjectTimeSpecification objectTimeSpecification)
           
 Collection<SystemObject> getObjects(String pid, long startTime, long endTime)
           
 ObjectSetType getObjectSetType(String pid)
           
 SystemObjectType getType(String pid)
           
 SystemObjectType getTypeTypeObject()
           
 UserAdministration getUserAdministration()
           
 void importConfigurationAreas(File importPath, Collection<String> configurationAreaPids)
           
 void releaseConfigurationAreasForActivation(Collection<ConfigAreaAndVersion> configurationAreas)
           
 ConsistencyCheckResultInterface releaseConfigurationAreasForActivationWithoutCAActivation(Collection<ConfigAreaAndVersion> configurationAreas)
           
 ConsistencyCheckResultInterface releaseConfigurationAreasForTransfer(Collection<ConfigAreaAndVersion> configurationAreas)
           
 void save()
          Speichert die Verwaltungsdaten und die Konfigurationsbereiche ab.
 void saveSetElementsFileLater(ConfigMutableSet configMutableSet)
           
 void saveSetElementsFiles()
           
 void sendCollectionChangedNotification(ConfigMutableCollectionSupport mutableCollectionSupport, short simulationVariant, List<SystemObject> addedElements, List<SystemObject> removedElements)
          Leitet die Aktualisierungsnachrichten bzgl.
 void setAllowDoublePids(boolean allowDoublePids)
          Setzt das Flag, mit dem die Konsistenzprüfung entscheiden soll, ob doppelte Pids in verschiedenen Konfigurationsbereichen erlaubt sind.
 void setConfigurationAuthority(ConfigurationAuthority authority)
          Setzt den Konfigurationsverantwortlichen der Konfiguration.
 void setIgnoreDependencyErrorsInConsistencyCheck(boolean ignoreDependencyErrorsInConsistencyCheck)
          Setzt das Flag, mit dem die Konsistenzprüfung entscheidet, ob Fehler bei der Prüfung der Abhängigkeiten in der Konsistenzprüfung ignoriert werden oder zum Abbruch führen sollen.
 String toString()
          Gibt die String-Repräsentation dieser Klasse zurück.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ConfigDataModel

public ConfigDataModel(File adminFile)
Erzeugt das Datenmodell der Konfiguration.

Parameters:
adminFile - Datei mit den Verwaltungsdaten der Konfiguration oder leere Datei.
Method Detail

getConfigurationFileManager

public ConfigurationFileManager getConfigurationFileManager()
Liefert die Verwaltung für die Konfigurationsdateien.

Returns:
die Verwaltung für die Konfigurationsdateien

getManagementFile

public ConfigurationManagementFile getManagementFile()
Gibt das Objekt für Änderungen an der Verwaltungsdatei zurück.

Returns:
das Objekt zur Manipulation der Verwaltungsdatei

getConfigurationAuthority

public ConfigurationAuthority getConfigurationAuthority()
Specified by:
getConfigurationAuthority in interface DataModel

getConfigurationAuthorityPid

public String getConfigurationAuthorityPid()
Specified by:
getConfigurationAuthorityPid in interface DataModel

getConfigurationAreaManagementInfo

public ConfigurationAreaManagementInfo getConfigurationAreaManagementInfo(String pid)
Gibt zu einem Konfigurationsbereich dessen Verwaltungsinformationen zurück.

Parameters:
pid - Pid des Konfigurationsbereichs
Returns:
Verwaltungsinformationen des gewünschten Konfigurationsbereichs

checkConsistency

public ConsistencyCheckResultInterface checkConsistency(Collection<ConfigAreaAndVersion> configurationAreas)
Specified by:
checkConsistency in interface ConfigurationControl

activateConfigurationAreas

public ConsistencyCheckResultInterface activateConfigurationAreas(Collection<ConfigAreaAndVersion> configurationAreas)
                                                           throws ConfigurationChangeException
Specified by:
activateConfigurationAreas in interface ConfigurationControl
Throws:
ConfigurationChangeException

releaseConfigurationAreasForTransfer

public ConsistencyCheckResultInterface releaseConfigurationAreasForTransfer(Collection<ConfigAreaAndVersion> configurationAreas)
                                                                     throws ConfigurationChangeException
Specified by:
releaseConfigurationAreasForTransfer in interface ConfigurationControl
Throws:
ConfigurationChangeException

releaseConfigurationAreasForActivation

public void releaseConfigurationAreasForActivation(Collection<ConfigAreaAndVersion> configurationAreas)
                                            throws ConfigurationChangeException
Specified by:
releaseConfigurationAreasForActivation in interface ConfigurationControl
Throws:
ConfigurationChangeException

importConfigurationAreas

public void importConfigurationAreas(File importPath,
                                     Collection<String> configurationAreaPids)
                              throws ConfigurationChangeException
Specified by:
importConfigurationAreas in interface ConfigurationControl
Throws:
ConfigurationChangeException

exportConfigurationAreas

public void exportConfigurationAreas(File exportPath,
                                     Collection<String> configurationAreaPids)
                              throws ConfigurationTaskException
Specified by:
exportConfigurationAreas in interface ConfigurationControl
Throws:
ConfigurationTaskException

releaseConfigurationAreasForActivationWithoutCAActivation

public ConsistencyCheckResultInterface releaseConfigurationAreasForActivationWithoutCAActivation(Collection<ConfigAreaAndVersion> configurationAreas)
                                                                                          throws ConfigurationChangeException
Specified by:
releaseConfigurationAreasForActivationWithoutCAActivation in interface ConfigurationControl
Throws:
ConfigurationChangeException

getObject

public SystemObject getObject(String pid)
Specified by:
getObject in interface DataModel
Specified by:
getObject in interface ObjectLookup

getObject

public SystemObject getObject(long id)
Specified by:
getObject in interface DataModel
Specified by:
getObject in interface ObjectLookup

getConfigurationArea

public ConfigurationArea getConfigurationArea(String pid)
Specified by:
getConfigurationArea in interface DataModel

getAllConfigurationAreas

public Map<String,ConfigurationArea> getAllConfigurationAreas()
Specified by:
getAllConfigurationAreas in interface ConfigurationControl

getConfigurationData

public Data[] getConfigurationData(SystemObject[] objects,
                                   AttributeGroup atg)
Specified by:
getConfigurationData in interface DataModel

getConfigurationData

public Data[] getConfigurationData(Collection<SystemObject> objects,
                                   AttributeGroup atg)
Specified by:
getConfigurationData in interface DataModel

getConfigurationData

public Data[] getConfigurationData(SystemObject[] objects,
                                   AttributeGroup atg,
                                   Aspect asp)
Specified by:
getConfigurationData in interface DataModel

getConfigurationData

public Data[] getConfigurationData(Collection<SystemObject> objects,
                                   AttributeGroup atg,
                                   Aspect asp)
Specified by:
getConfigurationData in interface DataModel

getActiveVersion

public short getActiveVersion(ConfigurationArea configurationArea)
Specified by:
getActiveVersion in interface DataModel

getTypeTypeObject

public SystemObjectType getTypeTypeObject()
Specified by:
getTypeTypeObject in interface DataModel

getBaseTypes

public List<SystemObjectType> getBaseTypes()
Specified by:
getBaseTypes in interface DataModel

getType

public SystemObjectType getType(String pid)
Specified by:
getType in interface DataModel

getObjectSetType

public ObjectSetType getObjectSetType(String pid)
Specified by:
getObjectSetType in interface DataModel

getAttributeGroup

public AttributeGroup getAttributeGroup(String pid)
Specified by:
getAttributeGroup in interface DataModel

getAttributeType

public AttributeType getAttributeType(String pid)
Specified by:
getAttributeType in interface DataModel

getAspect

public Aspect getAspect(String pid)
Specified by:
getAspect in interface DataModel

createConfigurationObject

public ConfigurationObject createConfigurationObject(ConfigurationObjectType type,
                                                     String pid,
                                                     String name,
                                                     List sets)
                                              throws ConfigurationChangeException
Specified by:
createConfigurationObject in interface DataModel
Throws:
ConfigurationChangeException

createDynamicObject

public DynamicObject createDynamicObject(SystemObjectType type,
                                         String pid,
                                         String name)
                                  throws ConfigurationChangeException
Specified by:
createDynamicObject in interface DataModel
Throws:
ConfigurationChangeException

deleteObjects

public void deleteObjects(short simulationVariant)
Löscht alle dynamischen Objekte mit der angegebenen Simulationsvariante permanent.

Parameters:
simulationVariant - die Simulationsvariante

getObjects

public Collection<SystemObject> getObjects(String pid,
                                           long startTime,
                                           long endTime)
Specified by:
getObjects in interface DataModel

getObjects

public Collection<SystemObject> getObjects(Collection<ConfigurationArea> configurationAreas,
                                           Collection<SystemObjectType> systemObjectTypes,
                                           ObjectTimeSpecification objectTimeSpecification)
Specified by:
getObjects in interface DataModel

getUserAdministration

public UserAdministration getUserAdministration()
Specified by:
getUserAdministration in interface DataModel

getAllSubTypes

protected Collection<SystemObjectType> getAllSubTypes(SystemObjectType type)
Diese Methode ermittelt zu diesem Objekt-Typ rekursiv alle Typen, die diesen Typ direkt und indirekt erweitern.

Parameters:
type - der zu betrachtende Objekt-Typ
Returns:
Alle Typen, die diesen Typ direkt und indirekt erweitern.

toString

public String toString()
Gibt die String-Repräsentation dieser Klasse zurück. Der Wert kann sich ändern.

Overrides:
toString in class Object
Returns:
die String-Repräsentation dieser Klasse

save

public void save()
          throws IOException
Speichert die Verwaltungsdaten und die Konfigurationsbereiche ab.

Throws:
IOException - Fehler, die beim Speichern der Verwaltungsdaten oder der Konfigurationsdateien auftreten, werden hier weitergereicht.

close

public void close()

setConfigurationAuthority

public void setConfigurationAuthority(ConfigurationAuthority authority)
Setzt den Konfigurationsverantwortlichen der Konfiguration.

Parameters:
authority - der Konfigurationsverantwortliche der Konfiguration

createConfigurationArea

public ConfigurationArea createConfigurationArea(String areaName,
                                                 String areaPid,
                                                 SystemObjectType authorityObjectType,
                                                 String authorityPid,
                                                 String authorityName,
                                                 long authorityCoding)
                                          throws ConfigurationChangeException
Throws:
ConfigurationChangeException

createConfigurationArea

public ConfigurationArea createConfigurationArea(String name,
                                                 String pid,
                                                 String authorityPid)
                                          throws ConfigurationChangeException
Specified by:
createConfigurationArea in interface ConfigurationControl
Throws:
ConfigurationChangeException

getAttributeGroupUsage

public AttributeGroupUsage getAttributeGroupUsage(long usageIdentification)
Bestimmt die Attributgruppenverwendung mit der angegebenen Datenverteiler-Identifizierung.

Specified by:
getAttributeGroupUsage in interface DataModel
Parameters:
usageIdentification - Identifizierung dieser Attributgruppenverwendung bei der Kommunikation über den Datenverteiler.
Returns:
Zur Identifizierung gehörende Attributgruppenverwendung.

setAllowDoublePids

public void setAllowDoublePids(boolean allowDoublePids)
Setzt das Flag, mit dem die Konsistenzprüfung entscheiden soll, ob doppelte Pids in verschiedenen Konfigurationsbereichen erlaubt sind.

Parameters:
allowDoublePids - true falls doppelte Pids in verschiedenen Konfigurationsbereichen von der Konsistenzprüfung zugelassen werden sollen.

getAllowDoublePids

public boolean getAllowDoublePids()
Liefert das Flag, mit dem die Konsistenzprüfung entscheiden soll, ob doppelte Pids in verschiedenen Konfigurationsbereichen erlaubt sind.

Returns:
true falls doppelte Pids in verschiedenen Konfigurationsbereichen von der Konsistenzprüfung zugelassen werden sollen.

setIgnoreDependencyErrorsInConsistencyCheck

public void setIgnoreDependencyErrorsInConsistencyCheck(boolean ignoreDependencyErrorsInConsistencyCheck)
Setzt das Flag, mit dem die Konsistenzprüfung entscheidet, ob Fehler bei der Prüfung der Abhängigkeiten in der Konsistenzprüfung ignoriert werden oder zum Abbruch führen sollen. werden sollen.

Parameters:
ignoreDependencyErrorsInConsistencyCheck - true falls Fehler bei der Prüfung der Abhängigkeiten in der Konsistenzprüfung ignoriert werden sollen.

getIgnoreDependencyErrorsInConsistencyCheck

public boolean getIgnoreDependencyErrorsInConsistencyCheck()

saveSetElementsFileLater

public void saveSetElementsFileLater(ConfigMutableSet configMutableSet)

saveSetElementsFiles

public void saveSetElementsFiles()

sendCollectionChangedNotification

public void sendCollectionChangedNotification(ConfigMutableCollectionSupport mutableCollectionSupport,
                                              short simulationVariant,
                                              List<SystemObject> addedElements,
                                              List<SystemObject> removedElements)
Leitet die Aktualisierungsnachrichten bzgl. Änderungen von dynamischen Mengen und dynamischen Typen an das entsprechende Verwaltungsobjekt weiter.

Parameters:
mutableCollectionSupport - Verwaltungsobjekt für Aktualisierungsnachrichten
simulationVariant - Simulationsvariante der Änderung
addedElements - Hinzugefügte Elemente der dynamischen Zusammenstellung
removedElements - Entfernte Elemente der dynamischen Zusammenstellung