/*
* Copyright (c) 2015 EMC Corporation
* All Rights Reserved
*/
package util;
import java.util.Collection;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.emc.storageos.model.DataObjectRestRep;
import com.google.common.collect.Maps;
public class TagUtils {
public static String ORDER_ID_TAG = "vipr:orderId";
public static String ORDER_NUMBER_TAG = "vipr:orderNumber";
private static Pattern MACHINE_TAG_REGEX = Pattern.compile("([^W]*\\:[^W]*)=(.*)");
public static Map<String, String> parseTags(Collection<String> tags) {
Map<String, String> machineTags = Maps.newHashMap();
for (String tag : tags) {
Matcher matcher = MACHINE_TAG_REGEX.matcher(tag);
if (matcher.matches()) {
machineTags.put(matcher.group(1), matcher.group(2));
}
}
return machineTags;
}
public static String getTagValue(DataObjectRestRep dataObject, String tagName) {
if (dataObject == null || (dataObject.getTags() == null)) {
return null;
}
Map<String, String> currentMachineTags = parseTags(dataObject.getTags());
return currentMachineTags.get(tagName);
}
public static String getOrderIdTagValue(DataObjectRestRep dataObject) {
return getTagValue(dataObject, ORDER_ID_TAG);
}
public static String getOrderNumberTagValue(DataObjectRestRep dataObject) {
return getTagValue(dataObject, ORDER_NUMBER_TAG);
}
public static String createOrderIdTag(String orderId) {
return String.format("%s=%s", ORDER_ID_TAG, orderId);
}
}