Class ConfigurationControlAdapter
- All Implemented Interfaces:
ConfigurationControl
public class ConfigurationControlAdapter extends java.lang.Object implements ConfigurationControl
Ein Objekt der Klasse kann mit Hilfe einer ClientDaVConnection erzeugt werden.
Kommt es bei der Bearbeitung der Aufträge zu einer Exception entscheidet diese Klasse ob die Exception zur aufrufenden Instanz weitergeleitet wird oder ob der Fehler so schwerwiegend ist, dass die Verbindung zum Datenverteiler abgebrochen werden muss.
Eine ConfigurationChangeException
wird zum Anwender der Klasse weitergereicht.
Eine RequestException
deutet auf einen schwerern Fehler innerhalb der Kommunikation hin, der nicht mehr behoben werden kann und führt zu
einer Abmeldung beim Datenverteiler.
-
Constructor Summary
Constructors Constructor Description ConfigurationControlAdapter(ClientDavConnection clientDaVConnection)
-
Method Summary
Modifier and Type Method Description ConsistencyCheckResultInterface
activateConfigurationAreas(java.util.Collection<ConfigAreaAndVersion> configurationAreas)
Die Implementierung dieser Methode beauftragt die Konfiguration die angebenen Konfigurationsbereiche zu aktivieren (siehe TPuK1-142).ConsistencyCheckResultInterface
checkConsistency(java.util.Collection<ConfigAreaAndVersion> configurationAreas)
Die Implementierung dieser Methode beauftragt die Konfiguration alle Konfigurationsbereiche einer Konsistenzprüfung zu unterziehen (siehe TPuK1-138).ConfigurationArea
createConfigurationArea(java.lang.String name, java.lang.String pid, java.lang.String authorityPid)
Die Implementierung dieser Methode legt einen neuen Konfigurationsbereich in der lokalen Konfiguration an.void
exportConfigurationAreas(java.io.File exportPath, java.util.Collection<java.lang.String> configurationAreaPids)
Die Implementierung dieser Methode exportiert aus der bestehenden Konfiguration die Versorgungsdateien zu den angegebenen Pids in das angegebene Verzeichnis.java.util.Map<java.lang.String,ConfigurationArea>
getAllConfigurationAreas()
Alle Konfigurationsbereichseinträge in der Verwaltungsdatei werden zurückgegeben.void
importConfigurationAreas(java.io.File importPath, java.util.Collection<java.lang.String> configurationAreaPids)
Die Implementierung dieser Methode importiert die Versorgungsdateien der angegebenen Pids vom angegebenen Verzeichnis in die bestehende Konfiguration.void
releaseConfigurationAreasForActivation(java.util.Collection<ConfigAreaAndVersion> configurationAreas)
Die Implementierung dieser Methode beauftragt die Konfiguration die angegebenen Konfigurationsbereiche in den Status "Freigabe zur Aktivierung" zu überführen.ConsistencyCheckResultInterface
releaseConfigurationAreasForActivationWithoutCAActivation(java.util.Collection<ConfigAreaAndVersion> configurationAreas)
Die Implementierung dieser Methode beauftragt die Konfiguration die angegebenen Bereiche in den Zustand "Darf durch andere aktiviert werden, obwohl der KV es selbst nicht aktiviert hat" zu bringen.ConsistencyCheckResultInterface
releaseConfigurationAreasForTransfer(java.util.Collection<ConfigAreaAndVersion> configurationAreas)
Die Implementierung dieser Methode beauftragt die Konfiguration die angebenen Konfigurationsbereiche in den Status "Freigabe zur Übernahme" zu überführen (siehe TPuK1-143).Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
ConfigurationControlAdapter
-
-
Method Details
-
getAllConfigurationAreas
Description copied from interface:ConfigurationControl
Alle Konfigurationsbereichseinträge in der Verwaltungsdatei werden zurückgegeben. Hierbei ist es unerheblich, ob der Bereich bereits aktiviert wurde oder noch zu aktivieren ist.- Specified by:
getAllConfigurationAreas
in interfaceConfigurationControl
- Returns:
- Eine Map, deren Schlüssel die Pid des Bereichs und der Wert das Objekt des Konfigurationsbereichs ist.
-
createConfigurationArea
public ConfigurationArea createConfigurationArea(java.lang.String name, java.lang.String pid, java.lang.String authorityPid) throws ConfigurationChangeExceptionDescription copied from interface:ConfigurationControl
Die Implementierung dieser Methode legt einen neuen Konfigurationsbereich in der lokalen Konfiguration an. Hierfür wird eine entsprechende Konfigurationsdatei angelegt, die initial das Objekt des Konfigurationsbereichs enthält.Zusätzlich müssen die konfigurierenden Datensätze für den Konfigurationsverantwortlichen und für die Versionsnummern (aktivierbare und übernehmbare Version) angelegt werden.
Ein Eintrag in der Verwaltungsdatei wird ebenfalls eingetragen. Er enthält die Pid des Konfigurationsbereichs und die Pfadangabe, wo sich die Konfigurationsdatei nach Erstellung befindet.
- Specified by:
createConfigurationArea
in interfaceConfigurationControl
- Parameters:
name
- Name des neuen Konfigurationsbereichspid
- eindeutige Pid des neuen KonfigurationsbereichsauthorityPid
- die Pid des Konfigurationsverantwortlichen des neuen Konfigurationsbereichs- Returns:
- Das Objekt des neuen Konfigurationsbereichs.
- Throws:
ConfigurationChangeException
- Falls kein neuer Konfigurationsbereich angelegt werden konnte.
-
checkConsistency
public ConsistencyCheckResultInterface checkConsistency(java.util.Collection<ConfigAreaAndVersion> configurationAreas)Description copied from interface:ConfigurationControl
Die Implementierung dieser Methode beauftragt die Konfiguration alle Konfigurationsbereiche einer Konsistenzprüfung zu unterziehen (siehe TPuK1-138). Diese Methode kann unabhängig von der AktivierungConfigurationControl.activateConfigurationAreas(java.util.Collection<de.bsvrz.dav.daf.main.config.management.ConfigAreaAndVersion>)
oder FreigabeConfigurationControl.releaseConfigurationAreasForTransfer(java.util.Collection<de.bsvrz.dav.daf.main.config.management.ConfigAreaAndVersion>)
aufgerufen werden.- Specified by:
checkConsistency
in interfaceConfigurationControl
- Parameters:
configurationAreas
- Definiert alle Konfigurationsbereiche, die einer Konsistenzprüfung unterzogen werden sollen. Der Bereich wird über seine Pid identifiziert, zusätzlich wird die Version angegeben in der der Konfigurationsbereich geprüft werden soll. Alle Bereiche der Konfiguration, die nicht angegeben werden, werden in die Prüfung einbezogen und zwar mit ihrer aktuellen Version und müssen somit nicht explizit angegeben werden.- Returns:
- Ergebnis der Konsistenzprüfung
-
activateConfigurationAreas
public ConsistencyCheckResultInterface activateConfigurationAreas(java.util.Collection<ConfigAreaAndVersion> configurationAreas) throws ConfigurationChangeExceptionDescription copied from interface:ConfigurationControl
Die Implementierung dieser Methode beauftragt die Konfiguration die angebenen Konfigurationsbereiche zu aktivieren (siehe TPuK1-142). Vor der Aktivierung wird automatisch eine Konsistenzprüfung durchgeführt. Die Bereiche dürfen nur aktiviert werden, wenn weder lokale noch Interferenzfehler aufgetreten sind.Verlief die Konsistenzprüfung positiv (weder lokale noch Interferenzfehler), wird beim nächsten Neustart der Konfiguration jeder angegebene Konfigurationsbereich mit der angegebenen Version gestartet.
Verlief die Konsistenzprüfung negativ, wird keiner der angegebenen Konfigurationsbereiche aktiviert.
Die Implementierung muss dabei berücksichtigen, dass nur Konfigurationsbereiche aktiviert werden dürfen, für die die Konfiguration auch verantwortlich (Konfiguration ist Konfigurationsverantwortlicher des Bereichs) ist oder aber Konfigurationsbereiche die zur Aktivierung durch andere Konfigurationsverantwortliche freigegeben sind.
Die Version, in der ein Konfigurationsbereich aktiviert werden soll, muss größer sein als die derzeit aktuelle Version in der der Konfigurationsbereich läuft.
- Specified by:
activateConfigurationAreas
in interfaceConfigurationControl
- Parameters:
configurationAreas
- Konfigurationsbereiche, die in der jeweiligen Version aktiviert werden sollen- Returns:
- Ergebnis der Konsistenzprüfung. Die Bereiche werden nur aktiviert, wenn es weder zu einem lokalen noch zu einem Interferenzfehler gekommen ist.
- Throws:
ConfigurationChangeException
- Falls mindestens ein Konfigurationsbereich nicht aktiviert werden konnte.
Folgende Gründe können die Ursache sein:
Die Konfiguration wollte einen Konfigurationsbereich in einer Version aktivieren, die noch nicht zur Aktivierung freigegeben war und für den sie nicht der Konfigurationsverantwortliche ist.
Ein Konfigurationsbereich läuft in einer höheren Version, als die Version in der er aktiviert werden soll.
-
releaseConfigurationAreasForTransfer
public ConsistencyCheckResultInterface releaseConfigurationAreasForTransfer(java.util.Collection<ConfigAreaAndVersion> configurationAreas) throws ConfigurationChangeExceptionDescription copied from interface:ConfigurationControl
Die Implementierung dieser Methode beauftragt die Konfiguration die angebenen Konfigurationsbereiche in den Status "Freigabe zur Übernahme" zu überführen (siehe TPuK1-143). Bevor die angegebenen Bereiche freigegeben werden, wird automatisch eine Konsistenzprüfung durchgeführt.Verlief die Konsistenzprüfung positiv(keine lokalen Fehler), werden die angegebenen Konfigurationsbereiche mit der angegebenen Version freigegeben.
Verlief die Konsistenzprüfung negativ, wird keiner der angegebenen Konfigurationsbereiche freigegeben.
Die Implementierung muss prüfen ob die Version, in der der Bereich zur Übernahme freigegeben wird, größer als die "aktuelle" Version, die zur Übernahme freigegeben wurde, ist.
- Specified by:
releaseConfigurationAreasForTransfer
in interfaceConfigurationControl
- Parameters:
configurationAreas
- Konfigurationsbereiche, die in der jeweiligen Version freigegeben werden sollen- Returns:
- Ergebnis der Konsistenzprüfung. Die Konfigurationsbereiche werden nur freigegeben, wenn kein lokaler Fehler aufgetreten ist.
- Throws:
ConfigurationChangeException
- Falls mindestens ein Konfigurationsbereich nicht zur Übernahme freigegeben werden konnte.
Folgende Gründe können die Ursache sein:
Die Konfiguration war nicht der Konfigurationsverantwortliche für alle angegebenen Bereiche.
Die aktuelle Version, in der ein Bereich bereits zur Übernahme freigegeben wurde, ist größer als die Version, in der der Bereich freigegeben werden soll.
Der Datensatz, der die Versionsnummer speichert konnte nicht verändert oder geschrieben werden.
-
releaseConfigurationAreasForActivation
public void releaseConfigurationAreasForActivation(java.util.Collection<ConfigAreaAndVersion> configurationAreas) throws ConfigurationChangeExceptionDescription copied from interface:ConfigurationControl
Die Implementierung dieser Methode beauftragt die Konfiguration die angegebenen Konfigurationsbereiche in den Status "Freigabe zur Aktivierung" zu überführen. Dadurch können andere Konfigurationen die Konfigurationsbereiche übernehmen und diese lokal aktivieren. Jede Konfiguration kann nur die Bereiche zur Aktivierung freigeben, für die sie auch der Konfigurationsverantwortliche ist.Es findet keine Konsistenzprüfung statt, da ein Konfigurationsbereich nur dann für andere zur Aktivierung freigegeben werden darf, wenn er bereits lokal aktiviert
ConfigurationControl.activateConfigurationAreas(java.util.Collection<de.bsvrz.dav.daf.main.config.management.ConfigAreaAndVersion>)
wurde.Es werden entweder alle angegebenen Konfigurationsbereiche in der jeweils geforderten Version aktiviert oder keiner.
- Specified by:
releaseConfigurationAreasForActivation
in interfaceConfigurationControl
- Parameters:
configurationAreas
- Konfigurationsbereiche, die in der jeweiligen Version für andere Konfigurationen freigegeben werden sollen- Throws:
ConfigurationChangeException
- Falls mindestens ein Konfigurationsbereich nicht zur Aktivierung freigegeben werden konnte.
Folgende Gründe können die Ursache sein:
Die Konfiguration, die die Konfigurationsbereiche freigeben soll, ist nicht der Konfigurationsverantwortliche für den/die Bereich/e.
Ein Bereich soll in einer Version freigegeben werden, der noch nicht durch den Konfigurationsverantwortlichen der Konfiguration lokal aktiviert wurdeConfigurationControl.activateConfigurationAreas(java.util.Collection<de.bsvrz.dav.daf.main.config.management.ConfigAreaAndVersion>)
.
Ein Bereich soll in einer Version zur Aktivierung freigegeben werden, der bereits in einer höheren Version zur Aktivierung freigegeben wurde.
Der Datensatz, der die Versionsnummer speichert konnte nicht verändert oder geschrieben werden.
-
importConfigurationAreas
public void importConfigurationAreas(java.io.File importPath, java.util.Collection<java.lang.String> configurationAreaPids) throws ConfigurationChangeExceptionDescription copied from interface:ConfigurationControl
Die Implementierung dieser Methode importiert die Versorgungsdateien der angegebenen Pids vom angegebenen Verzeichnis in die bestehende Konfiguration. Dadurch können neue Konfigurationsbereiche angelegt oder bestehende Bereiche verändert werden.Versorgungsdateien können auch wieder
exportiert
werden.- Specified by:
importConfigurationAreas
in interfaceConfigurationControl
- Parameters:
importPath
- Verzeichnis der VersorgungsdateienconfigurationAreaPids
- Pids der zu importierenden Konfigurationsbereiche- Throws:
ConfigurationChangeException
- Falls während des Imports Fehler auftreten. Nach Korrektur des Fehlers kann der Import wiederholt werden.
-
exportConfigurationAreas
public void exportConfigurationAreas(java.io.File exportPath, java.util.Collection<java.lang.String> configurationAreaPids) throws ConfigurationTaskExceptionDescription copied from interface:ConfigurationControl
Die Implementierung dieser Methode exportiert aus der bestehenden Konfiguration die Versorgungsdateien zu den angegebenen Pids in das angegebene Verzeichnis. Änderungen können an den Versorgungsdateien vorgenommen und diese wiederimportiert
werden.- Specified by:
exportConfigurationAreas
in interfaceConfigurationControl
- Parameters:
exportPath
- Verzeichnis der VersorgungsdateienconfigurationAreaPids
- Pids der zu exportierenden Konfigurationsbereiche- Throws:
ConfigurationTaskException
- Die angegebenen Bereiche konnte nicht exportiert werden. Dies kann mehrere Gründe haben (zu einer Pid wurde kein Konfigurationsbereich gefunden, eine Versorgungsdatei konnte nicht geschrieben werden, usw.).
-
releaseConfigurationAreasForActivationWithoutCAActivation
public ConsistencyCheckResultInterface releaseConfigurationAreasForActivationWithoutCAActivation(java.util.Collection<ConfigAreaAndVersion> configurationAreas) throws ConfigurationChangeExceptionDescription copied from interface:ConfigurationControl
Die Implementierung dieser Methode beauftragt die Konfiguration die angegebenen Bereiche in den Zustand "Darf durch andere aktiviert werden, obwohl der KV es selbst nicht aktiviert hat" zu bringen.Dadurch können andere Konfigurationen die Bereiche übernehmen und aktivieren.
Die Konsistenzprüfung darf bei dieser Art der Aktivierung Interferenzfehler zulassen, lokale Fehler sind nicht erlaubt. Alle Bereiche, die nicht im Parameter configurationAreas angegeben sind, werden in der "zur Aktivierung freigegeben"-Version geprüft. Das betrifft ebenfalls die Bereich, für die der KV verantwortlich ist.
Es werden entweder alle angegebenen Bereiche aktiviert oder keiner (falls es zu einem Fehler kommt).
Eine Beispielanwendung dafür wäre: Bereich A stellt ein Objekt zur Verfügung, kann es aber nicht aktivieren, weil der Typ in Bereich B definiert wird. Bereich B kann nicht aktivieren, weil das Objekt aus Bereich A referenziert wird.
Bereich A oder Bereich B können dann über diese Methode das Objekt oder den Typ trotzdem für den anderen Bereich zur Aktivierung freigeben.
- Specified by:
releaseConfigurationAreasForActivationWithoutCAActivation
in interfaceConfigurationControl
- Parameters:
configurationAreas
- Bereiche, die für andere zur Aktivierung freigegeben sind aber ihrerseits nicht durch den KV aktiviert wurden.- Returns:
- Ergebnis der Konsistenzprüfung. Die Konfigurationsbereiche werden nur freigegeben, wenn kein Interferenzfehler aufgetreten ist.
- Throws:
ConfigurationChangeException
- Fehler beim Versuch die Bereiche für andere freizugeben. Es wurde kein Bereich freigegeben.
-