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

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
All Implemented Interfaces:
ConfigurationObject, SystemObject, Comparable
Direct Known Subclasses:
ConfigAspect, ConfigAttribute, ConfigAttributeGroupUsage, ConfigAttributeSet, ConfigAttributeType, ConfigConfigurationArea, ConfigConfigurationAuthority, ConfigDavApplication, ConfigIntegerValueRange, ConfigIntegerValueState, ConfigObjectSet, ConfigObjectSetUse, ConfigSystemObjectType

public class ConfigConfigurationObject
extends ConfigSystemObject
implements ConfigurationObject

Implementierung des Interfaces ConfigurationObject auf Seiten der Konfiguration.

Author:
Kappich Systemberatung

Nested Class Summary
private static class ConfigConfigurationObject.Modification
          Ein Enum zur Unterscheidung von Löschen und Wiederbeleben von Konfigurationsobjekten.
 
Field Summary
private static Debug _debug
          DebugLogger für Debug-Ausgaben
private  Object _lockObject
          Wird genutzt um den Zugriff auf das Objekt _sets zu synchronisieren.
private  Map<String,ObjectSet> _sets
          Speichert die Mengen dieses Objekts.
 
Fields inherited from class de.bsvrz.puk.config.configFile.datamodel.ConfigSystemObject
_systemObjectInfo
 
Constructor Summary
ConfigConfigurationObject(ConfigurationArea configurationArea, SystemObjectInformationInterface systemObjectInfo)
          Konstruktor für ein KonfigurationsObjekt.
 
Method Summary
 void addSet(ObjectSet set)
           
(package private)  SystemObject directDuplicate(ConfigurationObject object, ConfigurationObject duplicatedObject, Map<String,String> substitudePids)
          Diese Methode erhält ein KonfigurationsObjekt und gibt ein Duplikat zurück.
(package private)  void directModification(ConfigConfigurationObject.Modification mod)
          Löscht oder wiederbelebt das Objekt ohne zu prüfen, ob der Konfigurationsverantwortliche das Objekt ändern darf und unabhängig davon, ob es sich um ein freies Objekt handelt.
 SystemObject duplicate()
           
 SystemObject duplicate(Map<String,String> substitudePids)
           
private  void duplicateDependentObjects(Data data, Map<String,String> substitudePids)
          Objekte, die via Komposition referenziert werden, werden dupliziert.
 MutableSet getMutableSet(String name)
           
 NonMutableSet getNonMutableSet(String name)
           
 short getNotValidSince()
           
 ObjectSet getObjectSet(String name)
           
private  Map<String,ObjectSet> getObjectSetMap()
          Ermittelt die Mengen dieses Konfigurationsobjekts und speichert sie in einer Map.
 List<ObjectSet> getObjectSets()
           
 short getValidSince()
           
 void invalidate()
           
private  boolean isFreeObject()
          Ermittelt, ob dieses Objekt ein freies Objekt ist.
private  boolean isObjectDependsOnDataset(Data data)
          Prüft, ob in dem angegebenen Datensatz eine Referenz mittels Komposition auf dieses Objekt verweist.
 boolean isValid()
           
private  void modifyDependentObjects(Data data, ConfigConfigurationObject.Modification mod)
          Objekte, die via Komposition referenziert werden, werden auf ungültig gesetzt.
 void removeSet(ObjectSet set)
           
 void revalidate()
           
private  void setConfigurationData(Collection<ObjectSet> sets)
          Speichert den konfigurierenden Datensatz, der die Mengen enthält, am Objekt und gibt dem Konfigurationsbereich Bescheid, dass sich ein Datensatz geändert hat.
 void simpleRevalidate()
           
 
Methods inherited from class de.bsvrz.puk.config.configFile.datamodel.ConfigSystemObject
checkChangePermit, createConfigurationData, equals, getConfigurationData, getConfigurationData, getConfigurationData, getConfigurationData, getConfigurationData, getConfigurationDataBytes, getId, getName, getPid, getSerializerVersion, getType, getUsedAttributeGroupUsages, hashCode, removeConfigurationData, setConfigurationData, setConfigurationData, setName, simpleInvalidation
 
Methods inherited from class de.bsvrz.puk.config.configFile.datamodel.AbstractConfigSystemObject
compareTo, getConfigurationArea, getConfigurationData, getDataModel, getInfo, getNameOrPidOrId, getPidOrId, getPidOrNameOrId, isOfType, isOfType, setConfigurationData, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface de.bsvrz.dav.daf.main.config.SystemObject
getConfigurationArea, getConfigurationData, getConfigurationData, getConfigurationData, getDataModel, getId, getInfo, getName, getNameOrPidOrId, getPid, getPidOrId, getPidOrNameOrId, getType, getUsedAttributeGroupUsages, isOfType, isOfType, setConfigurationData, setConfigurationData, setConfigurationData, setName, toString
 
Methods inherited from interface java.lang.Comparable
compareTo
 

Field Detail

_debug

private static final Debug _debug
DebugLogger für Debug-Ausgaben


_lockObject

private final Object _lockObject
Wird genutzt um den Zugriff auf das Objekt _sets zu synchronisieren.


_sets

private Map<String,ObjectSet> _sets
Speichert die Mengen dieses Objekts.

Constructor Detail

ConfigConfigurationObject

public ConfigConfigurationObject(ConfigurationArea configurationArea,
                                 SystemObjectInformationInterface systemObjectInfo)
Konstruktor für ein KonfigurationsObjekt.

Parameters:
configurationArea - der Konfigurationsbereich dieses KonfigurationsObjekts
systemObjectInfo - das korrespondierende Objekt für die Dateioperationen dieses KonfigurationsObjekts
Method Detail

getValidSince

public short getValidSince()
Specified by:
getValidSince in interface ConfigurationObject

getNotValidSince

public short getNotValidSince()
Specified by:
getNotValidSince in interface ConfigurationObject

isValid

public boolean isValid()
Specified by:
isValid in interface SystemObject

invalidate

public void invalidate()
                throws ConfigurationChangeException
Specified by:
invalidate in interface SystemObject
Overrides:
invalidate in class ConfigSystemObject
Throws:
ConfigurationChangeException

directModification

void directModification(ConfigConfigurationObject.Modification mod)
Löscht oder wiederbelebt das Objekt ohne zu prüfen, ob der Konfigurationsverantwortliche das Objekt ändern darf und unabhängig davon, ob es sich um ein freies Objekt handelt.

Parameters:
mod - gibt an, ob die Objekt-Einheit gelöscht oder wiederbelebt werden soll

modifyDependentObjects

private void modifyDependentObjects(Data data,
                                    ConfigConfigurationObject.Modification mod)
Objekte, die via Komposition referenziert werden, werden auf ungültig gesetzt.

Parameters:
data - der zu prüfende Datensatz
mod - gibt an, ob die Objekt-Einheit gelöscht, wiederbelebt oder dupliziert werden soll

isFreeObject

private boolean isFreeObject()
                      throws ConfigurationChangeException
Ermittelt, ob dieses Objekt ein freies Objekt ist. Ein freies Objekt ist ein Objekt, welches nicht Komponente eines anderen übergeordneten Objekts ist.

Returns:
true, wenn dieses Objekt ein freies Objekt ist, sonst false
Throws:
ConfigurationChangeException - Nicht mehr gültige Objekte, können nicht geprüft werden, ob sie freie Objekte sind.

isObjectDependsOnDataset

private boolean isObjectDependsOnDataset(Data data)
Prüft, ob in dem angegebenen Datensatz eine Referenz mittels Komposition auf dieses Objekt verweist.

Parameters:
data - zu prüfenden Datensatz
Returns:
true, wenn es eine Referenz mittels Komposition auf dieses Objekt gibt, sonst false

revalidate

public void revalidate()
                throws ConfigurationChangeException
Specified by:
revalidate in interface ConfigurationObject
Throws:
ConfigurationChangeException

simpleRevalidate

public void simpleRevalidate()

duplicate

public SystemObject duplicate()
                       throws ConfigurationChangeException
Specified by:
duplicate in interface ConfigurationObject
Throws:
ConfigurationChangeException

duplicate

public SystemObject duplicate(Map<String,String> substitudePids)
                       throws ConfigurationChangeException
Specified by:
duplicate in interface ConfigurationObject
Throws:
ConfigurationChangeException

directDuplicate

SystemObject directDuplicate(ConfigurationObject object,
                             ConfigurationObject duplicatedObject,
                             Map<String,String> substitudePids)
                       throws ConfigurationChangeException
Diese Methode erhält ein KonfigurationsObjekt und gibt ein Duplikat zurück.

Parameters:
object - zu duplizierendes KonfigurationsObjekt
duplicatedObject - dupliziertes Objekt oder null, falls es noch dupliziert werden soll
substitudePids - Map, die die Wert-Paare (altePid, neuePid) enthält.
Returns:
Duplikat
Throws:
ConfigurationChangeException - Falls das Objekt nicht dupliziert werden konnte.

duplicateDependentObjects

private void duplicateDependentObjects(Data data,
                                       Map<String,String> substitudePids)
                                throws ConfigurationChangeException
Objekte, die via Komposition referenziert werden, werden dupliziert.

Parameters:
data - der zu duplizierende Datensatz
substitudePids - Map, die die Wert-Paare (altePid, neuePid) enthält.
Throws:
ConfigurationChangeException - Falls ein via Komposition referenziertes Objekt nicht dupliziert werden konnte.

getMutableSet

public MutableSet getMutableSet(String name)
Specified by:
getMutableSet in interface ConfigurationObject

getNonMutableSet

public NonMutableSet getNonMutableSet(String name)
Specified by:
getNonMutableSet in interface ConfigurationObject

getObjectSet

public ObjectSet getObjectSet(String name)
Specified by:
getObjectSet in interface ConfigurationObject

getObjectSetMap

private Map<String,ObjectSet> getObjectSetMap()
Ermittelt die Mengen dieses Konfigurationsobjekts und speichert sie in einer Map.

Returns:
die Mengen dieses Konfigurationsobjekts

getObjectSets

public List<ObjectSet> getObjectSets()
Specified by:
getObjectSets in interface ConfigurationObject

addSet

public void addSet(ObjectSet set)
            throws ConfigurationChangeException
Specified by:
addSet in interface ConfigurationObject
Throws:
ConfigurationChangeException

removeSet

public void removeSet(ObjectSet set)
               throws ConfigurationChangeException
Specified by:
removeSet in interface ConfigurationObject
Throws:
ConfigurationChangeException

setConfigurationData

private void setConfigurationData(Collection<ObjectSet> sets)
                           throws ConfigurationChangeException
Speichert den konfigurierenden Datensatz, der die Mengen enthält, am Objekt und gibt dem Konfigurationsbereich Bescheid, dass sich ein Datensatz geändert hat.

Parameters:
sets - Die Mengen, die in einem Datensatz gespeichert werden sollen.
Throws:
ConfigurationChangeException - Falls der konfigurierende Datensatz nicht gespeichert werden konnte.