de.bsvrz.puk.config.configFile.fileaccess
Class ConfigurationObjectInformation

java.lang.Object
  extended by de.bsvrz.puk.config.configFile.fileaccess.SystemObjectInformation
      extended by de.bsvrz.puk.config.configFile.fileaccess.ConfigurationObjectInformation
All Implemented Interfaces:
ConfigurationObjectInfo, SystemObjectInformationInterface

public class ConfigurationObjectInformation
extends SystemObjectInformation
implements ConfigurationObjectInfo

Dieses Objekt stellt alle Informationen zur Verfügung, die für ein Konfigurationsobjekt relevant sind. Die Methoden sind Thread-sicher.

Falls das Objekt in eine Datei geschrieben werden soll, sollte das Objekt zum synchronisieren benutzt werden. Dies verhindert, dass sich das Objekt während des Schreibvorgangs verändert, lesende Zugriffe sind weiterhin möglich.

Author:
Kappich+Kniß Systemberatung Aachen (K2S), Achim Wullenkord (AW)

Constructor Summary
ConfigurationObjectInformation(ConfigAreaFile configAreaFile, long id, String pid, long typeId, String name, short firstValidVersion, boolean saveModifications)
          Der Zeitpunkt, wann das Objekt ungültig wird, wird automatisch auf 0 gesetzt
ConfigurationObjectInformation(long id, String pid, long typeId, String name, short firstValidVersion, short firstInvalidVersion, ConfigAreaFile configAreaFile, boolean saveModifications)
           
 
Method Summary
 void addObjectSetId(long setId)
          Diese Methode fügt eine leere Menge an ein Konfigurationsobjekt hinzu.
 void addObjectSetObject(long setId, long objectId)
          Diese Methode fügt ein Objekt zu einer bestehenden Menge hinzu.
 short getFirstInvalidVersion()
          Gibt die Version zurück, mit der das Objekt ungültig wird.
 short getFirstValidVersion()
          Diese Methode gibt an, mit welcher Version des Konfigurationsbereichs das Konfigurationsobjekt gültig werden soll/sollte.
 long getLastFilePosition()
           
 long[] getObjectSetIds()
          Diese Methode gibt die Id´s aller Mengen zurück, die an dem Konfigurationsobjekt gespeichert sind.
 long[] getObjectSetObjects(long setId)
          Diese Methode gibt zu einer Menge, die zu diesem Konfigurationsobjekt gehört, alle Id´s der jeweiligen Objekte zurück, die sich in der Menge befinden.
 void invalidate()
          Das Konfigurationsobjekt wird mit der nächsten Version des Konfigurationsbereichs ungültig.
 void revalidate()
          Solange der Konfigurationsbereich noch nicht in eine neue Version überführt wurde, kann ein Konfigurationsobjekt, welches auf ungültig gesetzt wurde, mit dieser Methode wieder auf gültig gesetzt werden.
 void saveObjectModifications()
          Diese Methode wird aufgerufen, wenn ein Objekt aus der Datei eingeladen wurde und im Konstruktor saveModifications == true übergeben wurde.
 void setLastFilePosition(long lastFilePosition)
           
 String toString()
           
 
Methods inherited from class de.bsvrz.puk.config.configFile.fileaccess.SystemObjectInformation
equals, getConfigurationAreaFile, getConfigurationData, getConfigurationsDataAttributeGroupUsageIds, getID, getName, getPid, getReference, getTypeId, hashCode, removeConfigurationData, saveObjectModificationsSystemObject, setConfigurationData, setName, setReference
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface de.bsvrz.puk.config.configFile.fileaccess.SystemObjectInformationInterface
getConfigurationData, getConfigurationsDataAttributeGroupUsageIds, getID, getName, getPid, getTypeId, removeConfigurationData, setConfigurationData, setName
 

Constructor Detail

ConfigurationObjectInformation

public ConfigurationObjectInformation(ConfigAreaFile configAreaFile,
                                      long id,
                                      String pid,
                                      long typeId,
                                      String name,
                                      short firstValidVersion,
                                      boolean saveModifications)
Der Zeitpunkt, wann das Objekt ungültig wird, wird automatisch auf 0 gesetzt

Parameters:
configAreaFile - der Konfigurationsbereich
id - Id des Objekts
pid - Pid des Objekts
typeId - Typ des Objekts, dieser wird über die Id des Typs identifiziert
name - Name des Objekts, null wird als "" interpretiert
firstValidVersion - Version, mit der das Objekt gütlig wird
saveModifications - true = Das Objekt wird angelegt und in die Datei des Konfigurationsbereichs später gespeichert, werden Änderungen vorgenommen (Datensätze geändert, usw), so werden die Änderungen gespeichert; false = Das Objekt wird angelegt und nicht gespeichert (beim laden des Objekts aus der Datei wäre dies sinnvoll), acuh Modifikationen am Objekt werden nicht gespeichert, damit gespeichert wird muss saveObjectModifications() aufgerufen werden

ConfigurationObjectInformation

public ConfigurationObjectInformation(long id,
                                      String pid,
                                      long typeId,
                                      String name,
                                      short firstValidVersion,
                                      short firstInvalidVersion,
                                      ConfigAreaFile configAreaFile,
                                      boolean saveModifications)
Parameters:
id - Id des Objekts
pid - Pid des Objekts
typeId - Typ des Objekts, dieser wird über die Id des Typs identifiziert
name - Name des Objekts, null wird als "" interpretiert
firstValidVersion - Version, mit der das Objekt gütlig wird
firstInvalidVersion - Version, mit der das Objekt ungütlig wird
configAreaFile - der Konfigurationsbereich
saveModifications - true = Das Objekt wird angelegt und in die Datei des Konfigurationsbereichs später gespeichert, werden Änderungen vorgenommen (Datensätze geändert, usw), so werden die Änderungen gespeichert; false = Das Objekt wird angelegt und nicht gespeichert (beim laden des Objekts aus der Datei wäre dies sinnvoll), acuh Modifikationen am Objekt werden nicht gespeichert, damit gespeichert wird muss saveObjectModifications() aufgerufen werden
Method Detail

saveObjectModifications

public void saveObjectModifications()
Diese Methode wird aufgerufen, wenn ein Objekt aus der Datei eingeladen wurde und im Konstruktor saveModifications == true übergeben wurde. Nach Aufruf dieser Methode, werden alle Änderungen wieder gespeichert. Wurde also saveModifications == true gesetzt, so muss diese MEthode aufgerufen werden, damit neue Änderungen gespeichert werden.


getFirstValidVersion

public short getFirstValidVersion()
Description copied from interface: ConfigurationObjectInfo
Diese Methode gibt an, mit welcher Version des Konfigurationsbereichs das Konfigurationsobjekt gültig werden soll/sollte.

Specified by:
getFirstValidVersion in interface ConfigurationObjectInfo
Returns:
s.o

getFirstInvalidVersion

public short getFirstInvalidVersion()
Gibt die Version zurück, mit der das Objekt ungültig wird. Der Zugriff ist synchonisiert, weil zum Zeitpunkt des Zugriffs, das Objekt gerade gesetzt werden könnte.

Specified by:
getFirstInvalidVersion in interface ConfigurationObjectInfo
Returns:
Version, mit der das Objekt ungültig wird

invalidate

public void invalidate()
Das Konfigurationsobjekt wird mit der nächsten Version des Konfigurationsbereichs ungültig. Diese Objekte müssen nicht sofort gespeichert werden, da sie bis zum beenden der Konfiguration im Speicher bleiben.

War das Objekt noch nicht gültig, so wird es direkt gelöscht.

Specified by:
invalidate in interface ConfigurationObjectInfo
See Also:
revalidate()

revalidate

public void revalidate()
Solange der Konfigurationsbereich noch nicht in eine neue Version überführt wurde, kann ein Konfigurationsobjekt, welches auf ungültig gesetzt wurde, mit dieser Methode wieder auf gültig gesetzt werden.

Specified by:
revalidate in interface ConfigurationObjectInfo
See Also:
invalidate()

getObjectSetIds

public long[] getObjectSetIds()
Description copied from interface: ConfigurationObjectInfo
Diese Methode gibt die Id´s aller Mengen zurück, die an dem Konfigurationsobjekt gespeichert sind.

Specified by:
getObjectSetIds in interface ConfigurationObjectInfo
Returns:
s.o.

addObjectSetId

public void addObjectSetId(long setId)
                    throws IllegalStateException
Description copied from interface: ConfigurationObjectInfo
Diese Methode fügt eine leere Menge an ein Konfigurationsobjekt hinzu.

Specified by:
addObjectSetId in interface ConfigurationObjectInfo
Parameters:
setId - Id der Menge, die zu dem Konfigurationsobjekt hinzugefügt werden soll
Throws:
IllegalStateException - Eine Menge mit der Id existiert bereits an diesem Objekt

getObjectSetObjects

public long[] getObjectSetObjects(long setId)
Description copied from interface: ConfigurationObjectInfo
Diese Methode gibt zu einer Menge, die zu diesem Konfigurationsobjekt gehört, alle Id´s der jeweiligen Objekte zurück, die sich in der Menge befinden.

Specified by:
getObjectSetObjects in interface ConfigurationObjectInfo
Parameters:
setId - Menge, die zu dem Konigurationsobjekt gehört
Returns:
Objekte, die in der Menge gespeichert sind, die mit der setId identifiziert wurde

addObjectSetObject

public void addObjectSetObject(long setId,
                               long objectId)
                        throws IllegalArgumentException,
                               IllegalStateException
Description copied from interface: ConfigurationObjectInfo
Diese Methode fügt ein Objekt zu einer bestehenden Menge hinzu. Die Menge wird über die Id identifiziert.

Specified by:
addObjectSetObject in interface ConfigurationObjectInfo
Parameters:
setId - Menge, zu der das Objekt hinzugefügt werden soll
objectId - Objekt, das zu der Menge hinzugefügt werden soll
Throws:
IllegalArgumentException - Die Menge existiert nicht an dem Konfigurationsobjekt
IllegalStateException - Ein Objekt mit der Id existiert bereits in der Menge

getLastFilePosition

public long getLastFilePosition()

setLastFilePosition

public void setLastFilePosition(long lastFilePosition)

toString

public String toString()
Overrides:
toString in class SystemObjectInformation