com.plotnix.jex
Class MultilingualInterpreter

java.lang.Object
  |
  +--com.plotnix.jex.Interpreter
        |
        +--com.plotnix.jex.MultilingualInterpreter

public class MultilingualInterpreter
extends Interpreter

A MultilingualInterpreter determines the language for each expression and then interprets it using that language's interpreter.

If the expression string passed to this interpreter starts with "language:", the compiler strips the prefix off and passes the remainder of the expression to the interpreter for the corresponding language.

The prefix is required if the MultilingualInterpreter's default language is null.

If the default language is not null and the expression is missing a prefix, or the prefix does not match an existing compiler, the multilingual interpreter passes the expression unchanged to the default language interpreter.

Version:
$Revision$ $Date$
Author:
Dmitri Plotnikov

Method Summary
 void assign(Context context, java.lang.String expression, java.lang.Object value, java.lang.Object[] arguments)
          See evaluate
 java.lang.Object evaluate(Context context, java.lang.String expression, java.lang.Object[] arguments)
          Evaluates the expression using the appropriate Interpreter.
 java.lang.Object evaluate(Context context, java.lang.String expression, java.lang.Object[] arguments, java.lang.Class valueType)
          Evaluates the expression and casts the result to the supplied type.
static Interpreter getMultilingualInterpreter(java.lang.String defaultLanguage)
          Returns a MultilingualInterpreter with the specified default language.
 java.util.Iterator iterate(Context context, java.lang.String expression, java.lang.Object[] arguments)
          See evaluate
 void validateExpression(java.lang.String expression)
          Identifies the expression language and validates the expression syntax using the appropriate Interpreter See evaluate
 void validateIterationExpression(java.lang.String expression)
          Identifies the expression language and validates the iteration expression syntax using the appropriate Interpreter See evaluate
 void validateVariableExpression(java.lang.String expression)
          Identifies the expression language and validates the variable expression syntax using the appropriate Interpreter See evaluate
 
Methods inherited from class com.plotnix.jex.Interpreter
getInterpreter, getInterpreterImplementation
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getMultilingualInterpreter

public static final Interpreter getMultilingualInterpreter(java.lang.String defaultLanguage)
Returns a MultilingualInterpreter with the specified default language. If the specified default language is not null, an interpreter (or a compiler) for that language should be available.
Parameters:
defaultLanguage - is the default language or null
Returns:
A MultilingualInterpreter

evaluate

public java.lang.Object evaluate(Context context,
                                 java.lang.String expression,
                                 java.lang.Object[] arguments)
Evaluates the expression using the appropriate Interpreter. If the expression has the syntax "lang:expr" and an interpreter is available for the language "lang", it passes the expression to that interpreter. Otherwise, passes the whole unparsed expression to the default language interpreter.
Overrides:
evaluate in class Interpreter
Parameters:
context - is the context in which the expression should be evaluated
expression - is the expression to be evaluated with an optional "lang:" prefix
arguments - is an array of arguments for the expression. Can be null if the expression does not require any arguments.
Returns:
the result of the evaluation

evaluate

public java.lang.Object evaluate(Context context,
                                 java.lang.String expression,
                                 java.lang.Object[] arguments,
                                 java.lang.Class valueType)
Evaluates the expression and casts the result to the supplied type.
Overrides:
evaluate in class Interpreter
See Also:
evaluate(Context, String, Object[])

iterate

public java.util.Iterator iterate(Context context,
                                  java.lang.String expression,
                                  java.lang.Object[] arguments)
See evaluate
Overrides:
iterate in class Interpreter
See Also:
Interpreter.iterate(Context, String, Object[])

assign

public void assign(Context context,
                   java.lang.String expression,
                   java.lang.Object value,
                   java.lang.Object[] arguments)
See evaluate
Overrides:
assign in class Interpreter
See Also:
Interpreter.assign(Context, String, Object, Object[])

validateExpression

public void validateExpression(java.lang.String expression)
Identifies the expression language and validates the expression syntax using the appropriate Interpreter See evaluate
Overrides:
validateExpression in class Interpreter
See Also:
Interpreter.validateExpression(String)

validateIterationExpression

public void validateIterationExpression(java.lang.String expression)
Identifies the expression language and validates the iteration expression syntax using the appropriate Interpreter See evaluate
Overrides:
validateIterationExpression in class Interpreter
See Also:
Interpreter.validateIterationExpression(String)

validateVariableExpression

public void validateVariableExpression(java.lang.String expression)
Identifies the expression language and validates the variable expression syntax using the appropriate Interpreter See evaluate
Overrides:
validateVariableExpression in class Interpreter
See Also:
Interpreter.validateIterationExpression(String)


Copyright (c) 2002 - Plotnix, Inc