package net.mattmccutchen.addins; import java.util.*; import com.sun.star.sheet.*; public class AddInBase extends LocalizableBase implements XAddIn { private static final String addInFunctionCategory = "Add-In"; private static final String ERROR = "ERROR"; protected AddInBase(AH sh, Collection funcInfos) { super(sh); funcsByPname = new LinkedHashMap(); funcsByDname = new LinkedHashMap(); for (FunctionInfo fi : funcInfos) { funcsByPname.put(fi.programmaticName, fi); funcsByDname.put(fi.displayName, fi); } } private final Map funcsByPname; private final Map funcsByDname; public String getArgumentDescription(String fpname, int aindex) { FunctionInfo fi = funcsByPname.get(fpname); return (fi != null && aindex >= 0 && aindex < fi.arguments.size()) ? fi.arguments.get(aindex).description : ERROR; } public String getDisplayArgumentName(String fpname, int aindex) { FunctionInfo fi = funcsByPname.get(fpname); return (fi != null && aindex >= 0 && aindex < fi.arguments.size()) ? fi.arguments.get(aindex).displayName : ERROR; } public String getDisplayCategoryName(String fpname) { return addInFunctionCategory; } public String getDisplayFunctionName(String fpname) { FunctionInfo fi = funcsByPname.get(fpname); return (fi != null) ? fi.displayName : ERROR; } public String getFunctionDescription(String fpname) { FunctionInfo fi = funcsByPname.get(fpname); return (fi != null) ? fi.description : ERROR; } public String getProgrammaticCategoryName(String fpname) { return addInFunctionCategory; } public String getProgrammaticFuntionName(String fdname) { FunctionInfo fi = funcsByDname.get(fdname); return (fi != null) ? fi.programmaticName : ERROR; } }