in iothub/device/iot-device-client/src/main/java/com/microsoft/azure/sdk/iot/device/twin/TwinCollection.java [284:315]
private static void addMetadata(TwinCollection twinCollection, Map<? extends String, Object> metadata) {
String lastUpdated = null;
Integer lastUpdatedVersion = null;
String lastUpdatedBy = null;
String lastUpdatedByDigest = null;
for (Entry<? extends String, Object> entry : metadata.entrySet()) {
String key = entry.getKey();
if (key.equals(TwinMetadata.LAST_UPDATE_TAG)) {
lastUpdated = (String) entry.getValue();
} else if ((key.equals(TwinMetadata.LAST_UPDATE_VERSION_TAG)) && (entry.getValue() instanceof Number)) {
lastUpdatedVersion = ((Number) entry.getValue()).intValue();
} else if (key.equals(TwinMetadata.LAST_UPDATED_BY)) {
lastUpdatedBy = (String) entry.getValue();
} else if (key.equals(TwinMetadata.LAST_UPDATED_BY_DIGEST)) {
lastUpdatedByDigest = (String) entry.getValue();
} else {
TwinMetadata twinMetadata = TwinMetadata.tryExtractFromMap(entry.getValue());
if (twinMetadata != null) {
twinCollection.metadataMap.put(key, twinMetadata);
}
Object valueInCollection = twinCollection.get(key);
if (valueInCollection instanceof TwinCollection) {
TwinCollection.addMetadata((TwinCollection) valueInCollection, (Map<? extends String, Object>) entry.getValue());
}
}
}
if ((lastUpdatedVersion != null) || !Tools.isNullOrEmpty(lastUpdated)) {
twinCollection.twinMetadata = new TwinMetadata(lastUpdated, lastUpdatedVersion, lastUpdatedBy, lastUpdatedByDigest);
}
}