org.apache.commons.jexl
Class ExpressionFactory

java.lang.Object
  extended by org.apache.commons.jexl.ExpressionFactory

public class ExpressionFactory
extends java.lang.Object

Creates Expression objects. To create a JEXL Expression object, pass valid JEXL syntax to the static createExpression() method:

 String jexl = "array[1]";
 Expression expression = ExpressionFactory.createExpression( jexl );
 

When an Expression object is created, the JEXL syntax is parsed and verified. If the supplied expression is neither an expression nor a reference, an exception is thrown from createException().

Since:
1.0
Version:
$Id: ExpressionFactory.java 548229 2007-06-18 06:11:32Z dion $
Author:
Geir Magnusson Jr.

Field Summary
protected static ExpressionFactory ef
          ExpressionFactory is a singleton and this is the private instance fufilling that pattern.
protected static org.apache.commons.logging.Log log
          The Log to which all ExpressionFactory messages will be logged.
protected  Parser parser
          The singleton ExpressionFactory also holds a single instance of Parser.
 
Constructor Summary
ExpressionFactory(Uberspect uberspect)
          Creates an expression factory using the provided Uberspect.
 
Method Summary
static Expression createExpression(java.lang.String expression)
          Creates an Expression from a String containing valid JEXL syntax.
 Expression createNewExpression(java.lang.String expression)
          Creates a new Expression based on the expression string.
static ExpressionFactory getInstance()
          Returns the single instance of ExpressionFactory.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

log

protected static final org.apache.commons.logging.Log log
The Log to which all ExpressionFactory messages will be logged.


parser

protected final Parser parser
The singleton ExpressionFactory also holds a single instance of Parser. When parsing expressions, ExpressionFactory synchronizes on Parser.


ef

protected static final ExpressionFactory ef
ExpressionFactory is a singleton and this is the private instance fufilling that pattern.

Constructor Detail

ExpressionFactory

public ExpressionFactory(Uberspect uberspect)
Creates an expression factory using the provided Uberspect.

Parameters:
uberspect - to allow different introspection behaviour
Method Detail

getInstance

public static ExpressionFactory getInstance()
Returns the single instance of ExpressionFactory.

Returns:
the instance of ExpressionFactory.

createExpression

public static Expression createExpression(java.lang.String expression)
                                   throws java.lang.Exception
Creates an Expression from a String containing valid JEXL syntax. This method parses the expression which must contain either a reference or an expression.

Parameters:
expression - A String containing valid JEXL syntax
Returns:
An Expression object which can be evaluated with a JexlContext
Throws:
java.lang.Exception - An exception can be thrown if there is a problem parsing this expression, or if the expression is neither an expression or a reference.

createNewExpression

public Expression createNewExpression(java.lang.String expression)
                               throws java.lang.Exception
Creates a new Expression based on the expression string.

Parameters:
expression - valid Jexl expression
Returns:
Expression
Throws:
java.lang.Exception - for a variety of reasons - mostly malformed Jexl expression


Copyright © 2003-2008 The Apache Software Foundation. All Rights Reserved.