de.bsvrz.dav.daf.main.config.management
Interface ConfigurationControl

All Known Implementing Classes:
ConfigurationControlAdapter

public interface ConfigurationControl

Dieses Interface enthält alle nötigen Zugriffsmethoden, um die Konfigurationsdaten im Sinne des Konfigurationseditors zu manipulieren. Dazu gehört auch der Import und der Export von Versorgungsdateien, sowie die Konsistenzprüfung des Datenmodells.

Author:
Kappich Systemberatung

Method Summary
 ConsistencyCheckResultInterface activateConfigurationAreas(Collection<ConfigAreaAndVersion> configurationAreas)
          Die Implementierung dieser Methode beauftragt die Konfiguration die angebenen Konfigurationsbereiche zu aktivieren (siehe TPuK1-142).
 ConsistencyCheckResultInterface checkConsistency(Collection<ConfigAreaAndVersion> configurationAreas)
          Die Implementierung dieser Methode beauftragt die Konfiguration alle Konfigurationsbereiche einer Konsistenzprüfung zu unterziehen (siehe TPuK1-138).
 ConfigurationArea createConfigurationArea(String name, String pid, String authorityPid)
          Die Implementierung dieser Methode legt einen neuen Konfigurationsbereich in der lokalen Konfiguration an.
 void exportConfigurationAreas(File exportPath, Collection<String> configurationAreaPids)
          Die Implementierung dieser Methode exportiert aus der bestehenden Konfiguration die Versorgungsdateien zu den angegebenen Pids in das angegebene Verzeichnis.
 Map<String,ConfigurationArea> getAllConfigurationAreas()
          Alle Konfigurationsbereichseinträge in der Verwaltungsdatei werden zurückgegeben.
 void importConfigurationAreas(File importPath, Collection<String> configurationAreaPids)
          Die Implementierung dieser Methode importiert die Versorgungsdateien der angegebenen Pids vom angegebenen Verzeichnis in die bestehende Konfiguration.
 void releaseConfigurationAreasForActivation(Collection<ConfigAreaAndVersion> configurationAreas)
          Die Implementierung dieser Methode beauftragt die Konfiguration die angegebenen Konfigurationsbereiche in den Status "Freigabe zur Aktivierung" zu überführen.
 ConsistencyCheckResultInterface releaseConfigurationAreasForActivationWithoutCAActivation(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(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).
 

Method Detail

getAllConfigurationAreas

Map<String,ConfigurationArea> getAllConfigurationAreas()
Alle Konfigurationsbereichseinträge in der Verwaltungsdatei werden zurückgegeben. Hierbei ist es unerheblich, ob der Bereich bereits aktiviert wurde oder noch zu aktivieren ist.

Returns:
Eine Map, deren Schlüssel die Pid des Bereichs und der Wert das Objekt des Konfigurationsbereichs ist.

createConfigurationArea

ConfigurationArea createConfigurationArea(String name,
                                          String pid,
                                          String authorityPid)
                                          throws ConfigurationChangeException
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.

Parameters:
name - Name des neuen Konfigurationsbereichs
pid - eindeutige Pid des neuen Konfigurationsbereichs
authorityPid - die Pid des Konfigurationsverantwortlichen des neuen Konfigurationsbereichs
Returns:
Das Objekt des neuen Konfigurationsbereichs.
Throws:
ConfigurationChangeException - Falls kein neuer Konfigurationsbereich angelegt werden konnte.

checkConsistency

ConsistencyCheckResultInterface checkConsistency(Collection<ConfigAreaAndVersion> configurationAreas)
Die Implementierung dieser Methode beauftragt die Konfiguration alle Konfigurationsbereiche einer Konsistenzprüfung zu unterziehen (siehe TPuK1-138). Diese Methode kann unabhängig von der Aktivierung activateConfigurationAreas(java.util.Collection) oder Freigabe releaseConfigurationAreasForTransfer(java.util.Collection) aufgerufen werden.

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

ConsistencyCheckResultInterface activateConfigurationAreas(Collection<ConfigAreaAndVersion> configurationAreas)
                                                           throws ConfigurationChangeException
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.

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

ConsistencyCheckResultInterface releaseConfigurationAreasForTransfer(Collection<ConfigAreaAndVersion> configurationAreas)
                                                                     throws ConfigurationChangeException
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.

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

void releaseConfigurationAreasForActivation(Collection<ConfigAreaAndVersion> configurationAreas)
                                            throws ConfigurationChangeException
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 activateConfigurationAreas(java.util.Collection) wurde.

Es werden entweder alle angegebenen Konfigurationsbereiche in der jeweils geforderten Version aktiviert oder keiner.

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 wurde activateConfigurationAreas(java.util.Collection).
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

void importConfigurationAreas(File importPath,
                              Collection<String> configurationAreaPids)
                              throws ConfigurationChangeException
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.

Parameters:
importPath - Verzeichnis der Versorgungsdateien
configurationAreaPids - Pids der zu importierenden Konfigurationsbereiche
Throws:
ConfigurationChangeException - Falls während des Imports Fehler auftreten. Nach Korrektur des Fehlers kann der Import wiederholt werden.

exportConfigurationAreas

void exportConfigurationAreas(File exportPath,
                              Collection<String> configurationAreaPids)
                              throws ConfigurationTaskException
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 wieder importiert werden.

Parameters:
exportPath - Verzeichnis der Versorgungsdateien
configurationAreaPids - 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

ConsistencyCheckResultInterface releaseConfigurationAreasForActivationWithoutCAActivation(Collection<ConfigAreaAndVersion> configurationAreas)
                                                                                          throws ConfigurationChangeException
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.

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.