| 1 13 package mondrian.olap.fun; 14 15 import mondrian.olap.*; 16 17 24 class SimpleResolver implements Resolver { 25 private final FunDef funDef; 26 27 SimpleResolver(FunDef funDef) { 28 this.funDef = funDef; 29 } 30 31 public FunDef getFunDef() { 32 return funDef; 33 } 34 35 public String getName() { 36 return funDef.getName(); 37 } 38 39 public String getDescription() { 40 return funDef.getDescription(); 41 } 42 43 public String getSignature() { 44 return funDef.getSignature(); 45 } 46 47 public Syntax getSyntax() { 48 return funDef.getSyntax(); 49 } 50 51 public String [] getReservedWords() { 52 return FunUtil.emptyStringArray; 53 } 54 55 public FunDef resolve( 56 Exp[] args, Validator validator, int[] conversionCount) { 57 int[] parameterTypes = funDef.getParameterCategories(); 58 if (parameterTypes.length != args.length) { 59 return null; 60 } 61 for (int i = 0; i < args.length; i++) { 62 if (!validator.canConvert( 63 args[i], parameterTypes[i], conversionCount)) { 64 return null; 65 } 66 } 67 return funDef; 68 } 69 70 public boolean requiresExpression(int k) { 71 int[] parameterTypes = funDef.getParameterCategories(); 72 return ((k >= parameterTypes.length) || 73 (parameterTypes[k] != Category.Set)); 74 } 75 } 76 77 | Popular Tags |