1 10 package mondrian.udf; 11 12 import mondrian.olap.*; 13 import mondrian.olap.type.*; 14 import mondrian.spi.UserDefinedFunction; 15 import mondrian.util.*; 16 17 import java.util.*; 18 import java.util.regex.*; 19 20 26 public class InUdf implements UserDefinedFunction { 27 28 public Object execute(Evaluator evaluator, Argument[] arguments) { 29 30 Object arg0 = arguments[0].evaluate(evaluator); 31 List arg1 = (List) arguments[1].evaluate(evaluator); 32 33 for (Object anArg1 : arg1) { 34 if (((Member) arg0).getUniqueName().equals( 35 ((Member) anArg1).getUniqueName())) { 36 return Boolean.TRUE; 37 } 38 } 39 return Boolean.FALSE; 40 } 41 42 public String getDescription() { 43 return "Returns true if the member argument is contained in the set argument."; 44 } 45 46 public String getName() { 47 return "IN"; 48 } 49 50 public Type[] getParameterTypes() { 51 return new Type[] { 52 MemberType.Unknown, 53 new SetType(MemberType.Unknown) 54 }; 55 } 56 57 public String [] getReservedWords() { 58 return null; 60 } 61 62 public Type getReturnType(Type[] parameterTypes) { 63 return new BooleanType(); 64 } 65 66 public Syntax getSyntax() { 67 return Syntax.Infix; 68 } 69 70 } 71 72 | Popular Tags |