org.geotools.expr
Class MetadataExpr

java.lang.Object
  extended byorg.geotools.expr.AbstractExpr
      extended byorg.geotools.expr.MetadataExpr
All Implemented Interfaces:
Expr

public class MetadataExpr
extends org.geotools.expr.AbstractExpr

Retrive attribute from Feature.

This is a start of an Expr chain - I would rather setup Expr.attribute( path ) if I can figure out how.


Field Summary
protected  FilterFactory factory
           
 
Constructor Summary
MetadataExpr(java.lang.String xpath)
           
 
Method Summary
 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(Expr min, Expr max)
          min <= expr <= max
 Expr eq(Expr expr)
          expr == expr
 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(Expr expr)
          expr > expr
 Expr gte(Expr expr)
          expr >= expr
 Expr lt(Expr expr)
          expr < expr
 Expr lte(Expr expr)
          expr <= expr
 Expr ne(Expr expr)
          expr !
 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").
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

factory

protected FilterFactory factory
Constructor Detail

MetadataExpr

public MetadataExpr(java.lang.String xpath)
Method Detail

resolve

public Expr resolve(org.opengis.catalog.MetadataEntity metadata)
Description copied from class: org.geotools.expr.AbstractExpr
Bind all meta entries according to provided metadata.


 Feature
 

Parameters:
metadata -
Returns:
Expr with all meta( xpath ) Exprs resolved

expression

public Expression expression(FeatureType schema)
Description copied from class: org.geotools.expr.AbstractExpr
Turns a Filter into an a logical true/false expression.


resolve

public Expr resolve(java.lang.String bind,
                    Feature feature)
Description copied from class: org.geotools.expr.AbstractExpr
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 ).

Parameters:
bind -
feature -
Returns:

reduce

public Expr reduce(java.lang.String bind)
Description copied from class: org.geotools.expr.AbstractExpr
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();
 


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

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

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.