in provisioning/provisioning-service-client/src/main/java/com/microsoft/azure/sdk/iot/provisioning/service/configs/TwinCollection.java [284:321]
private static void addMetadata(TwinCollection twinCollection, Map<? extends String, Object> metadata)
{
String lastUpdated = null;
Integer lastUpdatedVersion = null;
for (Map.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
{
Object valueInCollection = twinCollection.get(key);
if (valueInCollection == null)
{
throw new IllegalArgumentException("Twin metadata is inconsistent");
}
TwinMetadata twinMetadata = TwinMetadata.tryExtractFromMap(entry.getValue());
if (twinMetadata != null)
{
twinCollection.metadataMap.put(key, twinMetadata);
}
if (valueInCollection instanceof TwinCollection)
{
TwinCollection.addMetadata((TwinCollection)valueInCollection, (Map<? extends String, Object>)entry.getValue());
}
}
}
if ((lastUpdatedVersion != null) || !(lastUpdated == null || lastUpdated.isEmpty()))
{
twinCollection.twinMetadata = new TwinMetadata(lastUpdated, lastUpdatedVersion);
}
}