org.geotools.expr
Class AbstractMathExpr

java.lang.Object
  extended byorg.geotools.expr.AbstractExpr
      extended byorg.geotools.expr.AbstractMathExpr
All Implemented Interfaces:
Expr, MathExpr
Direct Known Subclasses:
AttributeMathExpr, LiteralMathExpr

public class AbstractMathExpr
extends org.geotools.expr.AbstractExpr
implements MathExpr

Author:
Jody Garnett TODO To change the template for this generated type comment go to Window - Preferences - Java - Code Style - Code Templates

Field Summary
protected  FilterFactory factory
           
 
Constructor Summary
AbstractMathExpr()
           
 
Method Summary
 MathExpr add(double number)
           
 MathExpr add(MathExpr expr)
           
 MathExpr add(java.lang.Number number)
           
 Expr and(Expr expr)
          Explicit Expr chain extention - required for custom Expressions.
 Expr bbox(com.vividsolutions.jts.geom.Envelope bbox)
          Convience method for: geom().disjoint( geom( bbox )).not()
 Expr between(double min, double max)
           
 Expr between(Expr min, Expr max)
          min <= expr <= max
 Expr between(java.lang.Number min, java.lang.Number max)
           
 MathExpr divide(double number)
           
 MathExpr divide(MathExpr expr)
           
 MathExpr divide(java.lang.Number number)
           
 Expr eq(double number)
           
 Expr eq(Expr expr)
          expr == expr
 Expr eq(java.lang.Number number)
           
 Expr eval()
          Evaludate Expr - with LiteralExpr as a goal.
 Expression expression(FeatureType schema)
          Turns a Filter into an a logical true/false expression.
 Expr fid(java.util.Set fids)
          expr.filter( fids ) Restruct current Expr to provided featureId(s).
 Expr fid(java.lang.String featureID)
          Convience method for accessing a single fid
 Filter filter(FeatureType schema)
          Useful super class that casts expressions into a Filter.
 Expr fn(java.lang.String name)
          name( expr )
 Expr fn(java.lang.String name, Expr expr)
          name( expr, expr )
 Expr fn(java.lang.String name, Expr[] expr)
          name( expr[0], expr[0], ... )
 Expr gt(double number)
           
 Expr gt(Expr expr)
          expr > expr
 Expr gt(java.lang.Number number)
           
 Expr gte(double number)
           
 Expr gte(Expr expr)
          expr >= expr
 Expr gte(java.lang.Number number)
           
 Expr lt(double number)
           
 Expr lt(Expr expr)
          expr < expr
 Expr lt(java.lang.Number number)
           
 Expr lte(double number)
           
 Expr lte(Expr expr)
          expr <= expr
 Expr lte(java.lang.Number number)
           
 MathExpr multiply(double number)
           
 MathExpr multiply(MathExpr expr)
           
 MathExpr multiply(java.lang.Number number)
           
 Expr ne(double number)
           
 Expr ne(Expr expr)
          expr !
 Expr ne(java.lang.Number number)
           
 Expr not()
          !
 Expr notNull()
          expr !
 Expr or(Expr expr)
          Expr Disjunction
 Expr reduce(java.lang.String bind)
          Reduce attributes matching "bind/x" to "x".
 Expr resolve(org.opengis.catalog.MetadataEntity metadata)
          Bind all meta entries according to provided metadata.
 Expr resolve(java.lang.String bind, Feature feature)
          Bind attributes matching "bind/x" to feature.getAttribute("x").
 MathExpr subtract(double number)
           
 MathExpr subtract(MathExpr expr)
           
 MathExpr subtract(java.lang.Number number)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.geotools.expr.Expr
and, bbox, between, eq, eval, expression, fid, fid, filter, fn, fn, fn, gt, gte, lt, lte, ne, not, notNull, or, reduce, resolve, resolve
 

Field Detail

factory

protected FilterFactory factory
Constructor Detail

AbstractMathExpr

public AbstractMathExpr()
Method Detail

add

public MathExpr add(MathExpr expr)
Specified by:
add in interface MathExpr

add

public MathExpr add(java.lang.Number number)
Specified by:
add in interface MathExpr

add

public MathExpr add(double number)
Specified by:
add in interface MathExpr

subtract

public MathExpr subtract(MathExpr expr)
Specified by:
subtract in interface MathExpr

subtract

public MathExpr subtract(java.lang.Number number)
Specified by:
subtract in interface MathExpr

subtract

public MathExpr subtract(double number)
Specified by:
subtract in interface MathExpr

divide

public MathExpr divide(MathExpr expr)
Specified by:
divide in interface MathExpr

divide

public MathExpr divide(java.lang.Number number)
Specified by:
divide in interface MathExpr

divide

public MathExpr divide(double number)
Specified by:
divide in interface MathExpr

multiply

public MathExpr multiply(MathExpr expr)
Specified by:
multiply in interface MathExpr

multiply

public MathExpr multiply(java.lang.Number number)
Specified by:
multiply in interface MathExpr

multiply

public MathExpr multiply(double number)
Specified by:
multiply in interface MathExpr

eq

public Expr eq(java.lang.Number number)
Specified by:
eq in interface MathExpr

eq

public Expr eq(double number)
Specified by:
eq in interface MathExpr

gt

public Expr gt(java.lang.Number number)
Specified by:
gt in interface MathExpr

gt

public Expr gt(double number)
Specified by:
gt in interface MathExpr

gte

public Expr gte(java.lang.Number number)
Specified by:
gte in interface MathExpr

gte

public Expr gte(double number)
Specified by:
gte in interface MathExpr

lt

public Expr lt(java.lang.Number number)
Specified by:
lt in interface MathExpr

lt

public Expr lt(double number)
Specified by:
lt in interface MathExpr

lte

public Expr lte(java.lang.Number number)
Specified by:
lte in interface MathExpr

lte

public Expr lte(double number)
Specified by:
lte in interface MathExpr

ne

public Expr ne(java.lang.Number number)
Specified by:
ne in interface MathExpr

ne

public Expr ne(double number)
Specified by:
ne in interface MathExpr

between

public Expr between(java.lang.Number min,
                    java.lang.Number max)
Specified by:
between in interface MathExpr

between

public Expr between(double min,
                    double max)
Specified by:
between in interface MathExpr

eval

public Expr eval()
Evaludate Expr - with LiteralExpr as a goal.

By default this method simply returns the current Expr.

Specified by:
eval in interface Expr

resolve

public Expr resolve(org.opengis.catalog.MetadataEntity metadata)
Bind all meta entries according to provided metadata.


 Feature
 

Specified by:
resolve in interface Expr
Parameters:
metadata -
Returns:
Expr with all meta( xpath ) Exprs resolved

reduce

public Expr reduce(java.lang.String bind)
Reduce attributes matching "bind/x" to "x".

This may be used to reduce an Expr as part of an otter join, to something simple that can be passed off to an DataStore by way of filter( FeatureType ).

Example:


 FeatureType RIVER = river.getSchema();
 FeatureType HAZZARD = hazard.getSchema();
 
 Expr joinExpr = Exprs.attribute("river/name").eq( Exprs.attribute("hazzard/river") );
 
 FeatureReader outer = river.getFeatures().reader();
 while( reader.hasNext() ){
   Feature aRiver = outer.next();
 
   Expr inner = joinExpr.resolve( "river", aRiver ).reduce( "hazzard" );
   FeatureReader inner = district.getFeatures( inner.filter( HAZZARD ) );
 	 while( inner.hasNext() ){
      Feature aHazzard = inner.next();
 
 		// code here has access to both aRiver and aHazzard 
   } 
   inner.close();
 }
 outer.close();
 

Specified by:
reduce in interface Expr

resolve

public Expr resolve(java.lang.String bind,
                    Feature feature)
Bind attributes matching "bind/x" to feature.getAttribute("x").

This may be used to reduce an Expr as part of an otter join, to something simple that can be passed off to an DataStore by way of filter( FeatureType ).

Specified by:
resolve in interface Expr
Parameters:
bind -
feature -
Returns:

filter

public Filter filter(FeatureType schema)
              throws java.io.IOException
Useful super class that casts expressions into a Filter.

To turn Expression into a Filter I am going to follow the usual Perl defaults of "true".

Where true means that the generated Filter will accept the results.

Specified by:
filter in interface Expr
Throws:
java.io.IOException

expression

public Expression expression(FeatureType schema)
                      throws java.io.IOException
Turns a Filter into an a logical true/false expression.

Specified by:
expression in interface Expr
Throws:
java.io.IOException

bbox

public Expr bbox(com.vividsolutions.jts.geom.Envelope bbox)
Convience method for: geom().disjoint( geom( bbox )).not()

Specified by:
bbox in interface Expr

fid

public Expr fid(java.lang.String featureID)
Convience method for accessing a single fid

Specified by:
fid in interface Expr
Returns:

fid

public Expr fid(java.util.Set fids)
Description copied from interface: Expr
expr.filter( fids )

Restruct current Expr to provided featureId(s).

Specified by:
fid in interface Expr

not

public Expr not()
Description copied from interface: Expr
!expr

Invert of logical TRUTH value. Can be used to test for non contained fitler contents or FALSE Expressions

Specified by:
not in interface Expr
Returns:
Invert of Logical TRUETH value

and

public Expr and(Expr expr)
Description copied from interface: Expr
Explicit Expr chain extention - required for custom Expressions.

Specified by:
and in interface Expr
Parameters:
expr -
Returns:
Explicit chain extention.

or

public Expr or(Expr expr)
Description copied from interface: Expr
Expr Disjunction

Specified by:
or in interface Expr

eq

public Expr eq(Expr expr)
Description copied from interface: Expr
expr == expr

Specified by:
eq in interface Expr

gt

public Expr gt(Expr expr)
Description copied from interface: Expr
expr > expr

Specified by:
gt in interface Expr

gte

public Expr gte(Expr expr)
Description copied from interface: Expr
expr >= expr

Specified by:
gte in interface Expr

lt

public Expr lt(Expr expr)
Description copied from interface: Expr
expr < expr

Specified by:
lt in interface Expr

lte

public Expr lte(Expr expr)
Description copied from interface: Expr
expr <= expr

Specified by:
lte in interface Expr

ne

public Expr ne(Expr expr)
Description copied from interface: Expr
expr != expr

Specified by:
ne in interface Expr

between

public Expr between(Expr min,
                    Expr max)
Description copied from interface: Expr
min <= expr <= max

Specified by:
between in interface Expr

notNull

public Expr notNull()
Description copied from interface: Expr
expr != null

Specified by:
notNull in interface Expr

fn

public Expr fn(java.lang.String name)
Description copied from interface: Expr
name( expr )

Specified by:
fn in interface Expr

fn

public Expr fn(java.lang.String name,
               Expr expr)
Description copied from interface: Expr
name( expr, expr )

Specified by:
fn in interface Expr

fn

public Expr fn(java.lang.String name,
               Expr[] expr)
Description copied from interface: Expr
name( expr[0], expr[0], ... )

Specified by:
fn in interface Expr


Copyright © GeoTools. All Rights Reserved.