package org.ovirt.engine.api.restapi.utils;
import java.util.ArrayList;
import java.util.List;
import org.ovirt.engine.api.model.CustomProperty;
public class CustomPropertiesParser {
/**
* Format of @str is <name>=<value>;<name>=<value>;..
*
* @param str - The string to parse
* @param isRegex - defines if CustomProperty is used for regex or value representation
* @return
*/
public static List<CustomProperty> parse(String str, boolean isRegex) {
List<CustomProperty> ret = new ArrayList<CustomProperty>();
if (str != null) {
for (String envStr : str.split(";", -1)) {
String[] parts = envStr.split("=", -1);
if (parts.length == 2) {
CustomProperty env = new CustomProperty();
env.setName(parts[0]);
if (isRegex) {
env.setRegexp(parts[1]);
} else {
env.setValue(parts[1]);
}
ret.add(env);
}
}
}
return ret;
}
/**
* Converts VmHooksEnv to @str as <name>=<value>;<name>=<value>;..
*
* @param customProperties
* @return String representing custom properties
*/
public static String parse(List<CustomProperty> customProperties) {
StringBuffer buff = new StringBuffer();
for (CustomProperty hook : customProperties) {
if (hook.isSetName() && hook.isSetValue()) {
buff.append(hook.getName() + "=" + hook.getValue() + ";");
}
}
return buff.toString();
}
}