package org.nightlabs.jfire.auth.ui.ldap.editor; import java.util.LinkedHashMap; import org.nightlabs.jfire.auth.ui.ldap.resource.Messages; import org.nightlabs.jfire.base.security.integration.ldap.LDAPScriptSet; import org.nightlabs.jfire.base.security.integration.ldap.scripts.ILDAPScriptProvider; /** * UI helper class which holds constants with {@link LDAPScriptSet} script names (which are used as script identifiers on UI) and descriptions. * * @author Denis Dudnik <deniska.dudnik[at]gmail{dot}com> * */ public class LDAPScriptSetHelper { /** * Class for holding different script data in a convinient way. * * @author Denis Dudnik <deniska.dudnik[at]gmail{dot}com> * */ public static class NamedScript implements Cloneable{ private String scriptID; private String scriptName; private String scriptContent; private String scriptDescription; public NamedScript(String id, String name, String description){ this.scriptID = id; this.scriptName = name; this.scriptDescription = description; } public String getScriptID() { return scriptID; } public String getScriptName() { return scriptName; } public String getScriptContent() { return scriptContent; } public void setScriptContent(String scriptContent) { this.scriptContent = scriptContent; } public void setScriptDescription(String scriptDescription) { this.scriptDescription = scriptDescription; } public String getScriptDescription() { return scriptDescription; } @Override public NamedScript clone(){ NamedScript clonedScript = new NamedScript(this.scriptID, this.scriptName, this.scriptDescription); clonedScript.setScriptContent(this.scriptContent); return clonedScript; } } private static LinkedHashMap<String, NamedScript> ldapScriptData = new LinkedHashMap<String, LDAPScriptSetHelper.NamedScript>(5); static{ ldapScriptData.put( ILDAPScriptProvider.BIND_VARIABLES_SCRIPT_ID, new NamedScript( ILDAPScriptProvider.BIND_VARIABLES_SCRIPT_ID, Messages.getString("org.nightlabs.jfire.auth.ui.ldap.editor.LDAPScriptSetHelper.bindVariablesScriptName"), Messages.getString("org.nightlabs.jfire.auth.ui.ldap.editor.LDAPScriptSetHelper.bindVariablesScriptDescription"))); ldapScriptData.put( ILDAPScriptProvider.GET_ATTRIBUTE_SET_SCRIPT_ID, new NamedScript( ILDAPScriptProvider.GET_ATTRIBUTE_SET_SCRIPT_ID, Messages.getString("org.nightlabs.jfire.auth.ui.ldap.editor.LDAPScriptSetHelper.getAttributeSetScriptName"), Messages.getString("org.nightlabs.jfire.auth.ui.ldap.editor.LDAPScriptSetHelper.getAttributeSetScriptDescription"))); ldapScriptData.put( ILDAPScriptProvider.GET_ENTRY_NAME_SCRIPT_ID, new NamedScript( ILDAPScriptProvider.GET_ENTRY_NAME_SCRIPT_ID, Messages.getString("org.nightlabs.jfire.auth.ui.ldap.editor.LDAPScriptSetHelper.getEntryNameScriptName"), Messages.getString("org.nightlabs.jfire.auth.ui.ldap.editor.LDAPScriptSetHelper.getEntryNameScriptDescription"))); ldapScriptData.put( ILDAPScriptProvider.GET_PARENT_ENTRIES_SCRIPT_ID, new NamedScript( ILDAPScriptProvider.GET_PARENT_ENTRIES_SCRIPT_ID, Messages.getString("org.nightlabs.jfire.auth.ui.ldap.editor.LDAPScriptSetHelper.getParentEntriesScriptName"), Messages.getString("org.nightlabs.jfire.auth.ui.ldap.editor.LDAPScriptSetHelper.getParentEntriesScriptDescription"))); ldapScriptData.put( ILDAPScriptProvider.SYNC_TO_JFIRE_SCRIPT_ID, new NamedScript( ILDAPScriptProvider.SYNC_TO_JFIRE_SCRIPT_ID, Messages.getString("org.nightlabs.jfire.auth.ui.ldap.editor.LDAPScriptSetHelper.syncToJFireScriptName"), Messages.getString("org.nightlabs.jfire.auth.ui.ldap.editor.LDAPScriptSetHelper.syncToJFireScriptDescription"))); } /** * Get all {@link LDAPScriptSet} script wrapped as {@link NamedScript}. * * @return all {@link NamedScript}s as an {@link Iterable} */ public static Iterable<NamedScript> getNamedScripts(){ return ldapScriptData.values(); } /** * Get script index (based on its position in internal map) by its name. * * @param scriptName script name * @return index */ public static int getScriptIndexByID(String scriptID){ if (scriptID == null){ return 0; } int index = 0; int i = 0; for (String id : ldapScriptData.keySet()){ if (scriptID.equals(id)){ index = i; break; } i++; } return index; } /** * Get script description by its name. * * @param scriptName script name * @return script description */ public static String getScriptDescriptionByID(String scriptID){ if (ldapScriptData.get(scriptID) != null){ return ldapScriptData.get(scriptID).getScriptDescription(); } return ""; } }