package org.ovirt.engine.core.searchbackend;
import java.util.HashMap;
import org.ovirt.engine.core.common.businessentities.Identifiable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class EnumValueAutoCompleter extends BaseAutoCompleter implements IConditionValueAutoCompleter {
private static final Logger log = LoggerFactory.getLogger(EnumValueAutoCompleter.class);
private final HashMap<String, Integer> enumValues = new HashMap<>();
public <E extends Enum<E> & Identifiable> EnumValueAutoCompleter(Class<E> enumerationType) {
for (E val : enumerationType.getEnumConstants()) {
String ValName = val.name().toUpperCase();
try {
enumValues.put(ValName, val.getValue());
verbs.add(ValName);
} catch (RuntimeException e) {
log.error("EnumValueAutoCompleter. Failed to add '{}': {}", ValName, e.getMessage());
log.debug("Exception", e);
}
}
buildCompletions();
}
public String convertFieldEnumValueToActualValue(String fieldValue) {
String retval = "";
if (enumValues.containsKey(fieldValue.toUpperCase())) {
retval = enumValues.get(fieldValue.toUpperCase()).toString();
}
return retval;
}
}