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

java.lang.Object
  extended by de.bsvrz.puk.config.configFile.datamodel.AbstractConfigSystemObject
      extended by de.bsvrz.puk.config.configFile.datamodel.ConfigSystemObject
          extended by de.bsvrz.puk.config.configFile.datamodel.ConfigConfigurationObject
              extended by de.bsvrz.puk.config.configFile.datamodel.ConfigConfigurationArea
All Implemented Interfaces:
ConfigurationArea, ConfigurationObject, SystemObject, ConfigConfigurationAreaInterface, Comparable

public class ConfigConfigurationArea
extends ConfigConfigurationObject
implements ConfigurationArea, ConfigConfigurationAreaInterface

Implementierung des Konfigurationsbereichs auf Seiten der Konfiguration.

Author:
Kappich Systemberatung

Constructor Summary
ConfigConfigurationArea(DataModel dataModel, SystemObjectInformationInterface systemObjectInfo)
          Konstruktor eines System-Objekt für einen Konfigurationsbereich.
 
Method Summary
 void addAreaDependency(Collection<ConfigurationAreaDependency> areaDependencies)
          Speichert eine Abhängigkeit dieses Bereichs.
 ConfigurationObject createConfigurationObject(ConfigurationObjectType type, String pid, String name, List<ObjectSet> sets)
           
 DynamicObject createDynamicObject(DynamicObjectType type, String pid, String name)
           
 DynamicObject createDynamicObject(DynamicObjectType type, String pid, String name, Collection<DataAndATGUsageInformation> data)
           
 DynamicObject createDynamicObject(DynamicObjectType type, String pid, String name, Collection<DataAndATGUsageInformation> data, short simulationVariant)
          Erzeugt ein neues dynamisches System-Objekt eines vorgegebenen Typs mit einer angegebenen PID.
 DynamicObject createDynamicObject(DynamicObjectType type, String pid, String name, short simulationVariant)
          Erzeugt ein neues dynamisches System-Objekt eines vorgegebenen Typs mit einer angegebenen PID.
 boolean dependenciesChecked()
           
 short getActivatableVersion()
           
 short getActiveVersion()
           
 Collection<ConfigurationAreaChangeInformation> getChangeLogs()
          Diese Methode gibt alle eingetragenen Konfigurationsänderungen zurück, die in der Versorgungsdatei eingetragen wurden.
 ConfigurationArea getConfigurationArea()
           
 ConfigurationAuthority getConfigurationAuthority()
           
 Collection<SystemObject> getCurrentObjects()
           
 DataModel getDataModel()
           
 Collection<ConfigurationAreaDependency> getDependencyFromOtherConfigurationAreas()
          Gibt alle Abhängigkeiten des Bereichs zu anderen Konfigurationsbereichen zurück.
 Collection<SystemObject> getDirectObjects(Collection<SystemObjectType> systemObjectTypes, ObjectTimeSpecification timeSpecification)
           
 short getLastModifiedVersion()
          Gibt die in Bearbeitung befindliche Version zurück, wenn Änderungen in dieser Version dieses Bereichs stattgefunden haben.
 short getModifiableVersion()
           
 Collection<SystemObject> getNewObjects()
           
 Collection<SystemObject> getObjects(Collection<SystemObjectType> systemObjectTypes, ObjectTimeSpecification timeSpecification)
           
 long getTimeOfLastActiveConfigurationChange()
           
 long getTimeOfLastDynamicChange()
           
 long getTimeOfLastNonActiveConfigurationChange()
           
 short getTransferableVersion()
           
 void initialiseTimeOfLastChanges()
          Prüft, ob es einen Wert im Datensatz atg.konfigurationsBereichÄnderungsZeiten gibt, der Undefiniert (0) ist, und ersetzt diesen mit der aktuellen Zeit.
 
Methods inherited from class de.bsvrz.puk.config.configFile.datamodel.ConfigConfigurationObject
addSet, duplicate, duplicate, getMutableSet, getNonMutableSet, getNotValidSince, getObjectSet, getObjectSets, getValidSince, invalidate, isValid, removeSet, revalidate, simpleRevalidate
 
Methods inherited from class de.bsvrz.puk.config.configFile.datamodel.ConfigSystemObject
createConfigurationData, equals, getConfigurationData, getConfigurationData, getConfigurationData, getConfigurationData, getConfigurationData, getConfigurationDataBytes, getId, getName, getPid, getType, getUsedAttributeGroupUsages, hashCode, removeConfigurationData, setConfigurationData, setConfigurationData, setName, simpleInvalidation
 
Methods inherited from class de.bsvrz.puk.config.configFile.datamodel.AbstractConfigSystemObject
compareTo, getConfigurationData, getInfo, getNameOrPidOrId, getPidOrId, getPidOrNameOrId, isOfType, isOfType, setConfigurationData, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ConfigConfigurationArea

public ConfigConfigurationArea(DataModel dataModel,
                               SystemObjectInformationInterface systemObjectInfo)
Konstruktor eines System-Objekt für einen Konfigurationsbereich.

Parameters:
dataModel - das Datenmodell, welches alle Konfigurationsbereiche enthält
systemObjectInfo - das korrespondierende Objekt aus den Konfigurationsdateien
Method Detail

getDataModel

public DataModel getDataModel()
Specified by:
getDataModel in interface SystemObject
Overrides:
getDataModel in class AbstractConfigSystemObject

getConfigurationArea

public ConfigurationArea getConfigurationArea()
Specified by:
getConfigurationArea in interface SystemObject
Overrides:
getConfigurationArea in class AbstractConfigSystemObject

getConfigurationAuthority

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

getActivatableVersion

public short getActivatableVersion()
Specified by:
getActivatableVersion in interface ConfigurationArea

getTransferableVersion

public short getTransferableVersion()
Specified by:
getTransferableVersion in interface ConfigurationArea

getActiveVersion

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

getModifiableVersion

public short getModifiableVersion()
Specified by:
getModifiableVersion in interface ConfigurationArea

getLastModifiedVersion

public short getLastModifiedVersion()
Gibt die in Bearbeitung befindliche Version zurück, wenn Änderungen in dieser Version dieses Bereichs stattgefunden haben. Änderungen können sein:

Wurden keine Änderungen in der in Bearbeitung befindlichen Version vorgenommen, wird die Version davor zurückgegeben.

Returns:
Falls Änderungen in der in Bearbeitung befindlichen Version durchgeführt wurden, wird diese Version zurückgegeben, sonst die Version davor.

getTimeOfLastDynamicChange

public long getTimeOfLastDynamicChange()
Specified by:
getTimeOfLastDynamicChange in interface ConfigurationArea

getTimeOfLastNonActiveConfigurationChange

public long getTimeOfLastNonActiveConfigurationChange()
Specified by:
getTimeOfLastNonActiveConfigurationChange in interface ConfigurationArea

getTimeOfLastActiveConfigurationChange

public long getTimeOfLastActiveConfigurationChange()
Specified by:
getTimeOfLastActiveConfigurationChange in interface ConfigurationArea

getObjects

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

getDirectObjects

public Collection<SystemObject> getDirectObjects(Collection<SystemObjectType> systemObjectTypes,
                                                 ObjectTimeSpecification timeSpecification)
Specified by:
getDirectObjects in interface ConfigurationArea

getCurrentObjects

public Collection<SystemObject> getCurrentObjects()
Specified by:
getCurrentObjects in interface ConfigurationArea

getNewObjects

public Collection<SystemObject> getNewObjects()
Specified by:
getNewObjects in interface ConfigurationArea

createConfigurationObject

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

createDynamicObject

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

createDynamicObject

public DynamicObject createDynamicObject(DynamicObjectType type,
                                         String pid,
                                         String name,
                                         short simulationVariant)
                                  throws ConfigurationChangeException
Erzeugt ein neues dynamisches System-Objekt eines vorgegebenen Typs mit einer angegebenen PID. Optional kann der Name des neuen Objekts vorgegeben werden. Das neue Objekt wird sofort gültig.

Parameters:
type - Typ des neuen Objekts
pid - PID des neuen Objekts. Der leere String ("") oder null wird als "keine PID" interpretiert.
name - Name des neuen Objekts (kann später verändert werden)
simulationVariant - Simulationsvariante des neuen Objekts
Returns:
Stellvertreterobjekt für das neu angelegte dynamische Objekt.
Throws:
ConfigurationChangeException - Wenn das Objekt nicht erzeugt werden konnte.

createDynamicObject

public DynamicObject createDynamicObject(DynamicObjectType type,
                                         String pid,
                                         String name,
                                         Collection<DataAndATGUsageInformation> data)
                                  throws ConfigurationChangeException
Specified by:
createDynamicObject in interface ConfigurationArea
Throws:
ConfigurationChangeException

getDependencyFromOtherConfigurationAreas

public Collection<ConfigurationAreaDependency> getDependencyFromOtherConfigurationAreas()
Description copied from interface: ConfigConfigurationAreaInterface
Gibt alle Abhängigkeiten des Bereichs zu anderen Konfigurationsbereichen zurück.

Specified by:
getDependencyFromOtherConfigurationAreas in interface ConfigConfigurationAreaInterface
Returns:
Abhängigkeiten des Bereich oder eine leere Collection, falls keine Abhängigkeiten bestehen.

addAreaDependency

public void addAreaDependency(Collection<ConfigurationAreaDependency> areaDependencies)
                       throws ConfigurationChangeException
Speichert eine Abhängigkeit dieses Bereichs. Besteht bereits eine Abhängigkeit (gleiche Versionen, gleiche Breiche), so wird die Abhängigkeit nicht erneut gespeichert.

Wurde eine Abhängigkeit gespeichert, die den Typ OPTIONAL ConfigurationAreaDependencyKind und es soll eine Abhängigkeit REQUIRED gespeichert werden, so wird die optionale Abhängigkeit ersetzt. Umgekehrt ist dies nicht möglich.

Ist der Bereich bereits von einem anderen Bereich abhängig (notwendig) und es soll eine Abhängigkeit optional hinzugefügt werden (dessen needed Version > als die notwendige Abhängigkeit), so wird diese Abhängigkeit automatisch auf "notwendig" gesetzt. Damit wird verhindert, das eine Abhängigkeit, die notwendig war, durch Versionswechsel wieder auf optional gesetzt werden kann.

Ist der Konfiguration die Attributgruppe zum speichern der Datensätze nicht bekannt, so die Abhängigkeiten ignoriert und nichts gemacht.

Parameters:
areaDependencies - Abhängigkeiten, die gespeichert werden soll.
Throws:
ConfigurationChangeException - Wird geworfen, wenn der Datensatz, der die Abhängigkeiten enthält, nicht gespeichert werden kann.

dependenciesChecked

public boolean dependenciesChecked()
Specified by:
dependenciesChecked in interface ConfigConfigurationAreaInterface
Returns:
true, wenn der Bereich bereits auf Abhängigkeiten geprüft wurde; false, wenn der Bereich nicht auf Abhängigkeiten geprüft wurde.

getChangeLogs

public Collection<ConfigurationAreaChangeInformation> getChangeLogs()
Diese Methode gibt alle eingetragenen Konfigurationsänderungen zurück, die in der Versorgungsdatei eingetragen wurden.

Returns:
Alle eingetragenen Änderungen oder eine leere Collection, falls keine Einträge gemacht wurden.

createDynamicObject

public DynamicObject createDynamicObject(DynamicObjectType type,
                                         String pid,
                                         String name,
                                         Collection<DataAndATGUsageInformation> data,
                                         short simulationVariant)
                                  throws ConfigurationChangeException
Erzeugt ein neues dynamisches System-Objekt eines vorgegebenen Typs mit einer angegebenen PID. Optional kann der Name des neuen Objekts vorgegeben werden. Das neue Objekt wird sofort gültig. Zusätzlich können alle Datensätze übergeben werden.

Parameters:
type - Typ des neuen Objekts
pid - PID des neuen Objekts. Der leere String ("") oder null wird als "keine PID" interpretiert.
name - Name des neuen Objekts (kann später verändert werden)
data - Datensätze für das dynamische Objekt
simulationVariant - Simulationsvariante des neuen Objekts
Returns:
Stellvertreterobjekt für das neu angelegte dynamische Objekt.
Throws:
ConfigurationChangeException - Wenn das Objekt nicht erzeugt werden konnte.

initialiseTimeOfLastChanges

public void initialiseTimeOfLastChanges()
Prüft, ob es einen Wert im Datensatz atg.konfigurationsBereichÄnderungsZeiten gibt, der Undefiniert (0) ist, und ersetzt diesen mit der aktuellen Zeit.