Class UndefinedValueHandler
- java.lang.Object
-
- de.bsvrz.dav.daf.communication.dataRepresentation.UndefinedValueHandler
-
public 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 Summary
Modifier and Type Method Description static UndefinedValueHandler
getInstance()
Gibt eine Instanz der Klasse zurück.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.java.lang.String
getUndefinedValueString()
Stellt den String zur Verfügung, der den "undefiniert Wert" einesStringAttributeType
darstellt.long
getUndefinedValueTimeAbselute()
Gibt den "undefiniert Wert" eines TimeAttribute (abeslute Angaben) zurück.boolean
isDefinedInteger(IntegerAttributeType attributeType, Data data)
Prüft ob ein Attribut vom Typ IntegerAttributeType definiert ist und damit verschickt werden kann.boolean
isDefinedInteger(IntegerAttributeType attributeType, Data data, java.lang.Long undefinedValue)
Deprecated.undefinedValue-parameter wird nicht benötigt.boolean
isDefinedReference(Data data, ReferenceAttributeType referenceAttributeType)
Prüft ob der Wert eines Attributes vom Typ "ReferenceAttributeType" undefiniert ist und somit nicht verschickt werden kann.boolean
isDefinedString(Data data)
Prüft ob das übergebene Attribut einen Wert ungleich dem "undefiniert Wert" besitzt.boolean
isDefinedTimeAbsolute(Data data)
Prüft, ob der Wert eines Attributes definiert ist.boolean
isDefinedTimeRelative(Data data, byte accuracy)
Prüft, ob eine relative Zeitangabe definiert ist.void
setToUndefinedInteger(Data data, java.lang.Long undefinedValue, IntegerAttributeType integerAttributeType)
void
setToUndefinedReference(Data data)
Setzt ein Attribut vom Typ ReferenceAttributeType auf den "undefiniert Wert".void
setToUndefinedString(Data data)
Setzt das Attribut auf den sogenannten "undefiniert Wert".void
setToUndefinedTimeAbsolute(Data data)
Setzt den Wert des Attributes auf "undefiniert".void
setToUndefinedTimeRelative(Data data, byte accuracy)
Setzt den "undefiniert Wert" bei einem Attribut vom Typ TimeAttributeType (relative Zeitangabe).
-
-
-
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 nichtStringAttributeType
-
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 nichtStringAttributeType
-
getUndefinedValueString
public java.lang.String getUndefinedValueString()
Stellt den String zur Verfügung, der den "undefiniert Wert" einesStringAttributeType
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 sollreferenceAttributeType
- 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 wirdundefinedValue
- 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-Attributtypdata
- Attribut, dessen Wert geprüft werden sollundefinedValue
- enthält den undefiniert Wert des Attributtyps. Wirdnull
ü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-Attributtypdata
- 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 wirdLong.MIN_VALUE
benutzt, bei SekundenInteger.MIN_VALUE
.- Parameters:
data
- Attributaccuracy
- Sekunden oder MillisekundenTimeAttributeType
-
isDefinedTimeRelative
public boolean isDefinedTimeRelative(Data data, byte accuracy)
Prüft, ob eine relative Zeitangabe definiert ist.- Parameters:
data
- Attribut vom Typ TimeAttributeTypeaccuracy
- Sekunden oder MillisekundenTimeAttributeType
- Returns:
- true = Das Attribut ist definiert und kann verschickt werden; false = Das Attribut hat als Wert den "undefiniert Wert" und kann nicht verschickt werden
-
-