Class UndefinedValueHandler

java.lang.Object
de.bsvrz.dav.daf.communication.dataRepresentation.UndefinedValueHandler

public final class UndefinedValueHandler extends 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 Details

    • 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:
      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:
      IllegalArgumentException - Der Attributtyp ist nicht StringAttributeType
    • getUndefinedValueString

      public 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 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, 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:
      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, 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