Expression Interface

com.bea.p13n.expression
Expression Interface

public interface Expression

    extends Cloneable, Serializable

An interface implemented by all simple and complex expressions. An expression is a runtime interpreted well formed piece of simple Java code ( all kinds of expressions, conditional statements, etc ). Expression objects can contain sub-expressions, sub-expressions can also be Java literals(Double, Float, Integer, etc). Expressions maintain parent information, children information, internal cache and a parameter signature.


All Known Implementing Classes
ComplexExpressionImpl
All Superinterfaces
Cloneable, Serializable
All Known Subinterfaces

ProxyExpression

Method Summary

public void
addSubExpression(Object object)
Adds the supplied object as a child of this expression.
public void
clearCache()
Clears any cached results to force re-evaluation.
public Object
clone()
Returns a clone of this.
public Object
getCachedValue()
Returns the cached value for this expression, if the cache is enabled for this expression.
public Class[]
getParameterSignature()
Returns the parameter signature for this Expression.
public Expression
getParent()
Returns the parent of this expression.
public Object
getSubExpression(int index)
Returns the sub-expression (child) at the specified position.
public int
getSubExpressionCount()
Returns the number of sub-expressions (children of this expression).
public boolean
isCached()
Returns true if this expression has a cached value.
public boolean
isCacheEnabled()
Returns true if this Expression is caching the result of evaluating this.
public void
removeAllSubExpressions()
Removes all the sub-expressions (children) of this.
public Object
removeSubExpression(int index)
Removes the (child) sub-expression at the specified position.
public boolean
removeSubExpression(Object object)
Removes the supplied (child) sub-expression.
public void
setCachedValue(Object obj)
Sets the given object that is the result of evaluating this expression as the cached result value for this expression.
public void
setCacheEnabled(boolean enable)
Enables the result caching for this Expression.
public void
setSubExpression(int index, Object object)
Replaces the sub-expression (child) at the specified position.
public void
write(PrintStream out)
Writes the expression (in text form) to an OutputStream.

Method Detail

addSubExpression(Object) Method

public void addSubExpression(Object object)
Adds the supplied object as a child of this expression. If the supplied object is an instance of Expression and if it already has a parent, then a proxy expression will be created and added as a child of this expression.

Parameters

object
The object added as a child of this.

Related Topics

ProxyExpression


clearCache() Method

public void clearCache()
Clears any cached results to force re-evaluation. Should also call clearCache on any parent-expressions to force this Expression to be re-evaluated.


clone() Method

public Object clone()
throws CloneNotSupportedException
Returns a clone of this.

Returns

A clone of this.

Exceptions

CloneNotSupportedException

getCachedValue() Method

public Object getCachedValue()
Returns the cached value for this expression, if the cache is enabled for this expression.

Returns

the result of evaluating this expression.

Related Topics

Expression.isCached()


getParameterSignature() Method

public Class[] getParameterSignature()
Returns the parameter signature for this Expression. Because the sub-expressions within the Expression are typically arguments or operands, some type validation is performed by examining the class types of the sub-expressions against the Expression's parameter signature.
The tests that are performed are:
1. The number of sub-expressions must equals the number of parameter entries.
2. The class type of any sub-expression (or the result of evaluating the sub-expresssion) must equal the class type of the corresponding parameter entry.
3. Any null parameter entries are ignored and are considered optional sub-expressions.

Returns

the Class array containing the parameter signature.

getParent() Method

public Expression getParent()
Returns the parent of this expression.

Returns

The parent of this.

getSubExpression(int) Method

public Object getSubExpression(int index)
Returns the sub-expression (child) at the specified position.

Parameters

index
The index of the sub-expression (child) to return.

Returns

The sub-expression (child) at the supplied index.

getSubExpressionCount() Method

public int getSubExpressionCount()
Returns the number of sub-expressions (children of this expression).

Returns

The number of sub-expressions

isCached() Method

public boolean isCached()
Returns true if this expression has a cached value.

Returns

true If this expression has a cached value, otherwise false.

isCacheEnabled() Method

public boolean isCacheEnabled()
Returns true if this Expression is caching the result of evaluating this.

Returns

true if caching is enabled otherwise false.

removeAllSubExpressions() Method

public void removeAllSubExpressions()
Removes all the sub-expressions (children) of this.


removeSubExpression(int) Method

public Object removeSubExpression(int index)
Removes the (child) sub-expression at the specified position.

Parameters

index
The index of the (child) sub-expression to remove.

Returns

The removed (child) sub-expression.

removeSubExpression(Object) Method

public boolean removeSubExpression(Object object)
Removes the supplied (child) sub-expression.

Parameters

object
The (child) sub-expression to remove.

Returns

true If the (child) sub-expression is removed successfully, otherwise false.

setCachedValue(Object) Method

public void setCachedValue(Object obj)
Sets the given object that is the result of evaluating this expression as the cached result value for this expression. The evaluate method will return the cached value if isCached() method returns true.

Parameters

obj
the value to be cached

Related Topics

Expression.isCached()


setCacheEnabled(boolean) Method

public void setCacheEnabled(boolean enable)
Enables the result caching for this Expression.

Parameters

enable
true to enable the result caching.

setSubExpression(int, Object) Method

public void setSubExpression(int index, 
                             Object object)
Replaces the sub-expression (child) at the specified position.

Note: If the given object (child) is an expression then it is replaced by null in the previous parent's children list.

Parameters

index
The index of the (child) sub-expression to replace.
object
The new sub-expression (child) to be stored at the specified position.

write(PrintStream) Method

public void write(PrintStream out)
Writes the expression (in text form) to an OutputStream.

Parameters

out
A PrintStream.