Package org.osgi.service.dal
Class FunctionData
java.lang.Object
org.osgi.service.dal.FunctionData
- All Implemented Interfaces:
Comparable<Object>
- Direct Known Subclasses:
AlarmData,BooleanData,KeypadData,LevelData
Abstract
Function data wrapper. A subclass must be used for an access
to the property values by all functions. It takes care about the timestamp
and additional metadata. The subclasses are responsible to provide concrete
value and unit if required.-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionFunctionData(long timestamp, Map<String, ?> metadata) Constructs newFunctionDatainstance with the specified arguments.FunctionData(Map<String, ?> fields) Constructs newFunctionDatainstance with the specified field values. -
Method Summary
Modifier and TypeMethodDescriptionintCompares thisFunctionDatainstance with the given argument.booleanTwoFunctionDatainstances are equal if their metadata and timestamp are equivalent.ReturnsFunctionDatametadata.longReturnsFunctionDatatimestamp.inthashCode()Returns the hash code of thisFunctionData.
-
Field Details
-
FIELD_TIMESTAMP
Represents the timestamp field name. The field value is available withgetTimestamp(). The field type islong. The constant can be used as a key toFunctionData(Map).- See Also:
-
FIELD_METADATA
Represents the metadata field name. The field value is available withgetMetadata(). The field type isMap. The constant can be used as a key toFunctionData(Map).- See Also:
-
DESCRIPTION
Metadata key, which value represents the data description. The property value type isjava.lang.String.- See Also:
-
-
Constructor Details
-
FunctionData
Constructs newFunctionDatainstance with the specified field values. The map keys must match to the field names. The map values will be assigned to the appropriate class fields. For example, the maps can be: {"timestamp"=Long(1384440775495)}. That map will initialize theFIELD_TIMESTAMPfield with 1384440775495. If timestamp is missing,Long.MIN_VALUEis used.FIELD_TIMESTAMP- optional field. The value type must beLong.FIELD_METADATA- optional field. The value type must beMap.
- Parameters:
fields- Contains the newFunctionDatainstance field values.- Throws:
ClassCastException- If the field value types are not expected.NullPointerException- If the fields map isnull.
-
FunctionData
Constructs newFunctionDatainstance with the specified arguments.- Parameters:
timestamp- The data timestamp optional field.metadata- The data metadata optional field.
-
-
Method Details
-
getTimestamp
public long getTimestamp()ReturnsFunctionDatatimestamp. The timestamp is the difference between the value collecting time and midnight, January 1, 1970 UTC. It's measured in milliseconds. The device driver is responsible to generate that value when the value is received from the device.Long.MIN_VALUEvalue means no timestamp.- Returns:
FunctionDatatimestamp.
-
getMetadata
ReturnsFunctionDatametadata. It's dynamic metadata related only to this specific value. Possible keys:DESCRIPTION- custom key
- Returns:
FunctionDatametadata ornullis there is no metadata.
-
equals
TwoFunctionDatainstances are equal if their metadata and timestamp are equivalent. -
hashCode
public int hashCode()Returns the hash code of thisFunctionData. -
compareTo
Compares thisFunctionDatainstance with the given argument. If the argument is notFunctionData, it throwsClassCastException. Otherwise, this method returns:-1if this instance timestamp is less than the argument timestamp. If they are equivalent, it can be the result of the metadata map deep comparison.0if all fields are equivalent.1if this instance timestamp is greater than the argument timestamp. If they are equivalent, it can be the result of the metadata map deep comparison.
java.util.Mapand array instances.nullis less than any other non-null instance.- Specified by:
compareToin interfaceComparable<Object>- Parameters:
o-FunctionDatato be compared.- Returns:
-1,0or1depending on the comparison rules.- Throws:
ClassCastException- If the method argument is not of typeFunctionDataor metadata maps contain values of different types for the same key.NullPointerException- If the method argument isnull.- See Also:
-