private void OnReportedPropertyChanged(TwinCollection reportedPropertyMap) { synchronized (DEVICE_TWIN_LOCK) { if (reportedPropertyMap != null) { for (Iterator reportedPropertyIt = reportedPropertyMap.entrySet().iterator(); reportedPropertyIt.hasNext();) { Map.Entry<String, String> reportedProperty = (Map.Entry<String, String>) reportedPropertyIt.next(); Property property = this.getProperty(reportedPropertyMap, reportedProperty.getKey(), true); /* **Codes_SRS_DEVICETWIN_25_023: [**OnReportedPropertyChanged callback shall look for the user registered call back on the property that changed and if no callback is registered or is null then OnDesiredPropertyChange shall call the user on generic callback providing with the desired property change key and value pair**]** */ if(deviceTwinGenericTwinPropertyChangeCallback != null) { deviceTwinGenericTwinPropertyChangeCallback.TwinPropertyCallBack(property, deviceTwinGenericPropertyChangeCallbackContext); } reportedPropertyIt.remove(); } } } }
private boolean reportDeviceTwinGenericPropertyCallback(Property property) { if(deviceTwinGenericPropertyChangeCallback != null) { deviceTwinGenericPropertyChangeCallback.PropertyCall(property.getKey(), property.getValue(), deviceTwinGenericPropertyChangeCallbackContext); return true; } if(deviceTwinGenericTwinPropertyChangeCallback != null) { deviceTwinGenericTwinPropertyChangeCallback.TwinPropertyCallBack(property, deviceTwinGenericPropertyChangeCallbackContext); return true; } return false; } }
private boolean reportPropertyCallback(Property property) { boolean reported = false; if (onDesiredPropertyChangeMap != null && onDesiredPropertyChangeMap.containsKey(property.getKey())) { Pair<PropertyCallBack<String, Object>, Object> callBackObjectPair = onDesiredPropertyChangeMap.get(property.getKey()); if (callBackObjectPair != null && callBackObjectPair.getKey() != null) { callBackObjectPair.getKey().PropertyCall(property.getKey(), property.getValue(), callBackObjectPair.getValue()); reported = true; } } if (onDesiredTwinPropertyChangeMap != null && onDesiredTwinPropertyChangeMap.containsKey(property.getKey())) { Pair<TwinPropertyCallBack, Object> callBackObjectPair = onDesiredTwinPropertyChangeMap.get(property.getKey()); if (callBackObjectPair != null && callBackObjectPair.getKey() != null) { callBackObjectPair.getKey().TwinPropertyCallBack(property, callBackObjectPair.getValue()); reported = true; } } return reported; }