package org.ovirt.engine.core.searchbackend; import java.util.ArrayList; import java.util.List; import java.util.Map; public class OsValueAutoCompleter implements IConditionValueAutoCompleter { private Map<Integer, String> map; public OsValueAutoCompleter(Map<Integer, String> vmCompletionMap) { this.map = vmCompletionMap; } @Override public String convertFieldEnumValueToActualValue(String fieldValue) { for (Map.Entry<Integer, String> e : map.entrySet()) { if (fieldValue.equalsIgnoreCase(e.getValue())) { return e.getKey().toString(); } } return ""; } @Override public String[] getCompletion(String wordPart) { if (wordPart == null || wordPart.isEmpty()) { return map.values().toArray(new String[]{}); } List<String> list = new ArrayList<>(); for (String osName : map.values()) { if (osName.contains(wordPart)) { list.add(osName); } } return list.toArray(new String[]{}); } @Override public boolean validate(String text) { text = text.trim(); for (String os : map.values()) { if (os.equals(text)) { return true; } } return false; } @Override public boolean validateCompletion(String text) { return true; } @Override public String changeCaseDisplay(String text) { return text; } }