Class UndefinedValueHandler


  • public final class UndefinedValueHandler
    extends java.lang.Object
    Diese Klasse enthält für jeden Attributtyp den sogenannten "undefiniert Wert" und stellt Methoden zur Verfügung diesen Wert zu setzen oder zu prüfen ob ein Attribut undefiniert ist.
    • Method Detail

      • getInstance

        public static UndefinedValueHandler getInstance()
        Gibt eine Instanz der Klasse zurück. Es existiert nur eine Instanz der Klasse, ein erneuter Aufruf stellt das selbe Objekt zur Verfügung.
        Returns:
        Instanz der Klasse (Singleton)
      • setToUndefinedString

        public void setToUndefinedString​(Data data)
        Setzt das Attribut auf den sogenannten "undefiniert Wert".
        Parameters:
        data - Attribut, dessen Wert gesetzt werden soll
        Throws:
        java.lang.IllegalArgumentException - Der Attributtyp ist nicht StringAttributeType
      • isDefinedString

        public boolean isDefinedString​(Data data)
        Prüft ob das übergebene Attribut einen Wert ungleich dem "undefiniert Wert" besitzt.
        Parameters:
        data - Attribut
        Returns:
        true = Der Wert des Attributes ist ungelich dem "undefiniert Wert"; false = sonst
        Throws:
        java.lang.IllegalArgumentException - Der Attributtyp ist nicht StringAttributeType
      • getUndefinedValueString

        public java.lang.String getUndefinedValueString()
        Stellt den String zur Verfügung, der den "undefiniert Wert" eines StringAttributeType darstellt.
        Returns:
        s.o.
      • setToUndefinedReference

        public void setToUndefinedReference​(Data data)
        Setzt ein Attribut vom Typ ReferenceAttributeType auf den "undefiniert Wert".
        Parameters:
        data - Attribut, dessen Wert auf "undefiniert" gesetzt werden soll
      • isDefinedReference

        public boolean isDefinedReference​(Data data,
                                          ReferenceAttributeType referenceAttributeType)
        Prüft ob der Wert eines Attributes vom Typ "ReferenceAttributeType" undefiniert ist und somit nicht verschickt werden kann.
        Parameters:
        data - Attribut, dessen Wert geprüft werden soll
        referenceAttributeType - Bestimmt, ob die Referenz "0" als undefiniert Wert gilt, oder als normale Referenz
        Returns:
        true = Das Attribut ist definiert und kann verschickt werden; false = Der Wert des Attributes ist gleich dem "undefiniert Wert" und kann somit nicht verschickt werden
      • getUndefinedValueInteger

        @Nullable
        public java.lang.Long getUndefinedValueInteger​(IntegerAttributeType integerAttributeType)
        Gibt eine Zahl zurück, die entweder den größten Wert darstellt, der mit den angegebenen Bytes darzustellen ist oder aber die kleinste Zahl. Die Zahl ist entweder größer als requiredMaxValue oder kleiner als requiredMinValue.
        Parameters:
        integerAttributeType - Enthält den ByteCount, die States und die Min/Max
        Returns:
        Zahl die größer als requiredMaxValue ist oder aber kleiner als requiredMinValue. Kann diese Zahl nicht gefunden werden, wird null zurückgegeben.
      • setToUndefinedInteger

        public void setToUndefinedInteger​(Data data,
                                          java.lang.Long undefinedValue,
                                          IntegerAttributeType integerAttributeType)
        Parameters:
        data - Attribut, in das der "undefiniert Wert" eingetragen wird
        undefinedValue - Undefiniert Wert des Attributtyps. null wird als "es gibt keinen undefiniert Wert" interpretiert.
        integerAttributeType - Dient nur dazu, um bei einem Fehler die Pid des fehlehaften Typs anzugeben
        Throws:
        java.lang.IllegalStateException - Es kann kein "undefiniert Wert" ermittelt werden, da alle Byte-Kombinationen gebraucht werden um die angegebenen Werte darzustellen. Dieser Fall darf eigentlich nicht auftreten, da in diesen Fällen ein default-Wert definiert sein muss.
      • isDefinedInteger

        @Deprecated
        public boolean isDefinedInteger​(IntegerAttributeType attributeType,
                                        Data data,
                                        java.lang.Long undefinedValue)
        Deprecated.
        undefinedValue-parameter wird nicht benötigt.
        Prüft ob ein Attribut vom Typ IntegerAttributeType definiert ist und damit verschickt werden kann.
        Parameters:
        attributeType - Ganzzahl-Attributtyp
        data - Attribut, dessen Wert geprüft werden soll
        undefinedValue - enthält den undefiniert Wert des Attributtyps. Wird null übergeben, so wird dies als "kein undefiniert festgelegt" interpretiert.
        Returns:
        true = Das Attribut ist definiert und kann verschickt werden; false = Der Wert des Attributes ist gleich dem "undefiniert Wert" und darf somit nicht verschickt werden
      • isDefinedInteger

        public boolean isDefinedInteger​(IntegerAttributeType attributeType,
                                        Data data)
        Prüft ob ein Attribut vom Typ IntegerAttributeType definiert ist und damit verschickt werden kann.
        Parameters:
        attributeType - Ganzzahl-Attributtyp
        data - Attribut, dessen Wert geprüft werden soll
        Returns:
        true = Das Attribut ist definiert und kann verschickt werden; false = Der Wert des Attributes ist gleich dem "undefiniert Wert" und darf somit nicht verschickt werden
      • setToUndefinedTimeAbsolute

        public void setToUndefinedTimeAbsolute​(Data data)
        Setzt den Wert des Attributes auf "undefiniert". Dieser Wert entspricht bei abseluten Zeiten 0.
        Parameters:
        data - Attribute, das auf den undefinierten Wert gesetzt werden soll
      • isDefinedTimeAbsolute

        public boolean isDefinedTimeAbsolute​(Data data)
        Prüft, ob der Wert eines Attributes definiert ist. Der Attributwert wird als abselute Zeitangabe interpretiert.
        Parameters:
        data - Attribute
        Returns:
        true = Der Wert ist definiert; false = Der Wert ist nicht definiert
      • getUndefinedValueTimeAbselute

        public long getUndefinedValueTimeAbselute()
        Gibt den "undefiniert Wert" eines TimeAttribute (abeslute Angaben) zurück.
        Returns:
        Undefiniert Wert für eine abselute Zeitangabe
      • setToUndefinedTimeRelative

        public void setToUndefinedTimeRelative​(Data data,
                                               byte accuracy)
        Setzt den "undefiniert Wert" bei einem Attribut vom Typ TimeAttributeType (relative Zeitangabe). Der "undefiniert Wert" ist abhängig der gewünschten Genauigkeit. Bei Millisekunden wird Long.MIN_VALUE benutzt, bei Sekunden Integer.MIN_VALUE.
        Parameters:
        data - Attribut
        accuracy - Sekunden oder Millisekunden TimeAttributeType
      • isDefinedTimeRelative

        public boolean isDefinedTimeRelative​(Data data,
                                             byte accuracy)
        Prüft, ob eine relative Zeitangabe definiert ist.
        Parameters:
        data - Attribut vom Typ TimeAttributeType
        accuracy - Sekunden oder Millisekunden TimeAttributeType
        Returns:
        true = Das Attribut ist definiert und kann verschickt werden; false = Das Attribut hat als Wert den "undefiniert Wert" und kann nicht verschickt werden