private static void addMetadata()

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);
        }
    }