© 2005 BEA Systems, Inc.

com.bea.p13n.expression
Interface Expression

All Superinterfaces:
Cloneable, Serializable
All Known Subinterfaces:
ProxyExpression
All Known Implementing Classes:
com.bea.p13n.expression.internal.ComplexExpressionImpl

public interface Expression
extends Serializable, Cloneable

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.


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

Method Detail

addSubExpression

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.
See Also:
ProxyExpression

clearCache

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

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

Returns:
A clone of this.
Throws:
A - CloneNotSupportedException if unable to clone this.
CloneNotSupportedException

getCachedValue

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.
See Also:
isCached()

getParameterSignature

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

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

Returns:
The parent of this.

getSubExpression

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.
Throws:
IndexOutOfBoundsException - If the supplied index is invalid.

getSubExpressionCount

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

Returns:
The number of sub-expressions

isCached

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

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

isCacheEnabled

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

Returns:
true if caching is enabled otherwise false.

removeAllSubExpressions

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


removeSubExpression

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.
Throws:
IndexOutOfBoundsException - If the supplied index is invalid.

removeSubExpression

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

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
See Also:
isCached()

setCacheEnabled

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

Parameters:
enable - true to enable the result caching.

setSubExpression

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.
Throws:
IndexOutOfBoundsException - If the supplied index is invalid.

write

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

Parameters:
out - A PrintStream.

© 2005 BEA Systems, Inc.

Copyright © 2005 BEA Systems, Inc. All Rights Reserved