mondrian.olap
Interface Validator

All Known Implementing Classes:
ValidatorImpl

public interface Validator

Provides context necessary to resolve identifiers to objects, function calls to specific functions.

An expression calls validate(mondrian.olap.Exp, boolean) on each of its children, which in turn calls Exp.accept(mondrian.olap.Validator).

Version:
$Id: //open/mondrian/src/main/mondrian/olap/Validator.java#11 $
Author:
jhyde

Method Summary
 boolean alwaysResolveFunDef()
          Whether to resolve function name and arguments to a function definition each time a node is validated, not just the first time.
 boolean canConvert(int ordinal, Exp fromExp, int to, java.util.List<Resolver.Conversion> conversions)
          Returns whether we can convert an argument to a parameter type.
 Parameter createOrLookupParam(boolean definition, java.lang.String name, Type type, Exp defaultExp, java.lang.String description)
          Creates or retrieves the parameter corresponding to a "Parameter" or "ParamRef" function call.
 FunDef getDef(Exp[] args, java.lang.String name, Syntax syntax)
          Resolves a function call to a particular function.
 FunTable getFunTable()
          Returns the table of function and operator definitions.
 Query getQuery()
          Returns the Query which is being validated.
 SchemaReader getSchemaReader()
          Returns the schema reader with which to resolve names of MDX objects (dimensions, hierarchies, levels, members, named sets).
 boolean requiresExpression()
          Returns whether the current context requires an expression.
 Exp validate(Exp exp, boolean scalar)
          Validates an expression, and returns the expression it resolves to.
 void validate(Formula formula)
          Validates a formula.
 void validate(MemberProperty memberProperty)
          Validates a child member property.
 void validate(ParameterExpr parameterExpr)
          Validates a usage of a parameter.
 void validate(QueryAxis axis)
          Validates an axis.
 

Method Detail

getQuery

Query getQuery()
Returns the Query which is being validated.


validate

Exp validate(Exp exp,
             boolean scalar)
Validates an expression, and returns the expression it resolves to.

Parameters:
exp - Expression to validate
scalar - Whether the context requires that the expression is evaluated to a value, as opposed to a tuple

validate

void validate(ParameterExpr parameterExpr)
Validates a usage of a parameter.

It must resolve to the same object (although sub-objects may change).


validate

void validate(MemberProperty memberProperty)
Validates a child member property.

It must resolve to the same object (although sub-objects may change).


validate

void validate(QueryAxis axis)
Validates an axis. It must resolve to the same object (although sub-objects may change).


validate

void validate(Formula formula)
Validates a formula. It must resolve to the same object (although sub-objects may change).


requiresExpression

boolean requiresExpression()
Returns whether the current context requires an expression.


canConvert

boolean canConvert(int ordinal,
                   Exp fromExp,
                   int to,
                   java.util.List<Resolver.Conversion> conversions)
Returns whether we can convert an argument to a parameter type.

Parameters:
ordinal - argument ordinal
fromExp - argument type
to - parameter type
conversions - List of conversions performed; method adds an element for each non-trivial conversion (for example, converting a member to a level).
Returns:
Whether we can convert an argument to a parameter type

getFunTable

FunTable getFunTable()
Returns the table of function and operator definitions.


createOrLookupParam

Parameter createOrLookupParam(boolean definition,
                              java.lang.String name,
                              Type type,
                              Exp defaultExp,
                              java.lang.String description)
Creates or retrieves the parameter corresponding to a "Parameter" or "ParamRef" function call.


getDef

FunDef getDef(Exp[] args,
              java.lang.String name,
              Syntax syntax)
Resolves a function call to a particular function. If the function is overloaded, returns as precise a match to the argument types as possible.


alwaysResolveFunDef

boolean alwaysResolveFunDef()
Whether to resolve function name and arguments to a function definition each time a node is validated, not just the first time.

Default implementation returns false.

Returns:
whether to resolve function each time

getSchemaReader

SchemaReader getSchemaReader()
Returns the schema reader with which to resolve names of MDX objects (dimensions, hierarchies, levels, members, named sets).

The schema reader is initially in the context of the query's cube, and during a traversal it may change if named sets are introduced using the 'expr AS alias' construct.

Returns:
Schema reader

Get Mondrian at SourceForge.net. Fast, secure and free Open Source software downloads