Overview | Package | Class | Tree | Deprecated | Index | Help
| © 2004 BEA Systems, Inc.
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## 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`.

Overview | Package | Class | Tree | Deprecated | Index | Help
| © 2004 BEA Systems, Inc.
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2004 BEA Systems, Inc. All Rights Reserved