/** @see org.vedantatree.expressionoasis.expressions.UnaryOperatorExpression#validate() */ @Override protected void validate(ExpressionContext expressionContext) throws ExpressionEngineException { // Initializes the function provider. ParanthesisExpression argsExpression = (ParanthesisExpression) getOperandExpression(); List<Type> types = new ArrayList<Type>(); List values = new ArrayList(); populateTypesAndValues(argsExpression.getOperandExpression(), types, values); Type[] parameterTypes = (Type[]) types.toArray(new Type[types.size()]); for (Iterator functionProviders = expressionContext.getFunctionProviders().iterator(); functionProviders.hasNext(); ) { FunctionProvider functionProvider = (FunctionProvider) functionProviders.next(); if (functionProvider.supportsFunction(functionName, parameterTypes)) { this.functionProvider = functionProvider; break; } } if (functionProvider == null) { throw new ExpressionEngineException( "No Function Provider exists for function: [" + MethodKey.generateKey(functionName, parameterTypes) + "]"); } }
/** * @see * org.vedantatree.expressionoasis.expressions.Expression#initialize(org.vedantatree.expressionoasis.ExpressionContext, * java.lang.Object) */ @Override public void initialize(ExpressionContext expressionContext, Object parameters, boolean validate) throws ExpressionEngineException { functionName = (String) expressionContext.getContextProperty("TOKEN"); super.initialize(expressionContext, parameters, validate); }