1 10 package mondrian.udf; 11 12 import mondrian.olap.Evaluator; 13 import mondrian.olap.Syntax; 14 import mondrian.olap.type.NumericType; 15 import mondrian.olap.type.Type; 16 import mondrian.spi.UserDefinedFunction; 17 18 23 public class ValUdf implements UserDefinedFunction { 24 25 public Object execute(Evaluator evaluator, Argument[] arguments) { 26 Object arg = arguments[0].evaluateScalar(evaluator); 27 28 if (arg instanceof Number ) { 29 return new Double (((Number ) arg).doubleValue()); 30 } else { 31 return new Double (0.0); 32 } 33 } 34 35 public String getDescription() { 36 return "VB function Val"; 37 } 38 39 public String getName() { 40 return "Val"; 41 } 42 43 public Type[] getParameterTypes() { 44 return new Type[] { new NumericType() }; 45 } 46 47 public String [] getReservedWords() { 48 return null; 49 } 50 51 public Type getReturnType(Type[] parameterTypes) { 52 return new NumericType(); 53 } 54 55 public Syntax getSyntax() { 56 return Syntax.Function; 57 } 58 59 } 60 61 | Popular Tags |