All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.elastisys.scale.cloudpool.google.commons.utils.MetadataUtil Maven / Gradle / Ivy

There is a newer version: 5.2.3
Show newest version
package com.elastisys.scale.cloudpool.google.commons.utils;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

import com.google.api.services.compute.model.Metadata;
import com.google.api.services.compute.model.Metadata.Items;

/**
 * Utilities for handling instance metadata.
 *
 */
public class MetadataUtil {
    /**
     * Converts the {@link Items} in an instance's {@link Metadata} to a
     * {@link Map}.
     *
     * @param metadata
     * @return
     */
    public static Map toMap(Metadata metadata) {
        if (metadata == null) {
            return Collections.emptyMap();
        }

        Map map = new HashMap<>();
        for (Items item : metadata.getItems()) {
            map.put(item.getKey(), item.getValue());
        }
        return map;
    }

    /**
     * Takes a {@link Map} of key-value pairs and produces a corresponding list
     * of instance {@link Metadata} {@link Items}.
     *
     * @param map
     * @return
     */
    public static List toItems(Map map) {
        if (map == null) {
            return Collections.emptyList();
        }

        List items = new ArrayList<>();
        for (Entry keyValuePair : map.entrySet()) {
            items.add(new Items().setKey(keyValuePair.getKey()).setValue(keyValuePair.getValue()));
        }
        return items;
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy