Class RelaxedModelChanges


  • 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.

    • Constructor Summary

      Constructors 
      Constructor Description
      RelaxedModelChanges​(de.bsvrz.dav.daf.main.config.DataModel dataModel)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean allowChangeArrayMaxCount​(ConfigSystemObject configSystemObject, de.bsvrz.dav.daf.main.Data oldData, de.bsvrz.dav.daf.main.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​(de.bsvrz.dav.daf.main.config.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, de.bsvrz.dav.daf.main.Data oldData, de.bsvrz.dav.daf.main.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.
      static RelaxedModelChanges getInstance​(de.bsvrz.dav.daf.main.config.DataModel dataModel)  
      boolean isAddStatesProcessable​(de.bsvrz.dav.daf.main.config.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​(de.bsvrz.dav.daf.main.config.IntegerValueState integerValueState)
      Gibt zurück, ob das Ändern eines Wert-Namens erlaubt sein soll, ohne eine neue Version zu erstellen.
      boolean isValueRangeChangeProcessable​(ConfigurationValueRange importedValueRange, de.bsvrz.dav.daf.main.config.IntegerValueRange existingValueRange)
      Sonderbehandlung für Wertebereiche.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • RelaxedModelChanges

        public RelaxedModelChanges​(de.bsvrz.dav.daf.main.config.DataModel dataModel)
    • Method Detail

      • getInstance

        public static RelaxedModelChanges getInstance​(de.bsvrz.dav.daf.main.config.DataModel dataModel)
      • isValueRangeChangeProcessable

        public boolean isValueRangeChangeProcessable​(ConfigurationValueRange importedValueRange,
                                                     de.bsvrz.dav.daf.main.config.IntegerValueRange existingValueRange)
        Sonderbehandlung für Wertebereiche. Das Ändern, wird erlaubt, wenn der Bereich nicht verkleinert wird und Einheit und Skalierung beibehalten werden.
        Parameters:
        importedValueRange - Eingelesene Bereichsdefinition
        existingValueRange - Existierende Bereichsdefinition
        Returns:
        true: die Änderung wird erlaubt, false: keine Sonderbehandlung, hier nicht erlaubt
      • isAddStatesProcessable

        public boolean isAddStatesProcessable​(de.bsvrz.dav.daf.main.config.IntegerAttributeType integerAttributeType)
        Gibt zurück, ob zu dem angegebenen IntegerAttributeType neue Statuswerte hinzugefügt werden dürfen
        Parameters:
        integerAttributeType - IntegerAttributeType
        Returns:
        true falls neue Statuswerte hinzugefügt werden dürfen, sonst false
      • isChangeArrayMaxCountProcessable

        public 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.
        Parameters:
        oldMaxCount - Alte Länge
        newMaxCount - Neue Länge
        Returns:
        Darf die Feldlänge ohne Versionierung geändert werden?
      • isChangeValueNameProcessable

        public boolean isChangeValueNameProcessable​(de.bsvrz.dav.daf.main.config.IntegerValueState integerValueState)
        Gibt zurück, ob das Ändern eines Wert-Namens erlaubt sein soll, ohne eine neue Version zu erstellen.
        Parameters:
        integerValueState - Statuswert
        Returns:
        Darf der Name geädnert werden?
      • allowChangeValueRange

        public boolean allowChangeValueRange​(ConfigSystemObject configSystemObject,
                                             de.bsvrz.dav.daf.main.Data oldData,
                                             de.bsvrz.dav.daf.main.Data newData)
        Gibt true zurück sofern der Wertebereich bearbeitet werden darf und markiert den zugehörigen Attributtyp als durch unversionierte Änderungen bearbeitet.
        Parameters:
        configSystemObject -
        oldData - Existierende Bereichsdefinition Alter Datensatz
        newData - Eingelesene Bereichsdefinition Neuer Datensatz
        Returns:
        true: die Änderung wird erlaubt, false: keine Sonderbehandlung, hier nicht erlaubt
      • allowChangeValueName

        public boolean allowChangeValueName​(de.bsvrz.dav.daf.main.config.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.
        Parameters:
        integerValueState - Statuswert
        Returns:
        Darf der Name geändert werden?
      • allowObjectSetAdd

        public 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.
        Parameters:
        objectSet - Objekt-Menge
        Returns:
      • allowChangeArrayMaxCount

        public boolean allowChangeArrayMaxCount​(ConfigSystemObject configSystemObject,
                                                de.bsvrz.dav.daf.main.Data oldData,
                                                de.bsvrz.dav.daf.main.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.
        Parameters:
        configSystemObject - SystemObjekt des Attributes
        oldData - Existierende Attributtypeigenschaften Alter Datensatz
        newData - Eingelesene Attributtypeigenschaften Neuer Datensatz
        Returns:
        true: die Änderung wird erlaubt, false: keine Sonderbehandlung, hier nicht erlaubt