private static void addMetadata()

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