package com.akjava.lib.common.form; import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap; public class ModifierTools { private ModifierTools(){} private static BiMap<String,Modifier> modifierMap=null; public static BiMap<String,Modifier> getModifierMap(){ if(modifierMap==null){ init(); } return modifierMap; } private static void init(){ modifierMap=HashBiMap.create(); modifierMap.put(Modifiers.MODIFIER_SANITIZE.toLowerCase(), Modifiers.getSanitizeModier()); modifierMap.put(Modifiers.MODIFIER_TABTOSPACE.toLowerCase(), Modifiers.getTabToSpaceModier()); modifierMap.put(Modifiers.MODIFIER_LINETOBR.toLowerCase(), Modifiers.getLineToBrModifier()); } public static class ModifierNotFoundException extends Exception{ public ModifierNotFoundException(String string) { super(string); } /** * */ private static final long serialVersionUID = 1L; } public static String getModifierLabel(Modifier modifier) { String label= modifierMap.inverse().get(modifier); if(label==null){ return modifier.getName(); }else{ return label; } } /** * use lower case inside * @param key * @return */ public static Modifier getModifier(String key)throws ModifierNotFoundException { if(modifierMap==null){ init(); } if(key==null){ throw new ModifierNotFoundException("null validator key"); } Modifier v= modifierMap.get(key.toLowerCase()); if(v==null){ throw new ModifierNotFoundException("null validator for "+key); } return v; } }