1 package net.mattmccutchen.addins;
5 import com.sun.star.sheet.*;
7 public class AddInBase<AH extends AddInHelper>
8 extends LocalizableBase<AH> implements XAddIn {
9 private static final String addInFunctionCategory = "Add-In";
10 private static final String ERROR = "ERROR";
12 protected AddInBase(AH sh, Collection<FunctionInfo> funcInfos) {
15 funcsByPname = new LinkedHashMap<String, FunctionInfo>();
16 funcsByDname = new LinkedHashMap<String, FunctionInfo>();
17 for (FunctionInfo fi : funcInfos) {
18 funcsByPname.put(fi.programmaticName, fi);
19 funcsByDname.put(fi.displayName, fi);
23 private final Map<String, FunctionInfo> funcsByPname;
24 private final Map<String, FunctionInfo> funcsByDname;
26 public String getArgumentDescription(String fpname, int aindex) {
27 FunctionInfo fi = funcsByPname.get(fpname);
28 return (fi != null && aindex >= 0 && aindex < fi.arguments.size())
29 ? fi.arguments.get(aindex).description : ERROR;
32 public String getDisplayArgumentName(String fpname, int aindex) {
33 FunctionInfo fi = funcsByPname.get(fpname);
34 return (fi != null && aindex >= 0 && aindex < fi.arguments.size())
35 ? fi.arguments.get(aindex).displayName : ERROR;
38 public String getDisplayCategoryName(String fpname) {
39 return addInFunctionCategory;
42 public String getDisplayFunctionName(String fpname) {
43 FunctionInfo fi = funcsByPname.get(fpname);
44 return (fi != null) ? fi.displayName : ERROR;
47 public String getFunctionDescription(String fpname) {
48 FunctionInfo fi = funcsByPname.get(fpname);
49 return (fi != null) ? fi.description : ERROR;
52 public String getProgrammaticCategoryName(String fpname) {
53 return addInFunctionCategory;
56 public String getProgrammaticFuntionName(String fdname) {
57 FunctionInfo fi = funcsByDname.get(fdname);
58 return (fi != null) ? fi.programmaticName : ERROR;