Class KeyValueListDataFunction
- java.lang.Object
-
- org.openmuc.jeebus.spine.spi.function.FeatureFunction
-
- org.openmuc.jeebus.spine.spi.function.ReadListFeatureFunction<DATA,DATA_LIST,SELECTOR,ELEMENTS,TYPE>
-
- org.openmuc.jeebus.spine.spi.function.ReadAndWriteListFeatureFunction<org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueListDataType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueListDataSelectorsType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataElementsType,ListFeatureFunctionTypeInfo<org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueListDataType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueListDataSelectorsType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataElementsType>>
-
- org.openmuc.jeebus.spine.utils.features.deviceconfiguration.KeyValueListDataFunction
-
public class KeyValueListDataFunction extends ReadAndWriteListFeatureFunction<org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueListDataType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueListDataSelectorsType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataElementsType,ListFeatureFunctionTypeInfo<org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueListDataType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueListDataSelectorsType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataElementsType>>
-
-
Field Summary
Fields Modifier and Type Field Description protected static org.slf4j.Logger
logger
static ListFeatureFunctionTypeInfo<org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueListDataType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueListDataSelectorsType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataElementsType>
TYPE_INFO
-
Fields inherited from class org.openmuc.jeebus.spine.spi.function.ReadAndWriteListFeatureFunction
useCaseWriteDataListListener
-
Fields inherited from class org.openmuc.jeebus.spine.spi.function.ReadListFeatureFunction
allowedReadListCmdOptions, dataListHolder, listFeatureFunctionNotifier
-
Fields inherited from class org.openmuc.jeebus.spine.spi.function.FeatureFunction
feature
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SpineAcknowledgment
call(org.openmuc.jeebus.spine.xsd.v1.CmdType cmd, org.openmuc.jeebus.spine.xsd.v1.FeatureAddressType sourceAddress)
TYPE
getTypeInfo()
DataValidation<DATA>
getUseCaseDataValidation()
void
setKeyValueList(java.util.List<KeyValue> keyValueList)
void
setUseCaseDataValidation(DataValidation<DATA> useCaseDataValidation)
protected void
validateData(org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataType data)
Validates the given data.protected void
validateReadCmd(java.util.List<org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueListDataSelectorsType> deviceConfigurationKeyValueListDataSelectorsTypes, org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataElementsType elements, ReadListCmdOption readListCmdOption)
Validates the read command.protected void
validateUpdateForMatchingData(org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataType update, java.util.List<org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataType> matchingDataList, WriteListCmdOption writeListCmdOption)
Validates each update data for its matching data that is changed by the update data.protected void
validateWriteCmdFull(java.util.List<org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataType> updateList, java.util.List<org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueListDataSelectorsType> selectorsList, org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataElementsType elements, WriteListCmdOption writeListCmdOption)
Validates a write command by taking the full update data list, selector list, elementsType object and theWriteListCmdOption
that is used.void
writeData(org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataType data, DataUpdateType dataUpdateType, java.lang.Integer idx)
Called when changes were made to any data.-
Methods inherited from class org.openmuc.jeebus.spine.spi.function.ReadAndWriteListFeatureFunction
deleteDataEntriesBySelector, getAllowedWriteCmdOptions, setAllowedWriteCmdOptions, setUseCaseMatchingDataWriteValidation, setUseCaseWriteDataListener, setUseCaseWriteValidationFull, write
-
Methods inherited from class org.openmuc.jeebus.spine.spi.function.ReadListFeatureFunction
addData, addData, getAllowedReadCmdOptions, getDataCopies, getDataCopiesFor, getDataCopy, getDataCopyForFirst, read, removeData, removeData, setAllowedReadCmdOptions, setFeature, setUseCaseReadValidation, updateData, updateData
-
Methods inherited from class org.openmuc.jeebus.spine.spi.function.FeatureFunction
bindingRequired, getFunctionName, getFunctionProperty, isCallable, isReadable, isWritable, matchAddress, requireBinding, setCallable, setReadable, setWritable
-
-
-
-
Field Detail
-
TYPE_INFO
public static final ListFeatureFunctionTypeInfo<org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueListDataType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueListDataSelectorsType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataElementsType> TYPE_INFO
-
logger
protected static final org.slf4j.Logger logger
-
-
Method Detail
-
writeData
public void writeData(org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataType data, DataUpdateType dataUpdateType, java.lang.Integer idx)
Description copied from class:ReadAndWriteListFeatureFunction
Called when changes were made to any data.- Specified by:
writeData
in classReadAndWriteListFeatureFunction<org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueListDataType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueListDataSelectorsType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataElementsType,ListFeatureFunctionTypeInfo<org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueListDataType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueListDataSelectorsType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataElementsType>>
- Parameters:
data
- the data that was updated (copy of the original data), fully deleted or newly addeddataUpdateType
- if the data shall be updated, deleted or newly addedidx
- index where at the data was added for this feature function
-
validateUpdateForMatchingData
protected void validateUpdateForMatchingData(org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataType update, java.util.List<org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataType> matchingDataList, WriteListCmdOption writeListCmdOption) throws SpineException
Description copied from class:ReadAndWriteListFeatureFunction
Validates each update data for its matching data that is changed by the update data. This is called for each update data on partial or full write. Must be implemented by the specific Feature Function.- Specified by:
validateUpdateForMatchingData
in classReadAndWriteListFeatureFunction<org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueListDataType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueListDataSelectorsType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataElementsType,ListFeatureFunctionTypeInfo<org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueListDataType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueListDataSelectorsType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataElementsType>>
- Parameters:
update
- the given updatematchingDataList
- the data that is to be changed by the updatewriteListCmdOption
- theWriteListCmdOption
that is used- Throws:
SpineException
- if the validation fails
-
validateData
protected void validateData(org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataType data) throws DataValidationException
Validates the given data. Must be implemented by the specific Feature Function.- Parameters:
data
- the data to validate- Throws:
DataValidationException
- if the validation fails
-
validateWriteCmdFull
protected void validateWriteCmdFull(java.util.List<org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataType> updateList, java.util.List<org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueListDataSelectorsType> selectorsList, org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataElementsType elements, WriteListCmdOption writeListCmdOption) throws SpineException
Description copied from class:ReadAndWriteListFeatureFunction
Validates a write command by taking the full update data list, selector list, elementsType object and theWriteListCmdOption
that is used. This may be called twice for one command if both Delete and Write are used. Must be implemented by the specific Feature Function.- Specified by:
validateWriteCmdFull
in classReadAndWriteListFeatureFunction<org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueListDataType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueListDataSelectorsType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataElementsType,ListFeatureFunctionTypeInfo<org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueListDataType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueListDataSelectorsType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataElementsType>>
- Parameters:
updateList
- the full update data list (can be null on DELETE writeCmdOption)selectorsList
- the full selector list of the command, may be emptyelements
- the elementsType object, may be nullwriteListCmdOption
- theWriteListCmdOption
that is used- Throws:
SpineException
- if the validation fails
-
call
public SpineAcknowledgment call(org.openmuc.jeebus.spine.xsd.v1.CmdType cmd, org.openmuc.jeebus.spine.xsd.v1.FeatureAddressType sourceAddress)
- Specified by:
call
in classFeatureFunction
- Parameters:
cmd
- the command data belonging to this function callsourceAddress
- the feature address of the client feature- Returns:
- an acknowledgment stating the result of the operation
-
validateReadCmd
protected void validateReadCmd(java.util.List<org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueListDataSelectorsType> deviceConfigurationKeyValueListDataSelectorsTypes, org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataElementsType elements, ReadListCmdOption readListCmdOption) throws SpineException
Description copied from class:ReadListFeatureFunction
Validates the read command. Must be implemented by the specific Feature Function. ThrowsSpineException
if the validation fails.- Specified by:
validateReadCmd
in classReadListFeatureFunction<org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueListDataType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueListDataSelectorsType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataElementsType,ListFeatureFunctionTypeInfo<org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueListDataType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueListDataSelectorsType,org.openmuc.jeebus.spine.xsd.v1.DeviceConfigurationKeyValueDataElementsType>>
- Parameters:
deviceConfigurationKeyValueListDataSelectorsTypes
- the list of given selectors, may be emptyelements
- the elementsType object, may be nullreadListCmdOption
- the CmdOption that was used by the request- Throws:
SpineException
- if the validation fails
-
setKeyValueList
public void setKeyValueList(java.util.List<KeyValue> keyValueList)
-
getUseCaseDataValidation
public DataValidation<DATA> getUseCaseDataValidation()
-
setUseCaseDataValidation
public void setUseCaseDataValidation(DataValidation<DATA> useCaseDataValidation)
-
getTypeInfo
public TYPE getTypeInfo()
-
-