public class RelaxedModelChanges
extends java.lang.Object
Hilfsklasse für die Spezialbehandlungen bei unversionierten Datenmodelländerungen.
Der Import läuft in zwei Schritten ab. Zurerst wird mit den Processable-Methoden geprüft, ob unversionierte Änderungen möglich sind (true) oder nicht (false). Wenn unversionierte Änderungen möglich sind und auch keine anderen Änderungen dagegen sprechen wird später dann bei den entsprechenden allow…-Methoden nocheinmal geprüft, ob die Änderugnen durchgeführt werden dürfen (die Logik muss natürlich identisch sein). Da die allow…-Methoden direkt vor dem Ändern der Konfigurationsdateien ausgeführt werden, wird in den allow…- Methoden auch der entsprechende Datensatz am Konfigurationsbereich ergänzt, der Informationen über unversionierte Änderungen enthält.
Dieser Datensatz darf noch nicht bei den Processable-Methoden ergänzt werden, da dort noch niocht feststeht, dass nicht auch andere Aktionen durchgeführt werden, die trotzdem eine neue Objektversion bewirken würden (z.B. hinzufügen vo nStatuswerten (würde erlaubt werden) mit gleichzeitigem Löschen von Statuswerten.
Modifier and Type | Field and Description |
---|---|
private AttributeGroup |
_attributeGroup |
private static Debug |
_debug |
private static boolean |
_isEnabled |
Constructor and Description |
---|
RelaxedModelChanges(DataModel dataModel) |
Modifier and Type | Method and Description |
---|---|
boolean |
allowChangeArrayMaxCount(ConfigSystemObject configSystemObject,
Data oldData,
Data newData)
Gibt true zurück, falls die Länge des Daten-Arrays geändert werden darf und markiert den zugehörigen Attributtyp als durch unversionierte Änderungen bearbeitet.
|
boolean |
allowChangeValueName(IntegerValueState integerValueState)
Gibt zurück, ob das Ändern eines Wert-Namens erlaubt sein soll und markiert den zugehörigen Attributtyp als durch unversionierte Änderungen bearbeitet.
|
boolean |
allowChangeValueRange(ConfigSystemObject configSystemObject,
Data oldData,
Data newData)
Gibt true zurück sofern der Wertebereich bearbeitet werden darf und markiert den zugehörigen Attributtyp als durch unversionierte Änderungen bearbeitet.
|
boolean |
allowObjectSetAdd(ConfigNonMutableSet objectSet)
Gibt true zurück, sofern der Wertezustand hinzugefügt werden darf und markiert den zugehörigen Attributtyp als durch unversionierte Änderungen bearbeitet.
|
private static int |
getDataType(int maxCount)
Gibt für jeden Wertebereich (Byte, Short, Integer) eine eindeutige Nummer (0,1,2) zurück.
|
static RelaxedModelChanges |
getInstance(DataModel dataModel) |
boolean |
isAddStatesProcessable(IntegerAttributeType integerAttributeType)
Gibt zurück, ob zu dem angegebenen IntegerAttributeType neue Statuswerte hinzugefügt werden dürfen
|
boolean |
isChangeArrayMaxCountProcessable(int oldMaxCount,
int newMaxCount)
Gibt zurück, ob die maximale Länge eines Feldes geändert werden darf.
|
boolean |
isChangeValueNameProcessable(IntegerValueState integerValueState)
Gibt zurück, ob das Ändern eines Wert-Namens erlaubt sein soll, ohne eine neue Version zu erstellen.
|
boolean |
isValueRangeChangeProcessable(ConfigurationValueRange importedValueRange,
IntegerValueRange existingValueRange)
Sonderbehandlung für Wertebereiche.
|
private boolean |
markAsUnversionedChanged(AttributeType attributeType) |
private static final Debug _debug
private static boolean _isEnabled
private final AttributeGroup _attributeGroup
public RelaxedModelChanges(DataModel dataModel)
public boolean isValueRangeChangeProcessable(ConfigurationValueRange importedValueRange, IntegerValueRange existingValueRange)
Sonderbehandlung für Wertebereiche. Das Ändern, wird erlaubt, wenn der Bereich nicht verkleinert wird und Einheit und Skalierung beibehalten werden.
importedValueRange
- Eingelesene BereichsdefinitionexistingValueRange
- Existierende Bereichsdefinitionpublic boolean isAddStatesProcessable(IntegerAttributeType integerAttributeType)
Gibt zurück, ob zu dem angegebenen IntegerAttributeType neue Statuswerte hinzugefügt werden dürfen
integerAttributeType
- IntegerAttributeTypepublic boolean isChangeArrayMaxCountProcessable(int oldMaxCount, int newMaxCount)
Gibt zurück, ob die maximale Länge eines Feldes geändert werden darf. Vorraussetzung: oldMaxCount != newMaxCount und das Feld hat eine variable Länge.
oldMaxCount
- Alte LängenewMaxCount
- Neue Längepublic boolean isChangeValueNameProcessable(IntegerValueState integerValueState)
Gibt zurück, ob das Ändern eines Wert-Namens erlaubt sein soll, ohne eine neue Version zu erstellen.
integerValueState
- Statuswertpublic boolean allowChangeValueRange(ConfigSystemObject configSystemObject, Data oldData, Data newData)
Gibt true zurück sofern der Wertebereich bearbeitet werden darf und markiert den zugehörigen Attributtyp als durch unversionierte Änderungen bearbeitet.
configSystemObject
- oldData
- Existierende Bereichsdefinition Alter DatensatznewData
- Eingelesene Bereichsdefinition Neuer Datensatzpublic boolean allowChangeValueName(IntegerValueState integerValueState)
Gibt zurück, ob das Ändern eines Wert-Namens erlaubt sein soll und markiert den zugehörigen Attributtyp als durch unversionierte Änderungen bearbeitet.
integerValueState
- Statuswertpublic boolean allowObjectSetAdd(ConfigNonMutableSet objectSet)
Gibt true zurück, sofern der Wertezustand hinzugefügt werden darf und markiert den zugehörigen Attributtyp als durch unversionierte Änderungen bearbeitet.
objectSet
- Objekt-Mengepublic boolean allowChangeArrayMaxCount(ConfigSystemObject configSystemObject, Data oldData, Data newData)
Gibt true zurück, falls die Länge des Daten-Arrays geändert werden darf und markiert den zugehörigen Attributtyp als durch unversionierte Änderungen bearbeitet.
configSystemObject
- SystemObjekt des AttributesoldData
- Existierende Attributtypeigenschaften Alter DatensatznewData
- Eingelesene Attributtypeigenschaften Neuer Datensatzprivate boolean markAsUnversionedChanged(AttributeType attributeType)
private static int getDataType(int maxCount)
Gibt für jeden Wertebereich (Byte, Short, Integer) eine eindeutige Nummer (0,1,2) zurück.
maxCount
- public static RelaxedModelChanges getInstance(DataModel dataModel)