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.
Modifier and Type | Field and Description |
---|---|
private java.util.Map<IntegerAttributeType,java.lang.Long> |
_integerUndefinedValues
Speichert zu jedem IntegerAttributeType den dazugehörigen undefiniert Wert.
|
private java.lang.Long |
_marker
Dieses Objekt wird gespeichert, wenn ein undfined berechnet werden sollte, aber der Wert nicht berechnet werden konnte.
|
private static UndefinedValueHandler |
_undefinedValueHandler |
private static long |
_undefinedValueReference
Undfiniert Wert für ReferenceAttributeType
|
private static java.lang.String |
_undefinedValueString
Undefiniert Wert für StringAttributeType
|
private static long |
_undefinedValueTimeAbsolute
Undefinierter Wert für TimeAttributeType abselute Zeitwerte.
|
Modifier | Constructor and Description |
---|---|
private |
UndefinedValueHandler()
Erzeugt ein neues Objekt ohne Parameter
|
Modifier and Type | Method and 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” eines
StringAttributeType darstellt. |
long |
getUndefinedValueTimeAbselute()
Gibt den “undefiniert Wert” eines TimeAttribute (abeslute Angaben) zurück.
|
boolean |
isDefinedInteger(IntegerAttributeType attributeType,
Data data,
java.lang.Long undefinedValue)
Prüft ob ein Attribut vom Typ IntegerAttributeType definiert ist und damit verschickt werden kann.
|
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).
|
private void |
writeValue(Data data,
java.lang.String value) |
private static final UndefinedValueHandler _undefinedValueHandler
private static final java.lang.String _undefinedValueString
Undefiniert Wert für StringAttributeType
private static final long _undefinedValueReference
Undfiniert Wert für ReferenceAttributeType
private static final long _undefinedValueTimeAbsolute
Undefinierter Wert für TimeAttributeType abselute Zeitwerte.
private final java.lang.Long _marker
Dieses Objekt wird gespeichert, wenn ein undfined berechnet werden sollte, aber der Wert nicht berechnet werden konnte. Damit bei einem weiteren Durchlauf nicht erneut versucht den Wert zu berechnen, wird dieses Objekt gespeichert.
private final java.util.Map<IntegerAttributeType,java.lang.Long> _integerUndefinedValues
Speichert zu jedem IntegerAttributeType den dazugehörigen undefiniert Wert. So muss dieser nicht ständig neu berechnet werden.
private UndefinedValueHandler()
Erzeugt ein neues Objekt ohne Parameter
public static final 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.
private void writeValue(Data data, java.lang.String value)
data
- Attributwertevalue
- Wertepublic void setToUndefinedString(Data data)
Setzt das Attribut auf den sogenannten “undefiniert Wert”.
data
- Attribut, dessen Wert gesetzt werden solljava.lang.IllegalArgumentException
- Der Attributtyp ist nicht StringAttributeType
public boolean isDefinedString(Data data)
Prüft ob das übergebene Attribut einen Wert ungleich dem “undefiniert Wert” besitzt.
data
- Attributjava.lang.IllegalArgumentException
- Der Attributtyp ist nicht StringAttributeType
public java.lang.String getUndefinedValueString()
Stellt den String zur Verfügung, der den “undefiniert Wert” eines StringAttributeType
darstellt.
public void setToUndefinedReference(Data data)
Setzt ein Attribut vom Typ ReferenceAttributeType auf den “undefiniert Wert”.
data
- Attribut, dessen Wert auf “undefiniert” gesetzt werden sollpublic boolean isDefinedReference(Data data, ReferenceAttributeType referenceAttributeType)
Prüft ob der Wert eines Attributes vom Typ “ReferenceAttributeType” undefiniert ist und somit nicht verschickt werden kann.
data
- Attribut, dessen Wert geprüft werden sollreferenceAttributeType
- Bestimmt, ob die Referenz “0” als undefiniert Wert gilt, oder als normale Referenzpublic 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.
integerAttributeType
- Enthält den ByteCount, die States und die Min/Maxnull
zurückgegeben.public void setToUndefinedInteger(Data data, java.lang.Long undefinedValue, IntegerAttributeType integerAttributeType)
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 anzugebenjava.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.public boolean isDefinedInteger(IntegerAttributeType attributeType, Data data, java.lang.Long undefinedValue)
Prüft ob ein Attribut vom Typ IntegerAttributeType definiert ist und damit verschickt werden kann.
attributeType
- Ganzzahl-Attributtypdata
- Attribut, dessen Wert geprüft werden sollundefinedValue
- enthält den undefiniert Wert des Attributtyps. Wird null
übergeben, so wird dies als “kein undefiniert festgelegt” interpretiert.public void setToUndefinedTimeAbsolute(Data data)
Setzt den Wert des Attributes auf “undefiniert”. Dieser Wert entspricht bei abseluten Zeiten 0.
data
- Attribute, das auf den undefinierten Wert gesetzt werden sollpublic boolean isDefinedTimeAbsolute(Data data)
Prüft, ob der Wert eines Attributes definiert ist. Der Attributwert wird als abselute Zeitangabe interpretiert.
data
- Attributepublic long getUndefinedValueTimeAbselute()
Gibt den “undefiniert Wert” eines TimeAttribute (abeslute Angaben) zurück.
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
.
data
- Attributaccuracy
- Sekunden oder Millisekunden TimeAttributeType
public boolean isDefinedTimeRelative(Data data, byte accuracy)
Prüft, ob eine relative Zeitangabe definiert ist.
data
- Attribut vom Typ TimeAttributeTypeaccuracy
- Sekunden oder Millisekunden TimeAttributeType