## org.opengis.filter.expression
Interface Expression

All Known Subinterfaces:
  Add, BinaryExpression, Divide, Function, Literal, Multiply, PropertyName, Subtract

All Known Implementing Classes:
  NilExpression

    @XmlElement(value="expression")
    public interface Expression

Interface for all the OGC Filter elements that compute values.

The most common use is with potentially using feature and metadata. The ability to access "attributes" based on the provided content is defined based on XPath queries currently.

Since:
  GeoAPI 2.0
Version:
  Implementation specification 1.0

Field Summary
`static Expression` `NIL` Constant expression that always evaulates to `null`.

Method Summary
`Object` `accept(ExpressionVisitor visitor, Object extraData)` Accepts a visitor.
`Object` `evaluate(Object object)` Evaluates the given expression based on the content of the given object.

`

`<T> T`

`

`evaluate(Object object, Class<T> context)`
Evaluates the given expressoin based on the content of the given object and the context type.

Field Detail

### NIL

    static final Expression NIL

  Constant expression that always evaulates to `null`.

  This constant is a "NullObject" that can represent the absense of expression in a data structures. As example it can be used to represent the default stroke color in a LineSymbolizer Stroke structure.

Method Detail

### evaluate

    @Extension
    Object evaluate(Object object)

  Evaluates the given expression based on the content of the given object.

### evaluate

    @Extension
    <T> T evaluate(Object object,
                             Class<T> context)

  Evaluates the given expressoin based on the content of the given object and the context type.

  The `context` parameter is used to control the type of the result of the expression. A particular expression may not be able to evaluate to an instance of `context`. Therefore to be safe calling code should do a null check on the return value of this method, and call `evaluate(Object)` if neccessary. Example:

        Object input = ...;
        String result = expression.evaluate( input, String.class );
        if ( result == null ) {
           result = expression.evalute( input ).toString();
        }
        ...

  Implementations that can not return a result as an instance of `context` should return `null`.

  Type Parameters:
    `T` - The type of the returned object.
  Parameters:
    `object` - The object to evaluate the expression against.
    `context` - The type of the resulting value of the expression.
  Returns:
    Evaluates the given expression based on the content of the given object an an instance of `context`.

### accept

    @Extension
    Object accept(ExpressionVisitor visitor,
                            Object extraData)

  Accepts a visitor. Subclasses must implement with a method whose content is the following:

      return visitor.visit(this, extraData);

Copyright © 1994-2008 Open Geospatial Consortium. All Rights Reserved.