|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectde.bsvrz.puk.config.main.consistencycheck.ConsistencyCheck
public class ConsistencyCheck
Die Klasse übernimmt die Konsistenzprüfung, wie sie in TPuK1-138,139,140,141 gefordert wird.
Field Summary | |
---|---|
private Map<ConfigurationArea,Set<ConfigurationAreaDependency>> |
_areasDependencies
Speichert zu einem Konfigurationsbereich die Abhängigkeiten zu anderen Konfigurationsbereichen. |
private Map<ConfigurationArea,Short> |
_areaVersionMap
Speichert zu einem Konfigurationsbereich die Version, mit der der Bereich aktiviert werden soll. |
private long |
_configurationAuthorityId
Objekt-ID des lokalen Konfigurationsverantwortlichen oder 0, falls der lokale Konfigurationsverantwortliche nicht bestimmt werden kann |
private ConfigAreaAndVersion[] |
_consistencyCheckDefinition
|
private ConfigDataModel |
_dataModel
Datenmodell für die übergebene Bereiche |
private static Debug |
_debug
DebugLogger für Debug-Ausgaben |
private boolean |
_storeDependencies
Flag, das festlegt, ob die Abhängigkeiten zwischen Bereichen geschrieben und geprüft werden sollen. |
private VersionedView |
_versionedView
Hilfsobjekt, das bei Zugriffen auf Konfigurationsdaten die Konfigurationsbereiche in vorgegebenen Versionen betrachtet |
Constructor Summary | |
---|---|
ConsistencyCheck(ConfigAreaAndVersion[] consistencyCheckDefinition,
ConfigDataModel dataModel)
Erstellt ein Objekt, das vorgegebene Konfigurationsbereiche einer Konsistenzprüfung unterzieht. |
Method Summary | |
---|---|
private boolean |
checkDataSetReferences(Data data,
Data parentData,
ConfigurationArea configArea,
DataModel dataModel,
ConsistencyCheckResult errorObject,
SystemObject systemObject,
Map<SystemObject,List<SystemObject>> usedComponents)
Durchläuft rekursiv einen Datensatz und prüft ob alle referenzierten Objekte im entsprechenden Konfigurationsbereich vorhanden und gültig sind. |
private void |
checkDependency(SystemObject systemObject,
SystemObject dependencyObject,
ConfigurationAreaDependencyKind dependencyKind)
Prüft, ob ein Objekt vom anderen Abhängig ist und trägt beim Konfigurationsbereich, falls nötig, die Abhängigkeit ein. |
private boolean |
checkDoubleComponentUsage(SystemObject component,
SystemObject componentUser,
Map<SystemObject,List<SystemObject>> componentsOfAnArea,
ConsistencyCheckResult result)
Prüft, ob eine Komponente bereits von einem anderen übergeordneten Objekt benutzt wird. |
private void |
checkDoubleIdsInDifferentAreas(SystemObject systemObject,
Map<Long,List<SystemObject>> idsFromAllAreas,
ConsistencyCheckResult result)
Diese Methode prüft, ob eine Id bereits vergeben wurde. |
private void |
checkDoublePidsInDifferntAreas(SystemObject systemObject,
Map<String,SystemObject> pidsFromAllAreas,
ConsistencyCheckResult result)
Diese Methode prüft, ob die Pid des übergebenen Objekts bereits in einem anderen Konfigurationsbereich vergeben wurde. |
private void |
checkParameterTypeHierarchyDefinition(ConsistencyCheckResult result,
Collection<ConfigurationObject> hierarchyObjects)
|
private boolean |
configurationObjectAvailability(ConfigurationObject configurationObject)
Prüft ob ein Objekt in der angegebenen Version gültig ist (das Objekt kann auch über die Version hinaus gültig sein). |
private void |
createDependency(short verifyingVersion,
ConfigurationArea verifyingArea,
short neededVersion,
ConfigurationArea dependencyArea,
ConfigurationAreaDependencyKind dependencyKind)
Speichert eine Abhängigkeit für den Bereich verifyingArea in Map _areasDependencies . |
private StringBuffer |
createLocalErrorMessagePartOne(ConfigurationArea configArea,
String errorType)
Erzeugt den ersten Teil einer Fehlermeldung, die zu einem lokalen Fehler gehört. |
private short |
getActiveVersion(SystemObject systemObject)
Diese Methode sucht für ein Objekt die aktive Version. |
private String |
getAttributeDescription(Data parentData,
Data data)
|
(package private) List<SystemObject> |
getAttributeGroups(SystemObjectType systemObjectType)
Alle Attributgruppen suchen (auch supertypen) |
private short |
getDependenceVersion(SystemObject systemObject)
Diese Methode gibt die Version zurück, in der eine Abhängigkeit zu dem übergebenen Objekt besteht. |
(package private) List<ObjectSetUse> |
getObjectSetUses(SystemObjectType systemObjectType)
Diese Methode ermittelt anhand eines Objekt-Typen seine sämtlichen Mengenverwendungen. |
private boolean |
ignoreAttributeValueError(SystemObject configArea,
AttributeGroup attributeGroup,
Aspect aspect,
Data data)
Beim anlegen eines Konfigurationsobjekts, das einen Konfigurationsbereich darstellt, werden in einem Datensatz drei Zeitstempel gespeichert. |
private boolean |
isObjectTransient(SystemObject systemObject)
Prüft, ob ein Objekt transient ist. |
private boolean |
isParameter(AttributeGroup checkATG)
Prüft, ob eine ATG in der aktiven/zu aktivierenden Version parametrierend ist. |
private void |
saveDependencies()
Speichert alle Abhängigkeiten zwischen Bereichen, die durch die Konsistenzprüfung gefunden wurden, in entsprechenden Datensätzen im Bereich. |
ConsistencyCheckResultInterface |
startConsistencyCheck(KindOfConsistencyCheck kindOfConsistencyCheck)
Diese Methode führt eine Konsistenzprüfung für alle(aktive, im Konstruktor übergebene, nur in den Verwaltungsinformationen) Konfigurationsbereiche durch. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private static final Debug _debug
private final ConfigAreaAndVersion[] _consistencyCheckDefinition
private final ConfigDataModel _dataModel
private final VersionedView _versionedView
private final Map<ConfigurationArea,Short> _areaVersionMap
private final Map<ConfigurationArea,Set<ConfigurationAreaDependency>> _areasDependencies
private long _configurationAuthorityId
private boolean _storeDependencies
Constructor Detail |
---|
public ConsistencyCheck(ConfigAreaAndVersion[] consistencyCheckDefinition, ConfigDataModel dataModel)
consistencyCheckDefinition
- Pid´s aller Konfigurationsbereiche, die in einer neuen Version geprüft werden sollen. Zu jedem Konfigurationsbereich ist
ausserdem die Version gespeichert, die aktiviert werden soll. Ist die Version 0, so wird die größte zu verwendene Version
gesucht. Die ModifiableVersion darf nur dann berücksichtigt werden, wenn es auch Elemente gibt die in der
ModifiableVersion geändert werden würden. Die anderen Bereiche, die nicht übergeben wurden, werden in der aktuellen
Version geprüft.dataModel
- Datenmodell, mit dem die übergebenen Bereich geprüft werden sollenMethod Detail |
---|
public ConsistencyCheckResultInterface startConsistencyCheck(KindOfConsistencyCheck kindOfConsistencyCheck)
kindOfConsistencyCheck
- Bestimmt wie mit Abhängigkeiten zwischen Konfigurationsbereichen umgegangen wird. Bei einer einfachen Konsistenzprüfung werden
die Abhängigkeiten zwischen den Bereichen zwar erkannt, aber nicht mittels Dätensätzen am Bereich gespeichert. Bei einer
Freigabe zur Übernahme (die auch Interferenzfehler verzeiht) werden wiedrum Abhängigkeiten gespeichert, die bei einer lokalen
Aktivierung nicht gespeichert werden würden.
private void checkDependency(SystemObject systemObject, SystemObject dependencyObject, ConfigurationAreaDependencyKind dependencyKind)
systemObject
muss der Verantwortliche der Konfiguration sein, da nur dieser Abhängigkeiten in
den Bereichen eintragen darf.
Wenn die beiden Objekte im selben Bereich sind, kommt es zu keiner Abhängigkeit.
systemObject
- Objekt, das vielleicht von einem anderen Objekt abhängig ist und somit dazu führt, dass der Bereich des Objekts eine Abhängigkeit zu
einem anderen Bereich erhält.dependencyObject
- Objekt von dem der Parameter systemObject
abhängig ist.dependencyKind
- Art der Abhängigkeit, wenn eine Abhängigkeit gefunden wird. Als Versionen werden die eingetragen, in der die Aktion ausgeführt wird,
dies muss nicht unbedingt die aktuelle sein.private boolean isObjectTransient(SystemObject systemObject)
false
zurückgegeben. Bei dynamischen Objekten
muss dies geprüft werden.
systemObject
- Objekt, das geprüft werden soll, ob es transient ist.
false
, wenn ein dynamisches Objekt nicht transient ist und false
, wenn ein Konfigurationsobjekt übergeben wird;
true
, wenn ein dynamisches Objekt transient ist.private void createDependency(short verifyingVersion, ConfigurationArea verifyingArea, short neededVersion, ConfigurationArea dependencyArea, ConfigurationAreaDependencyKind dependencyKind)
verifyingArea
in Map _areasDependencies
.
Damit die Daten endgültig als Datensatz gespeichert werden, muss die Methode saveDependencies()
aufgerufen werden.
verifyingVersion
- Version, in der die Abhängigkeit entstanden ist.verifyingArea
- Bereich, der ab verifyingVersion
vom Bereich dependencyArea
abhängig ist.neededVersion
- Version, in der der Bereich dependencyArea
vorliegen muss, damit die Abhängigkeit aufgelöst werden kann.dependencyArea
- Bereich, von dem verifyingArea
abhängig ist.dependencyKind
- Art der Abhängigkeitprivate void saveDependencies() throws ConfigurationChangeException
_areasDependencies
bis alle Operationen abgeschlossen sind.
ConfigurationChangeException
- Wird geworfen, wenn der Datensatz, der die Abhängigkeiten enthält, nicht geschrieben werden kann.private void checkParameterTypeHierarchyDefinition(ConsistencyCheckResult result, Collection<ConfigurationObject> hierarchyObjects)
private boolean isParameter(AttributeGroup checkATG)
checkATG
- ATG, die geprüft werden soll
true
, wenn die übergeben ATG in der übergebenen Version gültig ist; false
, wenn nicht.private boolean ignoreAttributeValueError(SystemObject configArea, AttributeGroup attributeGroup, Aspect aspect, Data data)
true
zurück gibt: 1) Das übergebene Objekt muss ein Konfigurationsbereich
sein 2) Es muss sich um die Attributgruppe "atg.konfigurationsBereichÄnderungsZeiten" handeln 3) Es muss der Aspekt "asp.eigenschaften" Eigenschaften
benutzt werden 4) Einer der folgenden Attribute muss 0 sein: LetzteÄnderungszeitDynamischesObjekt, LetzteÄnderungszeitKonfigurationsObjekt,
LetzteÄnderungszeitDatensatz 5) Falls ein Attribut nicht 0 ist, so muss der Wert des Attributs definiert sein.
configArea
- Es muss sich um einen Konfigurationsbereich handeln (das wird mit instanceOf geprüft)attributeGroup
- ATG, die zu einem Fehler führteaspect
- Aspekt, der zu einem Fehler führtedata
- Datensatz, der Daten enthält, die nicht definiert sind.
true
, wenn die übergenen Parameter zwar einen lokalen Fehler enthalten, dieser aber ignoriert werden kann. false
, wenn es
sich um einen lokalen Fehler handelt, der gemeldet werden muss.private boolean checkDoubleComponentUsage(SystemObject component, SystemObject componentUser, Map<SystemObject,List<SystemObject>> componentsOfAnArea, ConsistencyCheckResult result)
result
gespeichert.
component
- Komponente, die geprüft werden soll. Diese wird als Key in der übergebenen Map gespeichert.componentUser
- Übergeordnetes Objekt, dass die Komponente nutzt. Dieser Wert wird als Value in der Map gespeichert.componentsOfAnArea
- Map, die alle bisher benutzten Komponenten und deren Benutzer enthält.result
- Objekt, an dem lokale Fehler gespeichert werden.
true
, wenn es zu keinem Fehler gekommen ist. false
, wenn eine Komponente von zwei übergeordneten Objekten benutzt wurde.private void checkDoubleIdsInDifferentAreas(SystemObject systemObject, Map<Long,List<SystemObject>> idsFromAllAreas, ConsistencyCheckResult result)
systemObject
- Objekt, das überprüft werden sollidsFromAllAreas
- Map, die alle Ids speichert. In dieser Map wir das übergebene Objekt systemObject
ebenfalls gespeichert.result
- Wird eine doppelte Id gefunden, so wird ein lokaler Fehler erzeugt und an diesem Objekt gespeichert.private void checkDoublePidsInDifferntAreas(SystemObject systemObject, Map<String,SystemObject> pidsFromAllAreas, ConsistencyCheckResult result)
result
übergeben.
Eine Ausnahme bilden Objekte mit der Pid "" (es wurde keine Pid angegeben), diese werden nicht gespeichert und nicht Berücksichtigt.
Die Warnung darf nur eingetragen werden, wenn die beiden Objekte in unterschiedlichen Konfigurationsbereichen zu finden sind. Sind beide Objekte im gleichen
Bereich, wurde ein lokaler Fehler gefunden. Dieser muss durch einen anderen Test gefunden und gemeldet werden.
Wurde die Pid bisher nicht vergeben, so wird sie in der übergebenen Map gespeichert.
systemObject
- Objekt, dessen Pid geprüft werden soll.pidsFromAllAreas
- Alle Pids, die bisher in die Map eingetragen wurden. Wurde eine doppelte Pid gefunden, so wird das neue Objekt nicht in die Map
eingetragen.result
- Objekt, in dem eine Warnung eingetragen wird, wenn die Pid des übergebenen Objekts systemObject
bereits in der Map
vorhanden war.private boolean checkDataSetReferences(Data data, Data parentData, ConfigurationArea configArea, DataModel dataModel, ConsistencyCheckResult errorObject, SystemObject systemObject, Map<SystemObject,List<SystemObject>> usedComponents)
data
- Datensatz, der geprüft werden sollparentData
- Übergeordnetes Data-Objekt oder null
, falls data
einen ganzen Datensatz darstellt.configArea
- Konfigurationsbereich, in dem sich ein referenziertes Objekt befinden muss, wenn die Referenz als Komposition definiert istdataModel
- Datenmodell, in dem sich ein referenziertes Objekt befinden muss, wenn die Referenz nicht als Komposition definiert isterrorObject
- Objekt, in dem ein Fehler eingetragen werden kannsystemObject
- Objekt, an dem der Datensatz gespeichert ist. Diese Information wird benötigt, um eine entsprechende Fehlermeldung zu generierenusedComponents
- Speichert alle Komponenten und deren übergordnete Objekte.
private String getAttributeDescription(Data parentData, Data data)
private boolean configurationObjectAvailability(ConfigurationObject configurationObject)
configurationObject
- Objekt, das geprüft werden soll
private StringBuffer createLocalErrorMessagePartOne(ConfigurationArea configArea, String errorType)
configArea
- Konfigurationsbereich, in dem der lokale Fehler aufgetreten isterrorType
- Art des Fehlers, der aufgetreten ist
List<ObjectSetUse> getObjectSetUses(SystemObjectType systemObjectType)
systemObjectType
- der Objekt-Typ
List<SystemObject> getAttributeGroups(SystemObjectType systemObjectType)
systemObjectType
-
private short getActiveVersion(SystemObject systemObject)
systemObject
- Objekt, zu dem die aktive Version des Bereich ermittelt werden soll
private short getDependenceVersion(SystemObject systemObject)
systemObject
- Objekt, dessen Version gefunden werden soll
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |