package org.araqne.log.api;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import org.json.JSONArray;
import org.json.JSONConverter;
public class PredicatesConfigType extends AbstractConfigType {
public PredicatesConfigType(String name, Map<Locale, String> displayNames, Map<Locale, String> descriptions, boolean required) {
super(name, displayNames, descriptions, required);
}
@Override
public String getType() {
return "predicates";
}
@SuppressWarnings("unchecked")
@Override
public Object parse(String value) {
try {
List<PredicateOption> predicates = new ArrayList<PredicateOption>();
List<Object> l = (List<Object>) JSONConverter.parse(new JSONArray(value));
for (Object i : l) {
List<Object> items = (List<Object>) i;
String cond = items.get(0).toString();
String val = items.get(1).toString();
predicates.add(new PredicateOption(cond, val));
}
return predicates;
} catch (Throwable t) {
throw new IllegalArgumentException("invalid predicates json", t);
}
}
}