001    /*
002    // $Id: //open/mondrian/src/main/mondrian/udf/NullValueUdf.java#2 $
003    // This software is subject to the terms of the Common Public License
004    // Agreement, available at the following URL:
005    // http://www.opensource.org/licenses/cpl.html.
006    // Copyright (C) 2005-2008 Julian Hyde
007    // All Rights Reserved.
008    // You must accept the terms of that agreement to use this software.
009    */
010    package mondrian.udf;
011    
012    import mondrian.olap.*;
013    import mondrian.olap.type.*;
014    import mondrian.rolap.RolapUtil;
015    import mondrian.spi.UserDefinedFunction;
016    
017    /**
018     * Definition of the user-defined function "NullValue" which always
019     * returns Java "null".
020     *
021     * @author remberson,jhyde
022     * @version $Id: //open/mondrian/src/main/mondrian/udf/NullValueUdf.java#2 $
023     */
024    public class NullValueUdf implements UserDefinedFunction {
025    
026        public String getName() {
027            return "NullValue";
028        }
029    
030        public String getDescription() {
031            return "Returns the null value";
032        }
033    
034        public Syntax getSyntax() {
035            return Syntax.Function;
036        }
037    
038        public Type getReturnType(Type[] parameterTypes) {
039            return new NumericType();
040        }
041    
042        public Type[] getParameterTypes() {
043            return new Type[0];
044        }
045    
046        public Object execute(Evaluator evaluator, Argument[] arguments) {
047            return Util.nullValue;
048        }
049    
050        public String[] getReservedWords() {
051            // This function does not require any reserved words.
052            return null;
053        }
054    }
055    
056    // End NullValueUdf.java