org.geotools.filter
Class AttributeExpressionImpl

Object
  extended by ExpressionAbstract
      extended by DefaultExpression
          extended by AttributeExpressionImpl
All Implemented Interfaces:
AttributeExpression, ExpressionType, Expression, PropertyName

public class AttributeExpressionImpl
extends DefaultExpression
implements AttributeExpression

Defines a complex filter (could also be called logical filter). This filter holds one or more filters together and relates them logically in an internally defined manner.

Author:
Rob Hranac, TOPP
Module:

Field Summary
protected  String attPath
          Holds all sub filters of this filter.
protected  SimpleFeatureType schema
          Holds all sub filters of this filter.
 
Fields inherited from class DefaultExpression
expressionType, permissiveConstruction
 
Fields inherited from interface ExpressionType
ATTRIBUTE, ATTRIBUTE_DOUBLE, ATTRIBUTE_GEOMETRY, ATTRIBUTE_INTEGER, ATTRIBUTE_STRING, ATTRIBUTE_UNDECLARED, FUNCTION, LITERAL_DOUBLE, LITERAL_GEOMETRY, LITERAL_INTEGER, LITERAL_LONG, LITERAL_STRING, LITERAL_UNDECLARED, MATH_ADD, MATH_DIVIDE, MATH_MULTIPLY, MATH_SUBTRACT
 
Fields inherited from interface Expression
NIL
 
Fields inherited from interface Expression
NIL
 
Constructor Summary
protected AttributeExpressionImpl(SimpleFeatureType schema)
          Constructor with the schema for this attribute.
protected AttributeExpressionImpl(SimpleFeatureType schema, String attPath)
          Constructor with schema and path to the attribute.
  AttributeExpressionImpl(String xpath)
          Constructor with schema and path to the attribute.
  AttributeExpressionImpl(String xpath, Hints propertyAccessorHints)
          Constructor with schema and path to the attribute.
 
Method Summary
 Object accept(ExpressionVisitor visitor, Object extraData)
          Used by FilterVisitors to perform some action on this filter instance.
 boolean equals(Object obj)
          Compares this filter to the specified object.
 Object evaluate(Object obj)
          Gets the value of this property from the passed object.
 Object evaluate(Object obj, Class target)
          Default implementation delegates handling of context conversion to Value utility class.
 Object evaluate(SimpleFeature feature)
          Gets the value of this attribute from the passed feature.
 String getAttributePath()
          Deprecated. use getPropertyName()
 String getPropertyName()
          Gets the path to the attribute to be evaluated by this expression.
 int hashCode()
          Override of hashCode method.
 void setAttributePath(String attPath)
          Deprecated. use setPropertyName(String)
 void setPropertyName(String attPath)
           
 String toString()
          Return this expression as a string.
 
Methods inherited from class DefaultExpression
accept, getType, getValue, isAttributeExpression, isExpression, isFunctionExpression, isGeometryExpression, isLiteralExpression, isMathExpression, isMathExpression
 
Methods inherited from class ExpressionAbstract
eval, eval
 
Methods inherited from class Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface AttributeExpression
getValue
 
Methods inherited from interface Expression
accept, getType
 

Field Detail

attPath

protected String attPath
Holds all sub filters of this filter.


schema

protected SimpleFeatureType schema
Holds all sub filters of this filter.

Constructor Detail

AttributeExpressionImpl

protected AttributeExpressionImpl(SimpleFeatureType schema)
Constructor with the schema for this attribute.

Parameters:
schema - The schema for this attribute.

AttributeExpressionImpl

public AttributeExpressionImpl(String xpath)
Constructor with schema and path to the attribute.

Parameters:
xpath - the String xpath to the attribute.

AttributeExpressionImpl

public AttributeExpressionImpl(String xpath,
                               Hints propertyAccessorHints)
Constructor with schema and path to the attribute.

Parameters:
xpath - the String xpath to the attribute.
propertyAccessorHints - hints to be passed to PropertyAccessorFactory.createPropertyAccessor(Class, String, Class, Hints) at evaluation time.

AttributeExpressionImpl

protected AttributeExpressionImpl(SimpleFeatureType schema,
                                  String attPath)
                           throws IllegalFilterException
Constructor with schema and path to the attribute.

Parameters:
schema - The initial (required) sub filter.
attPath - the xpath to the attribute.
Throws:
IllegalFilterException - If the attribute path is not in the schema.
Method Detail

setAttributePath

public final void setAttributePath(String attPath)
                            throws IllegalFilterException
Deprecated. use setPropertyName(String)

Constructor with minimum dataset for a valid expression.

Specified by:
setAttributePath in interface AttributeExpression
Parameters:
attPath - The initial (required) sub filter.
Throws:
IllegalFilterException - If the attribute path is not in the schema.

getAttributePath

public final String getAttributePath()
Deprecated. use getPropertyName()

This method calls getPropertyName().

Specified by:
getAttributePath in interface AttributeExpression
Returns:
the attribute to be queried.

getPropertyName

public String getPropertyName()
Gets the path to the attribute to be evaluated by this expression. PropertyName.getPropertyName()

Specified by:
getPropertyName in interface PropertyName

setPropertyName

public void setPropertyName(String attPath)

evaluate

public Object evaluate(SimpleFeature feature)
Gets the value of this attribute from the passed feature.

Overrides:
evaluate in class DefaultExpression
Parameters:
feature - Feature from which to extract attribute value.
Returns:
The value of this expression based on the feature.

evaluate

public Object evaluate(Object obj)
Gets the value of this property from the passed object.

Specified by:
evaluate in interface Expression
Overrides:
evaluate in class DefaultExpression
Parameters:
obj - Object from which we need to extract a property value.

evaluate

public Object evaluate(Object obj,
                       Class target)
Description copied from class: ExpressionAbstract
Default implementation delegates handling of context conversion to Value utility class.

Subclasses are expected to make use of the Value utility class (as the easiest way to provide value morphing in confirmance with the Filter specification).

Specified by:
evaluate in interface Expression
Overrides:
evaluate in class ExpressionAbstract

toString

public String toString()
Return this expression as a string.

Overrides:
toString in class Object
Returns:
String representation of this attribute expression.

equals

public boolean equals(Object obj)
Compares this filter to the specified object. Returns true if the passed in object is the same as this expression. Checks to make sure the expression types are the same as well as the attribute paths and schemas.

Overrides:
equals in class Object
Parameters:
obj - - the object to compare this ExpressionAttribute against.
Returns:
true if specified object is equal to this filter; else false

hashCode

public int hashCode()
Override of hashCode method.

Overrides:
hashCode in class Object
Returns:
a code to hash this object by.

accept

public Object accept(ExpressionVisitor visitor,
                     Object extraData)
Used by FilterVisitors to perform some action on this filter instance. Typicaly used by Filter decoders, but may also be used by any thing which needs infomration from filter structure. Implementations should always call: visitor.visit(this); It is importatant that this is not left to a parent class unless the parents API is identical.

Specified by:
accept in interface Expression
Overrides:
accept in class ExpressionAbstract
Parameters:
visitor - The visitor which requires access to this filter, the method must call visitor.visit(this);


Copyright © 1996-2009 Geotools. All Rights Reserved.