package org.ovirt.engine.ui.uicommonweb.models.providers; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import org.ovirt.engine.core.common.businessentities.OpenstackNetworkPluginType; import org.ovirt.engine.core.common.businessentities.comparators.LexoNumericComparator; import org.ovirt.engine.ui.uicompat.EnumTranslator; public class NeutronPluginTranslator { private static final List<String> displayStrings; private static final Map<String, OpenstackNetworkPluginType> pluginForDisplay; static { pluginForDisplay = new HashMap<>(); displayStrings = new ArrayList<>(); for (OpenstackNetworkPluginType plugin : OpenstackNetworkPluginType.values()) { if (plugin != OpenstackNetworkPluginType.LINUX_BRIDGE) { String displayString = EnumTranslator.getInstance().translate(plugin); pluginForDisplay.put(displayString.toLowerCase(), plugin); displayStrings.add(displayString); } } Collections.sort(displayStrings, new LexoNumericComparator()); } public static List<String> getPresetDisplayStrings() { return displayStrings; } public static boolean isDisplayStringCustom(String displayString) { return !pluginForDisplay.containsKey(displayString.toLowerCase()); } public static OpenstackNetworkPluginType getPluginTypeForDisplayString(String displayString) { return pluginForDisplay.get(displayString.toLowerCase()); } public static String getDisplayStringForPluginName(String pluginName) { try { return EnumTranslator.getInstance().translate(OpenstackNetworkPluginType.valueOf(pluginName)); } catch (Exception e) { return pluginName == null ? "" : pluginName; //$NON-NLS-1$ } } public static String getPluginNameForDisplayString(String displayString) { OpenstackNetworkPluginType pluginType = pluginForDisplay.get(displayString.toLowerCase()); return (pluginType == null) ? displayString : pluginType.name(); } }