de.bsvrz.puk.config.main.importexport
Class ConfigurationImport

java.lang.Object
  extended by de.bsvrz.puk.config.main.importexport.ConfigurationImport
All Implemented Interfaces:
ObjectLookup

public class ConfigurationImport
extends Object
implements ObjectLookup

Diese Klasse importiert die Versorgungsdateien in das bestehende Datenmodell. Zu importierende Bereiche dürfen keine Pid mehrmals benutzen.

Author:
Kappich Systemberatung

Nested Class Summary
private  class ConfigurationImport.CheckedObject
          Diese Klasse speichert zu einem bereits bestehenden Objekt, ob es im Konfigurationsbereich beibehalten werden soll, oder nicht.
private  class ConfigurationImport.ImportObject
          Diese Klasse wird nur für den Import benutzt.
 
Field Summary
private  Set<ConfigurationArea> _allImportedConfigurationAreas
          Enthält alle Konfigurationsbereiche, die importiert werden sollen
private  Map<ConfigurationAreaProperties,ConfigurationArea> _areaProperty2ConfigurationArea
          Enthält für jeden importierten Bereich ein Properties-Objekt.
private  Map<ConfigurationArea,Collection<ConfigurationImport.CheckedObject>> _currentObjects
          Diese Map speichert zu einem Konfigurationsbereich, die Objekte, die aktuell gültig sind.
private  DataModel _dataModel
          Das Datenmodell, in welches die Versorgungsdateien importiert werden sollen.
private static Debug _debug
          DebugLogger für Debug-Ausgaben
private  boolean _dissolveReference
          Gibt an, ob noch Referenzen aufgelöst werden sollen, oder nicht.
private  Map<ConfigurationArea,Collection<ConfigurationImport.CheckedObject>> _editingObjects
          Diese Map speichert alle Objekte aus den zu importierenden Konfigurationsbereichen, die sich in Bearbeitung befinden.
private  Map<String,ConfigurationImport.ImportObject> _importMap
          Enthält zu importierende Objekte.
private  Map<ConfigurationArea,Collection<ConfigurationImport.CheckedObject>> _newObjects
          Diese Map speichert alle Objekte, die zukünftig aktuell werden.
private  ComparePropertiesWithSystemObjects _objectDiffs
          Objekt, welches die Import-Eigenschaften mit möglichen konkreten Objekten vergleicht.
private  Set<String> _objectTypesToCreate
          In dieses Set wird die Pid eines Objekt-Typen eingetragen, sobald er erstellt werden soll.
private  Map<ConfigurationArea,Short> _usingVersionOfConfigurationArea
          Zu jedem Konfigurationsbereich wird die Version gespeichert, in der der Bereich betrachtet werden soll.
private  Map<String,SystemObject> _viewingObjects
          Speichert alle Objekte, die betrachtet werden sollen.
 
Constructor Summary
ConfigurationImport(DataModel dataModel, File importPath, Collection<String> pids)
          Der Konstruktor führt den Import der angegebenen Konfigurationsbereiche durch.
 
Method Summary
private  ConfigurationArea assignConfigurationArea(ConfigurationAreaProperties property, ConfigurationControl configurationControl)
          Diese Methode prüft, ob es bereits einen Konfigurationsbereich passend zur Versorgungsdatei (dargestellt durch das Eigenschafts-Objekt) gibt.
private  void checkChangeOfConfigurationAuthority()
          Prüft, ob sich der KV des Bereichs geändert hat.
private  void checkCodingOfConfigurationAuthority(short authorityCoding, String authorityPid)
          Diese Methode prüft, ob die Kodierung des zu verwendenden Konfigurationsverantwortlichen eindeutig ist.
private  void checkConfigurationArea(ConfigurationAreaProperties property, ConfigurationArea configurationArea)
          Der Konfigurationsbereich wird überprüft, ob auch er geändert wurde.
private  void completeAttributeGroup(ConfigurationImport.ImportObject importObject)
          Vervollständigt eine Attributgruppe um die fehlenden konfigurierenden Datensätze.
private  void completeAttributeListDefinition(ConfigurationImport.ImportObject importObject)
          Diese Methode vervollständigt eine Attributliste mit konfigurierenden Datensätzen.
private  void completeAttributeType(ConfigurationImport.ImportObject importObject)
          Vervollständigt den Attribut-Typen um die fehlenden konfigurierenden Datensätze.
private  void completeDefaults(AttributeType attributeType, AttributeTypeProperties property)
          Setzt die Default-Werte an einem Attribut-Typ.
private  void completeDefaults(ConfigurationImport.ImportObject importObject)
          Default-Werte werden an den Objekten vervollständigt.
private  void completeImportObject(ConfigurationImport.ImportObject importObject)
          Diese Methode wird aufgerufen, wenn ein zu importierendes Objekt vervollständigt werden soll.
private  void completeObjectSetType(ConfigurationImport.ImportObject importObject)
          Vervollständigt den Mengen-Typ um noch fehlende konfigurierenden Datensätze.
private  void completeSystemObject(ConfigurationImport.ImportObject importObject)
          System-Objekte erhalten in dieser Methode ihre konfigurierenden Datensätze und Mengen.
private  void completeSystemObjectType(ConfigurationImport.ImportObject importObject)
          Vervollständigt den Objekt-Typ um fehlende konfigurierende Datensätze, die bei der Erstellung des Objekts noch nicht berücksichtigt wurden.
private  ConfigurationArea createConfigurationArea(ConfigurationAreaProperties property, ConfigurationControl configurationControl)
          Diese Methode erstellt einen neuen Konfigurationsbereich.
private  List<SystemObjectType> createSuperTypes(String[] superTypePids)
          Aus einer Liste von Pids von Super-Typen werden System-Objekte von Super-Typen erstellt.
private  SystemObjectType createSystemObjectType(String pid)
          Erstellt einen Objekt-Typen mit der angegebenen Pid, falls es nicht bereits existiert.
private  void deleteNoLongerRequiredObjects()
          In Bearbeitung befindliche Objekte werden überprüft, ob sie nach dem Import nicht mehr benötigt werden.
private  void determineUsingVersionOfConfigurationAreas(ConfigurationControl configurationControl)
          Ermittelt die Version, jedes Konfigurationsbereichs, in der dieser betrachtet werden soll.
private  int existChangeInformation(Data existData, ConfigurationAreaChangeInformation info)
          Ermittelt die Versionsnummer zu einem Änderungsvermerk, der zuvor schon mal gespeichert wurde.
(package private)  void fillData(Data data, DatasetElement[] elements)
          Ein neues Data-Objekt wird mit den Elementen aus der Definition gefüllt.
private  ConfigurationImport.CheckedObject forgetCurrentObject(ConfigurationArea configurationArea, SystemObject object)
          Löscht aus der Liste der aktuellen Objekte eines Bereichs ein gegebenes Objekt, wenn es enthalten ist.
(package private)  Set<ConfigurationArea> getAllImportedConfigurationAreas()
          Gibt alle Konfigurationsbereiche zurück, die gerade importiert werden.
(package private)  AttributeGroupUsage getAttributeGroupUsage(AttributeGroup atg, Aspect asp)
          Gibt die Attributgruppenverwendung zurück, die in der in Bearbeitung befindlichen Version gültig ist.
private  short getAuthorityCoding(ConfigurationConfigurationObject configurationObjectProperties)
          Ermittelt zu einem Konfigurationsobjekt eines Konfigurationsverantwortlichen die Kodierung.
(package private)  Data getConfigurationData(SystemObject object, AttributeGroup atg)
           
(package private)  Data getConfigurationData(SystemObject object, AttributeGroup atg, Aspect asp)
           
(package private)  Data getConfigurationData(SystemObject object, AttributeGroupUsage atgUsage)
           
private  ConfigurationImport.CheckedObject getCurrentObject(ConfigurationArea configurationArea, String pid)
          Gibt zu einem Konfigurationsbereich und einer Pid das aktuelle Objekt zurück, wenn es existiert.
private  ConfigurationImport.CheckedObject getEditingObject(ConfigurationArea configurationArea, String pid)
          Gibt zu einem Konfigurationsbereich und einer Pid das in Bearbeitung befindliche Objekt zurück, wenn es existiert.
private  ConfigurationObject getModifiableObject(ConfigurationArea area, String pid)
          Ermittelt zu einer Pid ein in Bearbeitung befindliches Objekt, löscht es aus der entsprechenden Liste, damit es nicht nochmal betrachtet wird und gibt es zurück.
private  ConfigurationImport.CheckedObject getNewObject(ConfigurationArea configurationArea, String pid)
          Gibt zu einem Konfigurationsbereich und einer Pid das zur Übernahme oder Aktivierung freigegebene Objekt zurück, wenn es existiert.
 SystemObject getObject(long id)
           
 SystemObject getObject(String pid)
          Diese Methode gibt anhand der angegebenen Pid ein Objekt aus dem Datenmodell oder aus den Import-Versorgungsdateien zurück.
(package private)  Collection<ObjectSetUse> getObjectSetUses(SystemObjectType systemObjectType)
          Diese Methode ermittelt anhand eines Objekt-Typen seine sämtlichen Mengenverwendungen.
(package private)  DynamicObjectType.PersistenceMode getSuperTypePersistenceMode(List<SystemObjectType> superTypes)
          Diese Methode ermittelt anhand der Super-Typen den gemeinsamen Persistenz-Modus.
private  Map<String,SystemObject> getUsingObjects()
          Ermittelt zu allen Konfigurationsbereichen, die Objekte, die in der zu betrachtenden Version gültig sind.
private  void handleAspect(ConfigurationImport.ImportObject importObject)
          Überarbeitet das übergebene System-Objekt.
private  void handleAttributeGroup(ConfigurationImport.ImportObject importObject)
          Erstellt aus einem Property-Objekt (welches einem Eintrag in der Versorgungsdatei entspricht) eine Attributgruppe oder verändert eine bestehende Attributgruppe so, dass es der Import-Definition entspricht und gibt diese zurück.
private  void handleAttributeListDefinition(ConfigurationImport.ImportObject importObject)
          Erstellt aus einem Eintrag in der Versorgungsdatei eine Attributliste, oder verändert ein bestehendes System-Objekt, so dass es mit der Definition übereinstimmt.
private  void handleAttributeType(ConfigurationImport.ImportObject importObject)
          Erstellt aus einem Property-Objekt (welches einem Eintrag in der Versorgungsdatei entspricht) einen AttributTypen, oder verändert ein bestehendes System-Objekt, so dass es mit der Definition übereinstimmt.
private  void handleImportObject(ConfigurationImport.ImportObject importObject)
          Diese Methode prüft, ob es bereits ein passendes Objekt zu einer zu importierenden Definition gibt und verwendet dieses.
private  IntegerValueRange handleIntegerValueRange(ConfigurationArea configurationArea, ConfigurationValueRange valueRange, IntegerValueRange integerValueRange)
          Erstellt den Wertebereich einer Ganzzahl, oder überarbeitet ein bestehendes Bereichs-Objekt und gibt es zurück.
private  void handleObject(ConfigurationImport.CheckedObject checkedObject, ConfigurationImport.ImportObject importObject)
          Ermittelt anhand des Eigenschafts-Objekts, welche Methode aufgerufen werden muss, damit das System-Objekt weiterverarbeitet bzw.
private  void handleObjectSetType(ConfigurationImport.ImportObject importObject)
          Erstellt aus einem Eigenschafts-Objekt einen Mengen-Typ oder verändert ein bestehenden Mengen-Typen so, dass er mit der Import-Definition übereinstimmt.
private  void handleSystemObject(ConfigurationImport.ImportObject importObject)
          Erstellt aus einem Eigenschafts-Objekt ein System-Objekt oder verändert ein bereits bestehendes System-Objekt.
private  void handleSystemObjectType(ConfigurationImport.ImportObject importObject)
          Erstellt aus einem Eigenschafts-Objekt einen Objekt-Typen oder verändert einen bestehenden Objekt-Typen so, dass er mit der Import-Definition übereinstimmt.
private  void handleSystemObjectTypeSuperTypes(ConfigurationArea configurationArea, SystemObjectType systemObjectType, List<SystemObjectType> superTypes)
          Erstellt eine Menge mit Super-Typen für einen Objekt-Typen oder verändert eine bestehende Menge.
private  void invalidateNoLongerRequiredObjects()
          Aktuelle und freigegebene Objekte werden überprüft, ob sie nach dem Import weiterhin gebraucht werden.
private  boolean isDynamicType(List<SystemObjectType> superTypes)
          Diese Methode prüft, ob die Super-Typen alle dynamisch oder konfigurierend sind.
private  void printData(Data data)
          Hilfsmethode, die einen Datensatz ausgibt.
private  void readExistingObjects(ConfigurationArea configurationArea)
          Liest alle aktuellen und zur Aktivierung/Übernahme freigegebenen Objekte aus dem Konfigurationsbereich aus und merkt sich diese lokal.
private  void setAttributeGroupUsageProperties(AttributeGroupUsage atgUsage, AttributeGroup attributeGroup, Aspect aspect, AttributeGroupUsage.Usage usage, boolean isExplicitDefined)
          Speichert die Eigenschaften einer Attributgruppenverwendung an der angegebenen Verwendung ab.
private  void setAttributeGroupUsagesObjectSet(ConfigurationArea configurationArea, AttributeGroup atg, AttributeGroupProperties property)
          Erstellt anhand der Attributgruppe und der Eigenschaften eine Menge mit den Attributgruppenverwendungen, wenn es sie noch nicht gibt.
private  void setAttributeObjectSet(ConfigurationArea configurationArea, ConfigurationObject object, AttributeProperties[] configurationAttributes)
          Speichert die Attribute eines Konfigurationsobjekts in einer Menge names "Attribute" an diesem Konfigurationsobjekt ab.
private  void setAttributeProperties(Attribute attribute, short position, int maxCount, boolean isCountVariable, AttributeType attributeType)
          Speichert Informationen (z.B.
private  void setConfigurationAreaChangeInformation(ConfigurationAreaChangeInformation[] configurationAreaChangeInformation, ConfigurationArea configurationArea)
          Erzeugt einen Datensatz mit den Konfigurationsänderungen aus der Versorgungsdatei und speichert diesen am Konfigurationsbereich ab.
private  void setConfigurationAreaChangeInformation(ConfigurationAreaProperties property, ConfigurationArea configurationArea)
          Setzt die KonfigurationsÄnderungen an einem Konfigurationsbereich.
private  void setDefault(SystemObject systemObject, String aDefault)
          Der Default-Wert wird am angegebenen System-Objekt gesetzt.
private  void setDefaultParameterDataset(ConfigurationDefaultParameter[] defaultParameters, SystemObject systemObject)
           
private  void setDoubleAttributeTypeProperties(DoubleAttributeType attributeType, ConfigurationDoubleDef def)
          Speichert die Eigenschaften einer Fließkommazahl als konfigurierenden Datensatz.
private  void setDynamicObjectTypePersistenceMode(DynamicObjectType dynamicObjectType, DynamicObjectType.PersistenceMode persistenceMode)
          Speichert den Persistenz-Modus als konfigurierenden Datensatz am dynamischen Objekt-Typ.
private  void setInfo(SystemObject systemObject, SystemObjectInfo info)
          Speichert die Info als konfigurierenden Datensatz an einem Objekt.
private  void setIntegerAttributeTypeProperties(IntegerAttributeType attributeType, IntegerValueRange valueRange, int bitCount)
          Speichert die Eigenschaften des Ganzzahl-AttributTyps als konfigurierenden Datensatz.
private  void setIntegerValueRangeProperties(IntegerValueRange range, ConfigurationValueRange valueRange)
          Speichert die Eigenschaften des Ganzzahl-Wertebereichs als konfigurierenden Datensatz.
private  void setIntegerValueStateProperties(IntegerValueState valueState, ConfigurationState state)
          Speichert die Eigenschaften des Ganzzahl-Werte-Zustands als konfigurierenden Datensatz.
private  void setObjectSetTypeEmptySets(ConfigurationArea configurationArea, ObjectSetType objectSetType)
          Die Mengen 'Attributgruppen' und 'Mengen' müssen an einer Mengendefinition vorhanden sein, obwohl in der Versorgungsdatei keine Elemente vorhanden sind.
private  void setObjectSetTypeObjectTypes(ConfigurationArea configurationArea, ObjectSetType objectSetType, String[] elements)
          Speichert die Menge der Objekt-Typen am Mengen-Typ ab.
private  void setObjectSetTypeProperties(ObjectSetType objectSetType, ObjectSetTypeProperties property)
          Speichert die Eigenschaften eines Mengen-Typs als konfigurierenden Datensatz am Mengen-Typ ab.
private  void setObjectSetTypeSuperTypeSet(ConfigurationArea configurationArea, ObjectSetType objectSetType)
          Die Menge SuperTypen muss an einer Mengendefinition vorhanden sein.
private  void setObjectSetUseProperties(ObjectSetUse objectSetUse, ConfigurationSet configurationSet)
          Speichert die Eigenschaften einer Mengenverwendung an einer Mengenverwendung als konfigurierenden Datensatz ab.
private  void setReferenceAttributeTypeProperties(ReferenceAttributeType attributeType, ConfigurationObjectReference reference)
          Speichert die Eigenschaften eines Referenz-Attribut-Typs als konfigurierenden Datensatz.
private  void setStringAttributeTypeProperties(StringAttributeType attributeType, ConfigurationString configurationString)
          Speichert die Eigenschaften des Zeichenketten-AttributTyps als konfigurierenden Datensatz.
private  void setSystemObjectKeeping(SystemObject systemObject)
          Setzt die Markierung, ob ein System-Objekt beibehalten werden soll.
private  void setSystemObjectTypeAttributeGroups(ConfigurationArea configurationArea, SystemObjectType systemObjectType, Object[] atgAndSet)
          Speichert die direkten Attributgruppen und Mengenverwendungen als Mengen am Objekt-Typ ab.
private  void setSystemObjectTypeProperties(SystemObjectType objectType, boolean isConfigurating, boolean isNamePermanent)
          Speichert die Eigenschaften des Objekt-Typs als konfigurierenden Datensatz ab.
private  void setTimeAttributeTypeProperties(TimeAttributeType attributeType, ConfigurationTimeStamp stamp)
          Speichert die Eigenschaften eines Zeit-Attribut-Typs als konfigurierenden Datensatz.
private  void throwNoObjectException(String pid)
          Wirft eine IllegalStateException.
private  void unsetSystemObjectKeeping()
          Setzt alle Markierung, ob ein Objekt beibehalten werden soll, wieder zurück.
private  void validateRequiredObjects()
          Aktuelle Objekte und Objekte, die zur Übernahme / Aktivierung freigegeben wurden werden geprüft, ob sie bei einem vorhergehenden Import auf ungültig gesetzt wurden, nach diesem Import aber benötigt werden.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_debug

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


_dataModel

private DataModel _dataModel
Das Datenmodell, in welches die Versorgungsdateien importiert werden sollen. Hierüber werden auch auf Modelldaten des MetaModells zugegriffen.


_objectDiffs

private final ComparePropertiesWithSystemObjects _objectDiffs
Objekt, welches die Import-Eigenschaften mit möglichen konkreten Objekten vergleicht. Dabei wird auch ermittelt, ob das Objekt geändert werden kann, wenn die Eigenschaften nicht übereinstimmen.


_importMap

private final Map<String,ConfigurationImport.ImportObject> _importMap
Enthält zu importierende Objekte. Diese Map speichert zu einer Pid ein sogenanntes ImportObject, welches Referenzen auf ein SystemObjectProperties und auf ein SystemObject enthält.


_currentObjects

private final Map<ConfigurationArea,Collection<ConfigurationImport.CheckedObject>> _currentObjects
Diese Map speichert zu einem Konfigurationsbereich, die Objekte, die aktuell gültig sind. Diese Map wird benötigt, um am Ende des Imports herauszubekommen, welche Objekte auf ungültig gesetzt werden müssen.


_newObjects

private final Map<ConfigurationArea,Collection<ConfigurationImport.CheckedObject>> _newObjects
Diese Map speichert alle Objekte, die zukünftig aktuell werden. Sie wurden bereits zur Übernahme oder zur Aktivierung freigegeben. Diese Objekte dürfen nur in begrenztem Maße modifiziert werden.


_editingObjects

private final Map<ConfigurationArea,Collection<ConfigurationImport.CheckedObject>> _editingObjects
Diese Map speichert alle Objekte aus den zu importierenden Konfigurationsbereichen, die sich in Bearbeitung befinden.


_allImportedConfigurationAreas

private final Set<ConfigurationArea> _allImportedConfigurationAreas
Enthält alle Konfigurationsbereiche, die importiert werden sollen


_objectTypesToCreate

private final Set<String> _objectTypesToCreate
In dieses Set wird die Pid eines Objekt-Typen eingetragen, sobald er erstellt werden soll. Dabei wird überprüft, ob die Pid sich bereits in dem Set befindet. Falls ja, dann befindet sich eine Schleife in den Versorgungsdateien (der Objekt-Typ braucht einen anderen Typen und dieser braucht wiederum den ursprünglichen Objekt-Typ, der aber noch nicht erstellt wurde). Nach Erstellung des Objekt-Typen wird die Pid aus dem Set wieder entfernt.


_dissolveReference

private boolean _dissolveReference
Gibt an, ob noch Referenzen aufgelöst werden sollen, oder nicht.


_usingVersionOfConfigurationArea

private final Map<ConfigurationArea,Short> _usingVersionOfConfigurationArea
Zu jedem Konfigurationsbereich wird die Version gespeichert, in der der Bereich betrachtet werden soll.


_viewingObjects

private Map<String,SystemObject> _viewingObjects
Speichert alle Objekte, die betrachtet werden sollen. (In Abhängigkeit von der zu betrachtenden Version.)


_areaProperty2ConfigurationArea

private Map<ConfigurationAreaProperties,ConfigurationArea> _areaProperty2ConfigurationArea
Enthält für jeden importierten Bereich ein Properties-Objekt.

Constructor Detail

ConfigurationImport

public ConfigurationImport(DataModel dataModel,
                           File importPath,
                           Collection<String> pids)
                    throws ConfigurationChangeException
Der Konstruktor führt den Import der angegebenen Konfigurationsbereiche durch.

Parameters:
dataModel - das Datenmodell der Konfiguration
importPath - das Verzeichnis der Versorgungsdateien
pids - die Pids der zu importierenden Konfigurationsbereiche
Throws:
ConfigurationChangeException - Falls beim Import ein Fehler auftritt, wird der Import abgebrochen und der Fehler weitergereicht.
Method Detail

checkChangeOfConfigurationAuthority

private void checkChangeOfConfigurationAuthority()
                                          throws ConfigurationChangeException
Prüft, ob sich der KV des Bereichs geändert hat. Wenn ja, dann wird ein neuer Zuständiger für diesen Bereich eingetragen. Wenn nicht, dann wird ein evtl. vorhandener neuer Zuständiger gelöscht.

Throws:
ConfigurationChangeException - Falls der neue Zuständige nicht geschrieben werden kann.

determineUsingVersionOfConfigurationAreas

private void determineUsingVersionOfConfigurationAreas(ConfigurationControl configurationControl)
Ermittelt die Version, jedes Konfigurationsbereichs, in der dieser betrachtet werden soll.

Parameters:
configurationControl - das Datenmodell

assignConfigurationArea

private ConfigurationArea assignConfigurationArea(ConfigurationAreaProperties property,
                                                  ConfigurationControl configurationControl)
                                           throws ConfigurationChangeException
Diese Methode prüft, ob es bereits einen Konfigurationsbereich passend zur Versorgungsdatei (dargestellt durch das Eigenschafts-Objekt) gibt. Existiert er noch nicht, so wird eine neue Bereichs-Datei angelegt.

Parameters:
property - Eigenschafts-Objekt, welches die Versorgungsdatei repräsentiert
configurationControl - Objekt, welches spezielle Zugriffsmethoden auf die Konfiguration enthält
Returns:
Konfigurationsbereich, passend zur Versorgungsdatei.
Throws:
ConfigurationChangeException - Falls kein neuer Konfigurationsbereich angelegt werden konnte.

setConfigurationAreaChangeInformation

private void setConfigurationAreaChangeInformation(ConfigurationAreaProperties property,
                                                   ConfigurationArea configurationArea)
                                            throws ConfigurationChangeException
Setzt die KonfigurationsÄnderungen an einem Konfigurationsbereich.

Parameters:
property - eingelesene Werte der Versorgungsdatei
configurationArea - Konfigurationsbereich
Throws:
ConfigurationChangeException - Falls der Datensatz nicht geschrieben werden kann.

checkConfigurationArea

private void checkConfigurationArea(ConfigurationAreaProperties property,
                                    ConfigurationArea configurationArea)
                             throws ConfigurationChangeException
Der Konfigurationsbereich wird überprüft, ob auch er geändert wurde.

Parameters:
property - Eigenschaftsobjekt des Konfigurationsbereichs
configurationArea - Konfigurationsbereichs-Objekt
Throws:
ConfigurationChangeException - Falls es Unterschiede zwischen des Eigenschaftsobjekts und Konfigurationsbereichs-Objekts gibt.

createConfigurationArea

private ConfigurationArea createConfigurationArea(ConfigurationAreaProperties property,
                                                  ConfigurationControl configurationControl)
                                           throws ConfigurationChangeException
Diese Methode erstellt einen neuen Konfigurationsbereich.

Parameters:
property - Das Eigenschafts-Objekt zum Bereich.
configurationControl - Wird zum Erstellen eines neuen Bereichs benötigt.
Returns:
der neue Konfigurationsbereich
Throws:
ConfigurationChangeException - Falls der neue Bereich nicht erstellt werden konnte.

checkCodingOfConfigurationAuthority

private void checkCodingOfConfigurationAuthority(short authorityCoding,
                                                 String authorityPid)
                                          throws ConfigurationChangeException
Diese Methode prüft, ob die Kodierung des zu verwendenden Konfigurationsverantwortlichen eindeutig ist. Es darf also keinen aktuellen Verantwortlichen geben, der die gleiche Kodierung verwendet.

Parameters:
authorityCoding - zu vergleichende Kodierung
authorityPid - Pid des Konfigurationsverantwortlichen
Throws:
ConfigurationChangeException - Falls die Kodierung nicht eindeutig ist.

getAuthorityCoding

private short getAuthorityCoding(ConfigurationConfigurationObject configurationObjectProperties)
Ermittelt zu einem Konfigurationsobjekt eines Konfigurationsverantwortlichen die Kodierung.

Parameters:
configurationObjectProperties - Konfigurationsobjekt
Returns:
Kodierung des Konfigurationsverantwortlichen

setConfigurationAreaChangeInformation

private void setConfigurationAreaChangeInformation(ConfigurationAreaChangeInformation[] configurationAreaChangeInformation,
                                                   ConfigurationArea configurationArea)
                                            throws ConfigurationChangeException
Erzeugt einen Datensatz mit den Konfigurationsänderungen aus der Versorgungsdatei und speichert diesen am Konfigurationsbereich ab.

Parameters:
configurationAreaChangeInformation - die Konfigurationsänderungen aus der Versorgungsdatei
configurationArea - der Konfigurationsbereich
Throws:
ConfigurationChangeException - Falls der Datensatz nicht am Konfigurationsbereich gespeichert werden konnte.

existChangeInformation

private int existChangeInformation(Data existData,
                                   ConfigurationAreaChangeInformation info)
Ermittelt die Versionsnummer zu einem Änderungsvermerk, der zuvor schon mal gespeichert wurde.

Parameters:
existData - existierendes Data zu den Konfigurations-Änderungen
info - ein neuer Info-Eintrag
Returns:
Versionsnummer dieses Info-Eintrages oder "-1", falls der Eintrag noch nicht existierte.

readExistingObjects

private void readExistingObjects(ConfigurationArea configurationArea)
Liest alle aktuellen und zur Aktivierung/Übernahme freigegebenen Objekte aus dem Konfigurationsbereich aus und merkt sich diese lokal.

Parameters:
configurationArea - ein zu importierender Konfigurationsbereich

handleImportObject

private void handleImportObject(ConfigurationImport.ImportObject importObject)
                         throws ConfigurationChangeException
Diese Methode prüft, ob es bereits ein passendes Objekt zu einer zu importierenden Definition gibt und verwendet dieses. Wenn dieses Objekt allerdings verändert werden muss, wird überprüft, ob es auch verändert werden darf. Wenn es nicht verändert werden darf, wird ein neues Objekt angelegt.

Wird ein passendes Objekt gefunden, dann wird damit weitergearbeitet. Wenn nicht, dann wird ein neues Objekt erstellt.

Parameters:
importObject - Import-Objekt, welches ein Import-Objekt und ein System-Objekt enthält.
Throws:
ConfigurationChangeException - Falls das Objekt nicht angelegt werden.

getModifiableObject

private ConfigurationObject getModifiableObject(ConfigurationArea area,
                                                String pid)
Ermittelt zu einer Pid ein in Bearbeitung befindliches Objekt, löscht es aus der entsprechenden Liste, damit es nicht nochmal betrachtet wird und gibt es zurück.

Parameters:
area - Konfigurationsbereich, in dem das Objekt sein soll
pid - Pid des Objekts
Returns:
SystemObjekt mit der angegebenen Pid oder null, falls es kein Objekt zu der Pid gibt.

completeImportObject

private void completeImportObject(ConfigurationImport.ImportObject importObject)
                           throws ConfigurationChangeException
Diese Methode wird aufgerufen, wenn ein zu importierendes Objekt vervollständigt werden soll. Bei diesem Vorgang werden Mengen und Datensätze mit Referenzen erzeugt oder verändert. Je nach Typ des Eigenschafts-Objekts wird die entsprechende Methode zur Weiterverarbeitung aufgerufen.

Parameters:
importObject - Import-Objekt, welches ein Import-Objekt und ein System-Objekt enthält.
Throws:
ConfigurationChangeException - Falls das Objekt nicht vervollständigt werden konnte (Mengen und Datensätze konnten nicht hinzugefügt werden).

completeDefaults

private void completeDefaults(ConfigurationImport.ImportObject importObject)
                       throws ConfigurationChangeException
Default-Werte werden an den Objekten vervollständigt.

Parameters:
importObject - Import-Objekte
Throws:
ConfigurationChangeException - Falls die Default-Werte nicht gesetzt werden konnten.

validateRequiredObjects

private void validateRequiredObjects()
                              throws ConfigurationChangeException
Aktuelle Objekte und Objekte, die zur Übernahme / Aktivierung freigegeben wurden werden geprüft, ob sie bei einem vorhergehenden Import auf ungültig gesetzt wurden, nach diesem Import aber benötigt werden. Diese Objekte werden dann mittels revalidate wieder gültig.

Throws:
ConfigurationChangeException - Falls ein benötigtes Objekt nicht zurück auf gültig gesetzt werden kann.

invalidateNoLongerRequiredObjects

private void invalidateNoLongerRequiredObjects()
Aktuelle und freigegebene Objekte werden überprüft, ob sie nach dem Import weiterhin gebraucht werden. Werden sie nicht benötigt, dann werden sie auf ungültig gesetzt.


deleteNoLongerRequiredObjects

private void deleteNoLongerRequiredObjects()
In Bearbeitung befindliche Objekte werden überprüft, ob sie nach dem Import nicht mehr benötigt werden. Wenn dem so ist, werden sie gelöscht.


handleObject

private void handleObject(ConfigurationImport.CheckedObject checkedObject,
                          ConfigurationImport.ImportObject importObject)
                   throws ConfigurationChangeException
Ermittelt anhand des Eigenschafts-Objekts, welche Methode aufgerufen werden muss, damit das System-Objekt weiterverarbeitet bzw. erstellt wird.

Parameters:
checkedObject - Enthält das System-Objekt, welches weiterverarbeitet werden soll. null, wenn es neues Objekt erstellt werden soll und noch keines vorhanden war.
importObject - Import-Objekt, welches ein Import-Objekt und ein System-Objekt enthält.
Throws:
ConfigurationChangeException - Falls ein Objekt nicht importiert werden konnte.

handleAspect

private void handleAspect(ConfigurationImport.ImportObject importObject)
                   throws ConfigurationChangeException
Überarbeitet das übergebene System-Objekt. Falls keines vorhanden ist, wird aus einem Eintrag in der Versorgungsdatei - dargestellt durch ein Property-Objekt - ein Aspekt erstellt.

Parameters:
importObject - Objekt, welches die Daten für den Import eines Aspekts enthält
Throws:
ConfigurationChangeException - Falls der Aspekt nicht erstellt werden konnte.

handleAttributeListDefinition

private void handleAttributeListDefinition(ConfigurationImport.ImportObject importObject)
                                    throws ConfigurationChangeException
Erstellt aus einem Eintrag in der Versorgungsdatei eine Attributliste, oder verändert ein bestehendes System-Objekt, so dass es mit der Definition übereinstimmt.

Parameters:
importObject - Objekt, welches die Daten für den Import eine Attributliste enthält
Throws:
ConfigurationChangeException - Falls die Attributliste nicht importiert werden konnte.

completeAttributeListDefinition

private void completeAttributeListDefinition(ConfigurationImport.ImportObject importObject)
                                      throws ConfigurationChangeException
Diese Methode vervollständigt eine Attributliste mit konfigurierenden Datensätzen.

Parameters:
importObject - Objekt, welches die Daten für den Import einer Attributliste enthält
Throws:
ConfigurationChangeException - Falls das Objekt nicht vervollständigt werden konnte (Mengen und Datensätze).

setAttributeObjectSet

private void setAttributeObjectSet(ConfigurationArea configurationArea,
                                   ConfigurationObject object,
                                   AttributeProperties[] configurationAttributes)
                            throws ConfigurationChangeException
Speichert die Attribute eines Konfigurationsobjekts in einer Menge names "Attribute" an diesem Konfigurationsobjekt ab.

Parameters:
configurationArea - Konfigurationsbereich des Konfigurationsobjekts
object - das Konfigurationsobjekt
configurationAttributes - die zu speichernden Attribute
Throws:
ConfigurationChangeException - Falls die Menge der Attribute nicht am Konfigurationsobjekt gespeichert werden konnte.

setAttributeProperties

private void setAttributeProperties(Attribute attribute,
                                    short position,
                                    int maxCount,
                                    boolean isCountVariable,
                                    AttributeType attributeType)
                             throws ConfigurationChangeException
Speichert Informationen (z.B. Position) zu Attributen/-listen innerhalb einer Menge ab.

Parameters:
attribute - ein Attribut der Menge "Attribute"
position - Position des Attributs in der Menge
maxCount - maximale Anzahl von Elemente des Attributs
isCountVariable - gibt an, ob die Anzahl fest oder variabel ist
attributeType - der Attribut-Typ des Attributs
Throws:
ConfigurationChangeException - Falls der konfigurierende Datensatz nicht am Objekt gespeichert werden konnte.

handleAttributeType

private void handleAttributeType(ConfigurationImport.ImportObject importObject)
                          throws ConfigurationChangeException
Erstellt aus einem Property-Objekt (welches einem Eintrag in der Versorgungsdatei entspricht) einen AttributTypen, oder verändert ein bestehendes System-Objekt, so dass es mit der Definition übereinstimmt.

Parameters:
importObject - Objekt, welches die Daten für den Import eines Attribut-Typen enthält
Throws:
ConfigurationChangeException - Falls der Attribut-Typ nicht importiert werden konnte.

setDefault

private void setDefault(SystemObject systemObject,
                        String aDefault)
                 throws ConfigurationChangeException
Der Default-Wert wird am angegebenen System-Objekt gesetzt.

Parameters:
systemObject - System-Objekt
aDefault - neuer Default-Wert des System-Objekts
Throws:
ConfigurationChangeException - Falls der Default nicht gesetzt werden konnte.

completeAttributeType

private void completeAttributeType(ConfigurationImport.ImportObject importObject)
                            throws ConfigurationChangeException
Vervollständigt den Attribut-Typen um die fehlenden konfigurierenden Datensätze. Momentan ist nur der Referenz-Attribut-Typ davon betroffen.

Parameters:
importObject - Objekt, welches die Daten für den Import eines Attribut-Typen enthält
Throws:
ConfigurationChangeException - Falls der Attribut-Typ nicht vervollständigt werden konnte (Mengen und Datensätze).

completeDefaults

private void completeDefaults(AttributeType attributeType,
                              AttributeTypeProperties property)
                       throws ConfigurationChangeException
Setzt die Default-Werte an einem Attribut-Typ.

Parameters:
attributeType - ein Attribut-Typ
property - Eigenschafts-Objekt
Throws:
ConfigurationChangeException - Falls die Default-Werte nicht am Attribut-Typ gespeichert werden konnten.

setStringAttributeTypeProperties

private void setStringAttributeTypeProperties(StringAttributeType attributeType,
                                              ConfigurationString configurationString)
                                       throws ConfigurationChangeException
Speichert die Eigenschaften des Zeichenketten-AttributTyps als konfigurierenden Datensatz.

Parameters:
attributeType - Zeichenketten-AttributTyp, an dem die Eigenschaften gespeichert werden sollen
configurationString - Objekt, welches die Eigenschaften des AttributTyps enthält
Throws:
ConfigurationChangeException - Falls der konfigurierende Datensatz nicht am Objekt gespeichert werden konnte.

handleIntegerValueRange

private IntegerValueRange handleIntegerValueRange(ConfigurationArea configurationArea,
                                                  ConfigurationValueRange valueRange,
                                                  IntegerValueRange integerValueRange)
                                           throws ConfigurationChangeException
Erstellt den Wertebereich einer Ganzzahl, oder überarbeitet ein bestehendes Bereichs-Objekt und gibt es zurück.

Parameters:
configurationArea - Konfigurationsbereich, dem der Wertebereich hinzugefügt werden soll
valueRange - umzuwandelnder Wertebereich
integerValueRange - bestehender Wertebereich
Returns:
SystemObject des Wertebereichs
Throws:
ConfigurationChangeException - Falls der Wertebereich nicht vollständig erstellt werden konnte.

setIntegerValueRangeProperties

private void setIntegerValueRangeProperties(IntegerValueRange range,
                                            ConfigurationValueRange valueRange)
                                     throws ConfigurationChangeException
Speichert die Eigenschaften des Ganzzahl-Wertebereichs als konfigurierenden Datensatz.

Parameters:
range - der Ganzzahl-Wertebereich
valueRange - Objekt, welches die zu speichernden Eigenschaften enthält
Throws:
ConfigurationChangeException - Falls der konfigurierende Datensatz nicht am Objekt gespeichert werden konnte.

setIntegerValueStateProperties

private void setIntegerValueStateProperties(IntegerValueState valueState,
                                            ConfigurationState state)
                                     throws ConfigurationChangeException
Speichert die Eigenschaften des Ganzzahl-Werte-Zustands als konfigurierenden Datensatz.

Parameters:
valueState - der Ganzzahl-Werte-Zustand
state - Objekt, welches die zu speichernden Eigenschaften enthält
Throws:
ConfigurationChangeException - Falls der konfigurierende Datensatz nicht am Objekt gespeichert werden konnte.

setIntegerAttributeTypeProperties

private void setIntegerAttributeTypeProperties(IntegerAttributeType attributeType,
                                               IntegerValueRange valueRange,
                                               int bitCount)
                                        throws ConfigurationChangeException
Speichert die Eigenschaften des Ganzzahl-AttributTyps als konfigurierenden Datensatz.

Parameters:
attributeType - Ganzzahl-AttributTyp, an dem die Eigenschaften gespeichert werden sollen
valueRange - zu speichernder Werte-Bereich
bitCount - Anzahl Bits des Bereichs
Throws:
ConfigurationChangeException - Falls der konfigurierende Datensatz nicht am Objekt gespeichert werden konnte.

setDoubleAttributeTypeProperties

private void setDoubleAttributeTypeProperties(DoubleAttributeType attributeType,
                                              ConfigurationDoubleDef def)
                                       throws ConfigurationChangeException
Speichert die Eigenschaften einer Fließkommazahl als konfigurierenden Datensatz.

Parameters:
attributeType - Fließkommazahl-AttributTyp
def - Objekt, welches die zu speichernden Eigenschaften enthält
Throws:
ConfigurationChangeException - Falls der konfigurierende Datensatz nicht am Objekt gespeichert werden konnte.

setTimeAttributeTypeProperties

private void setTimeAttributeTypeProperties(TimeAttributeType attributeType,
                                            ConfigurationTimeStamp stamp)
                                     throws ConfigurationChangeException
Speichert die Eigenschaften eines Zeit-Attribut-Typs als konfigurierenden Datensatz.

Parameters:
attributeType - Zeit-Attribut-Typ
stamp - Objekt, welches die zu speichernden Eigenschaften enthält
Throws:
ConfigurationChangeException - Falls der konfigurierende Datensatz nicht am Objekt gespeichert werden konnte.

setReferenceAttributeTypeProperties

private void setReferenceAttributeTypeProperties(ReferenceAttributeType attributeType,
                                                 ConfigurationObjectReference reference)
                                          throws ConfigurationChangeException
Speichert die Eigenschaften eines Referenz-Attribut-Typs als konfigurierenden Datensatz.

Parameters:
attributeType - Referenz-Attribut-Typ
reference - Objekt, welches die zu speichernden Eigenschaften enthält
Throws:
ConfigurationChangeException - Falls der konfigurierende Datensatz nicht am Objekt gespeichert werden konnte.

handleAttributeGroup

private void handleAttributeGroup(ConfigurationImport.ImportObject importObject)
                           throws ConfigurationChangeException
Erstellt aus einem Property-Objekt (welches einem Eintrag in der Versorgungsdatei entspricht) eine Attributgruppe oder verändert eine bestehende Attributgruppe so, dass es der Import-Definition entspricht und gibt diese zurück.

Parameters:
importObject - Objekt, welches die Daten für den Import einer Attributgruppe enthält
Throws:
ConfigurationChangeException - Falls das Objekt nicht importiert werden konnte.

completeAttributeGroup

private void completeAttributeGroup(ConfigurationImport.ImportObject importObject)
                             throws ConfigurationChangeException
Vervollständigt eine Attributgruppe um die fehlenden konfigurierenden Datensätze.

Parameters:
importObject - Objekt, welches die Daten für den Import einer Attributgruppe enthält
Throws:
ConfigurationChangeException - Falls das Objekt nicht vervollständigt werden konnte (Mengen und Datensätze).

setAttributeGroupUsagesObjectSet

private void setAttributeGroupUsagesObjectSet(ConfigurationArea configurationArea,
                                              AttributeGroup atg,
                                              AttributeGroupProperties property)
                                       throws ConfigurationChangeException
Erstellt anhand der Attributgruppe und der Eigenschaften eine Menge mit den Attributgruppenverwendungen, wenn es sie noch nicht gibt. Dabei wird berücksichtigt, ob die Attributgruppe parametrierend ist, oder nicht. Die neu erstellte Menge wird an der angegebenen Attributgruppe gespeichert.

Parameters:
configurationArea - der Konfigurationsbereich, an dem die Attributgruppe steht
atg - die Attributgruppe, die um die Attributgruppenverwendungen erweitert werden soll
property - die Eigenschaften der Attributgruppe
Throws:
ConfigurationChangeException - Falls die Attributgruppenverwendungen nicht an der Attributgruppe gespeichert werden konnten.

setAttributeGroupUsageProperties

private void setAttributeGroupUsageProperties(AttributeGroupUsage atgUsage,
                                              AttributeGroup attributeGroup,
                                              Aspect aspect,
                                              AttributeGroupUsage.Usage usage,
                                              boolean isExplicitDefined)
                                       throws ConfigurationChangeException
Speichert die Eigenschaften einer Attributgruppenverwendung an der angegebenen Verwendung ab.

Parameters:
atgUsage - die Attributgruppenverwendung
attributeGroup - die Attributgruppe der Verwendung
aspect - der Aspekt
usage - die Verwendung der Attributgruppenverwendung
isExplicitDefined - gibt an, ob die Verwendung explizit vorgegeben sein muss
Throws:
ConfigurationChangeException - Falls der konfigurierende Datensatz nicht am Objekt gespeichert werden konnte.

handleObjectSetType

private void handleObjectSetType(ConfigurationImport.ImportObject importObject)
                          throws ConfigurationChangeException
Erstellt aus einem Eigenschafts-Objekt einen Mengen-Typ oder verändert ein bestehenden Mengen-Typen so, dass er mit der Import-Definition übereinstimmt.

Parameters:
importObject - Objekt, welches die Daten für den Import eines Mengen-Typs enthält
Throws:
ConfigurationChangeException - Falls der Mengen-Typ nicht importiert werden konnte.

completeObjectSetType

private void completeObjectSetType(ConfigurationImport.ImportObject importObject)
                            throws ConfigurationChangeException
Vervollständigt den Mengen-Typ um noch fehlende konfigurierenden Datensätze.

Parameters:
importObject - Objekt, welches die Daten für den Import eines Mengen-Typs enthält
Throws:
ConfigurationChangeException - Falls der Mengen-Typ nicht vervollständigt werden konnte (Mengen und Datensätze).

setObjectSetTypeProperties

private void setObjectSetTypeProperties(ObjectSetType objectSetType,
                                        ObjectSetTypeProperties property)
                                 throws ConfigurationChangeException
Speichert die Eigenschaften eines Mengen-Typs als konfigurierenden Datensatz am Mengen-Typ ab.

Parameters:
objectSetType - der Mengen-Typ
property - das Eigenschafts-Objekt, welches die Eigenschaften des Mengen-Typs enthält
Throws:
ConfigurationChangeException - Falls der konfigurierende Datensatz nicht am Objekt gespeichert werden konnte.

setObjectSetTypeObjectTypes

private void setObjectSetTypeObjectTypes(ConfigurationArea configurationArea,
                                         ObjectSetType objectSetType,
                                         String[] elements)
                                  throws ConfigurationChangeException
Speichert die Menge der Objekt-Typen am Mengen-Typ ab.

Parameters:
configurationArea - Konfigurationsbereich des Mengen-Typs
objectSetType - der Mengen-Typ
elements - Elemente der Menge der Objekt-Typen
Throws:
ConfigurationChangeException - Falls die Menge nicht am Objekt gespeichert werden konnte.

setObjectSetTypeSuperTypeSet

private void setObjectSetTypeSuperTypeSet(ConfigurationArea configurationArea,
                                          ObjectSetType objectSetType)
                                   throws ConfigurationChangeException
Die Menge SuperTypen muss an einer Mengendefinition vorhanden sein. In der Menge wird ein einziger Typ gespeichert.

Parameters:
configurationArea - Konfigurationsbereich der Mengendefinition
objectSetType - Mengendefinition
Throws:
ConfigurationChangeException - Falls die Menge der Mengendefinition nicht hinzugefügt werden konnten.

setObjectSetTypeEmptySets

private void setObjectSetTypeEmptySets(ConfigurationArea configurationArea,
                                       ObjectSetType objectSetType)
                                throws ConfigurationChangeException
Die Mengen 'Attributgruppen' und 'Mengen' müssen an einer Mengendefinition vorhanden sein, obwohl in der Versorgungsdatei keine Elemente vorhanden sind.

Parameters:
configurationArea - Konfigurationsbereich der Mengendefinition
objectSetType - Mengendefinition
Throws:
ConfigurationChangeException - Falls die Mengen der Mengendefinition nicht hinzugefügt werden konnten.

handleSystemObjectType

private void handleSystemObjectType(ConfigurationImport.ImportObject importObject)
                             throws ConfigurationChangeException
Erstellt aus einem Eigenschafts-Objekt einen Objekt-Typen oder verändert einen bestehenden Objekt-Typen so, dass er mit der Import-Definition übereinstimmt.

Parameters:
importObject - Objekt, welches die Daten für den Import eines Objekt-Typs enthält
Throws:
ConfigurationChangeException - Falls der Objekt-Typ nicht importiert werden konnte.

completeSystemObjectType

private void completeSystemObjectType(ConfigurationImport.ImportObject importObject)
                               throws ConfigurationChangeException
Vervollständigt den Objekt-Typ um fehlende konfigurierende Datensätze, die bei der Erstellung des Objekts noch nicht berücksichtigt wurden.

Parameters:
importObject - Objekt, welches die Daten für den Import eines Objekt-Typs enthält
Throws:
ConfigurationChangeException - Falls der Objekt-Typ nicht vervollständigt werden konnte (Mengen und Datensätze).

setSystemObjectTypeProperties

private void setSystemObjectTypeProperties(SystemObjectType objectType,
                                           boolean isConfigurating,
                                           boolean isNamePermanent)
                                    throws ConfigurationChangeException
Speichert die Eigenschaften des Objekt-Typs als konfigurierenden Datensatz ab.

Parameters:
objectType - der Objekt-Typ
isConfigurating - gibt an, ob der Objekt-Typ konfigurierend ist
isNamePermanent - gibt an, ob der Name des Objekt-Typs permanent, also nicht änderbar, ist
Throws:
ConfigurationChangeException - Falls der konfigurierende Datensatz nicht am Objekt-Typ gespeichert werden konnte.

createSuperTypes

private List<SystemObjectType> createSuperTypes(String[] superTypePids)
Aus einer Liste von Pids von Super-Typen werden System-Objekte von Super-Typen erstellt.

Parameters:
superTypePids - Pids von Super-Typen
Returns:
Liste von System-Objekten von Super-Typen

isDynamicType

private boolean isDynamicType(List<SystemObjectType> superTypes)
Diese Methode prüft, ob die Super-Typen alle dynamisch oder konfigurierend sind. Sind die Super-Typen unterschiedlich, so liegt ein Versorgungsfehler vor und eine Ausnahme wird geworfen.

Parameters:
superTypes - Liste der Super-Typen eines neuen Typs
Returns:
true, falls alle Super-Typen dynamisch sind,
false, falls alle Super-Typen konfigurierend sind
Throws:
IllegalStateException - Falls ein Typ sowohl einen dynamischen als auch einen konfigurierenden Typen erweitert.

getSuperTypePersistenceMode

DynamicObjectType.PersistenceMode getSuperTypePersistenceMode(List<SystemObjectType> superTypes)
Diese Methode ermittelt anhand der Super-Typen den gemeinsamen Persistenz-Modus. Dieser ist für alle Super-Typen gleich.

Parameters:
superTypes - die zu betrachtenden Super-Typen
Returns:
den Persistenz-Modus
Throws:
IllegalStateException - Falls die Persistenz-Modi der Super-Typen unterschiedlich sind.

handleSystemObjectTypeSuperTypes

private void handleSystemObjectTypeSuperTypes(ConfigurationArea configurationArea,
                                              SystemObjectType systemObjectType,
                                              List<SystemObjectType> superTypes)
                                       throws ConfigurationChangeException
Erstellt eine Menge mit Super-Typen für einen Objekt-Typen oder verändert eine bestehende Menge.

Parameters:
configurationArea - Konfigurationsbereich des Objekt-Typs
systemObjectType - Objekt-Typ an dem die Menge der SuperTypen gespeichert werden soll.
superTypes - die Super-Typen des Objekt-Typs
Throws:
ConfigurationChangeException - Falls die Menge nicht am Objekt-Typ gespeichert werden konnte.

setDynamicObjectTypePersistenceMode

private void setDynamicObjectTypePersistenceMode(DynamicObjectType dynamicObjectType,
                                                 DynamicObjectType.PersistenceMode persistenceMode)
                                          throws ConfigurationChangeException
Speichert den Persistenz-Modus als konfigurierenden Datensatz am dynamischen Objekt-Typ.

Parameters:
dynamicObjectType - dynamischer Objekt-Typ
persistenceMode - der zu speichernde Persistenz-Modus
Throws:
ConfigurationChangeException - Falls der Datensatz nicht am Objekt-Typ gespeichert werden konnte.

setSystemObjectTypeAttributeGroups

private void setSystemObjectTypeAttributeGroups(ConfigurationArea configurationArea,
                                                SystemObjectType systemObjectType,
                                                Object[] atgAndSet)
                                         throws ConfigurationChangeException
Speichert die direkten Attributgruppen und Mengenverwendungen als Mengen am Objekt-Typ ab.

Parameters:
configurationArea - der Konfigurationsbereich des Objekt-Typs
systemObjectType - der Objekt-Typ
atgAndSet - Array, welches die Attributgruppen und Mengenverwendungen enthält
Throws:
ConfigurationChangeException - Falls die Mengen nicht am Objekt-Typ gespeichert werden konnten.

setObjectSetUseProperties

private void setObjectSetUseProperties(ObjectSetUse objectSetUse,
                                       ConfigurationSet configurationSet)
                                throws ConfigurationChangeException
Speichert die Eigenschaften einer Mengenverwendung an einer Mengenverwendung als konfigurierenden Datensatz ab.

Parameters:
objectSetUse - die Mengenverwendung
configurationSet - Objekt, welches die Eigenschaften der Mengenverwendung enthält
Throws:
ConfigurationChangeException - Falls der konfigurierende Datensatz nicht an der Mengenverwendung gespeichert werden konnte.

handleSystemObject

private void handleSystemObject(ConfigurationImport.ImportObject importObject)
                         throws ConfigurationChangeException
Erstellt aus einem Eigenschafts-Objekt ein System-Objekt oder verändert ein bereits bestehendes System-Objekt.

Parameters:
importObject - Objekt, welches die Daten für den Import eines System-Objekts enthält
Throws:
ConfigurationChangeException - Falls das System-Objekt nicht erstellt werden konnte.

completeSystemObject

private void completeSystemObject(ConfigurationImport.ImportObject importObject)
                           throws ConfigurationChangeException
System-Objekte erhalten in dieser Methode ihre konfigurierenden Datensätze und Mengen.

Parameters:
importObject - Objekt, welches die Daten für den Import eines System-Objekts enthält
Throws:
ConfigurationChangeException - Falls das System-Objekt nicht vervollständigt werden konnte.

setDefaultParameterDataset

private void setDefaultParameterDataset(ConfigurationDefaultParameter[] defaultParameters,
                                        SystemObject systemObject)
                                 throws IOException,
                                        ConfigurationChangeException
Throws:
IOException
ConfigurationChangeException

getObjectSetUses

Collection<ObjectSetUse> getObjectSetUses(SystemObjectType systemObjectType)
Diese Methode ermittelt anhand eines Objekt-Typen seine sämtlichen Mengenverwendungen.

Parameters:
systemObjectType - der Objekt-Typ
Returns:
Alle Mengenverwendungen dieses Objekt-Typs.

getAllImportedConfigurationAreas

Set<ConfigurationArea> getAllImportedConfigurationAreas()
Gibt alle Konfigurationsbereiche zurück, die gerade importiert werden.

Returns:
Alle Konfigurationsbereiche, die gerade importiert werden.

fillData

void fillData(Data data,
              DatasetElement[] elements)
Ein neues Data-Objekt wird mit den Elementen aus der Definition gefüllt.

Parameters:
data - ein neues Data-Objekt
elements - Elemente der Definition eines System-Objekts

printData

private void printData(Data data)
Hilfsmethode, die einen Datensatz ausgibt.

Parameters:
data - ein Datensatz

getNewObject

private ConfigurationImport.CheckedObject getNewObject(ConfigurationArea configurationArea,
                                                       String pid)
Gibt zu einem Konfigurationsbereich und einer Pid das zur Übernahme oder Aktivierung freigegebene Objekt zurück, wenn es existiert.

Parameters:
configurationArea - der Konfigurationsbereich
pid - die Pid des gesuchten Objekts
Returns:
Das gesuchte Objekt oder null, falls es nicht existiert.

getCurrentObject

private ConfigurationImport.CheckedObject getCurrentObject(ConfigurationArea configurationArea,
                                                           String pid)
Gibt zu einem Konfigurationsbereich und einer Pid das aktuelle Objekt zurück, wenn es existiert.

Parameters:
configurationArea - der Konfigurationsbereich
pid - die Pid des gesuchten Objekts
Returns:
Das gesuchte Objekt oder null, falls es nicht existiert.

forgetCurrentObject

private ConfigurationImport.CheckedObject forgetCurrentObject(ConfigurationArea configurationArea,
                                                              SystemObject object)
Löscht aus der Liste der aktuellen Objekte eines Bereichs ein gegebenes Objekt, wenn es enthalten ist.

Parameters:
configurationArea - Der zu durchsuchende Konfigurationsbereich
object - Das zu löschende Objekt
Returns:
Das gesuchte Objekt oder null, falls es nicht existiert.

getEditingObject

private ConfigurationImport.CheckedObject getEditingObject(ConfigurationArea configurationArea,
                                                           String pid)
Gibt zu einem Konfigurationsbereich und einer Pid das in Bearbeitung befindliche Objekt zurück, wenn es existiert.

Parameters:
configurationArea - der Konfigurationsbereich
pid - die Pid des gesuchten Objekts
Returns:
Das gesuchte Objekt oder null, falls es nicht existiert.

getObject

public SystemObject getObject(String pid)
Diese Methode gibt anhand der angegebenen Pid ein Objekt aus dem Datenmodell oder aus den Import-Versorgungsdateien zurück.

Specified by:
getObject in interface ObjectLookup
Parameters:
pid - Pid des gesuchten Objekts
Returns:
das gewünschte Objekt oder eine Exception, falls dies nicht existiert

getObject

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

getUsingObjects

private Map<String,SystemObject> getUsingObjects()
Ermittelt zu allen Konfigurationsbereichen, die Objekte, die in der zu betrachtenden Version gültig sind.

Returns:
die Objekte, die in den zu betrachtenden Versionen gültig sind

getConfigurationData

Data getConfigurationData(SystemObject object,
                          AttributeGroupUsage atgUsage)

getConfigurationData

Data getConfigurationData(SystemObject object,
                          AttributeGroup atg)

getConfigurationData

Data getConfigurationData(SystemObject object,
                          AttributeGroup atg,
                          Aspect asp)

createSystemObjectType

private SystemObjectType createSystemObjectType(String pid)
                                         throws IllegalArgumentException
Erstellt einen Objekt-Typen mit der angegebenen Pid, falls es nicht bereits existiert. Wird zur Ermittlung der Super-Typen benötigt.

Parameters:
pid - Pid des gesuchten Objekt-Typs
Returns:
der gewünschte Objekt-Typ
Throws:
IllegalArgumentException - Falls zur angegebenen Pid kein Objekt-Typ existiert.

setInfo

private void setInfo(SystemObject systemObject,
                     SystemObjectInfo info)
              throws ConfigurationChangeException
Speichert die Info als konfigurierenden Datensatz an einem Objekt.

Parameters:
systemObject - Objekt, an dem die Info gespeichert werden soll
info - die zu speichernde Info
Throws:
ConfigurationChangeException - Falls der konfigurierende Datensatz nicht am Objekt gespeichert werden konnte.

setSystemObjectKeeping

private void setSystemObjectKeeping(SystemObject systemObject)
Setzt die Markierung, ob ein System-Objekt beibehalten werden soll.

Parameters:
systemObject - das zu markierende SystemObjekt.

unsetSystemObjectKeeping

private void unsetSystemObjectKeeping()
Setzt alle Markierung, ob ein Objekt beibehalten werden soll, wieder zurück.


getAttributeGroupUsage

AttributeGroupUsage getAttributeGroupUsage(AttributeGroup atg,
                                           Aspect asp)
Gibt die Attributgruppenverwendung zurück, die in der in Bearbeitung befindlichen Version gültig ist.

Parameters:
atg - die Attributgruppe
asp - der Aspekt
Returns:
Die Attributgruppenverwendung, die in der in Bearbeitung befindlichen Version gültig ist oder null, falls es keine gültige Verwendung gibt.

throwNoObjectException

private void throwNoObjectException(String pid)
Wirft eine IllegalStateException. Wird verwendet, falls es zu einer Pid kein Objekt gibt.

Parameters:
pid - Pid des Objekts