org.geotools.filter.visitor
Class LiteralDemultiplyingFilterVisitor

Object
  extended by DuplicatingFilterVisitor
      extended by LiteralDemultiplyingFilterVisitor
All Implemented Interfaces:
ExpressionVisitor, FilterVisitor

public class LiteralDemultiplyingFilterVisitor
extends DuplicatingFilterVisitor

This visitor gets rid of equations that contain literals with multiple values (collections) and creates instead multiple singe value equations, replacing the ANY, ALL, ONE logic by AND, OR, NOT logic

Author:
Niels Charlier

Nested Class Summary
protected  class LiteralDemultiplyingFilterVisitor.BinaryComparisonOperatorReplacer
          An implementation for Binary Comparison Operators Takes the method name in the FilterFactory to create the filter
protected  class LiteralDemultiplyingFilterVisitor.BinarySpatialOperatorReplacer
          An implementation for Binary Spatial Operators Takes the method name in the FilterFactory to create the filter
protected  class LiteralDemultiplyingFilterVisitor.BinaryTemporalOperatorReplacer
          An implementation for Binary Temporal Operators Takes the method name in the FilterFactory to create the filter
protected static interface LiteralDemultiplyingFilterVisitor.FilterReplacer<F extends MultiValuedFilter>
          This interface is in support of a generic function (demultiply) that gets rid of the multi-valued literals, with any type of filter that takes two expressions.
 
Field Summary
 
Fields inherited from class DuplicatingFilterVisitor
ff
 
Constructor Summary
LiteralDemultiplyingFilterVisitor()
           
 
Method Summary
protected
<T extends MultiValuedFilter>
Filter
demultiply(T filter, LiteralDemultiplyingFilterVisitor.FilterReplacer<T> replacer)
          Demultiplies first and second expression
protected
<T extends MultiValuedFilter>
Filter
demultiplyFirst(T filter, LiteralDemultiplyingFilterVisitor.FilterReplacer<T> replacer)
          demultiplies the first expression
 Object visit(After after, Object extraData)
           
 Object visit(AnyInteracts anyInteracts, Object extraData)
           
 Object visit(BBOX filter, Object extraData)
           
 Object visit(Before before, Object extraData)
           
 Object visit(Begins begins, Object extraData)
           
 Object visit(BegunBy begunBy, Object extraData)
           
 Object visit(Beyond filter, Object extraData)
           
 Object visit(Contains filter, Object extraData)
           
 Object visit(Crosses filter, Object extraData)
           
 Object visit(Disjoint filter, Object extraData)
           
 Object visit(During during, Object extraData)
           
 Object visit(DWithin filter, Object extraData)
           
 Object visit(EndedBy endedBy, Object extraData)
           
 Object visit(Ends ends, Object extraData)
           
 Object visit(Equals filter, Object extraData)
           
 Object visit(Intersects filter, Object extraData)
           
 Object visit(Meets meets, Object extraData)
           
 Object visit(MetBy metBy, Object extraData)
           
 Object visit(OverlappedBy overlappedBy, Object extraData)
           
 Object visit(Overlaps filter, Object extraData)
           
 Object visit(PropertyIsBetween filter, Object extraData)
           
 Object visit(PropertyIsEqualTo filter, Object extraData)
           
 Object visit(PropertyIsGreaterThan filter, Object extraData)
           
 Object visit(PropertyIsGreaterThanOrEqualTo filter, Object extraData)
           
 Object visit(PropertyIsLessThan filter, Object extraData)
           
 Object visit(PropertyIsLessThanOrEqualTo filter, Object extraData)
           
 Object visit(PropertyIsNotEqualTo filter, Object extraData)
           
 Object visit(TContains contains, Object extraData)
           
 Object visit(TEquals equals, Object extraData)
           
 Object visit(Touches filter, Object extraData)
           
 Object visit(TOverlaps overlaps, Object extraData)
           
 Object visit(Within filter, Object extraData)
           
 
Methods inherited from class DuplicatingFilterVisitor
getFactory, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visitNullFilter
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LiteralDemultiplyingFilterVisitor

public LiteralDemultiplyingFilterVisitor()
Method Detail

demultiplyFirst

protected <T extends MultiValuedFilter> Filter demultiplyFirst(T filter,
                                                               LiteralDemultiplyingFilterVisitor.FilterReplacer<T> replacer)
demultiplies the first expression

Parameters:
filter - The filter
replacer - The filter replacer
Returns:
the new filter

demultiply

protected <T extends MultiValuedFilter> Filter demultiply(T filter,
                                                          LiteralDemultiplyingFilterVisitor.FilterReplacer<T> replacer)
Demultiplies first and second expression

Parameters:
filter -
replacer -
Returns:

visit

public Object visit(PropertyIsBetween filter,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class DuplicatingFilterVisitor

visit

public Object visit(PropertyIsEqualTo filter,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class DuplicatingFilterVisitor

visit

public Object visit(PropertyIsNotEqualTo filter,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class DuplicatingFilterVisitor

visit

public Object visit(PropertyIsGreaterThan filter,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class DuplicatingFilterVisitor

visit

public Object visit(PropertyIsGreaterThanOrEqualTo filter,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class DuplicatingFilterVisitor

visit

public Object visit(PropertyIsLessThan filter,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class DuplicatingFilterVisitor

visit

public Object visit(PropertyIsLessThanOrEqualTo filter,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class DuplicatingFilterVisitor

visit

public Object visit(BBOX filter,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class DuplicatingFilterVisitor

visit

public Object visit(Beyond filter,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class DuplicatingFilterVisitor

visit

public Object visit(Contains filter,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class DuplicatingFilterVisitor

visit

public Object visit(Crosses filter,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class DuplicatingFilterVisitor

visit

public Object visit(Disjoint filter,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class DuplicatingFilterVisitor

visit

public Object visit(DWithin filter,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class DuplicatingFilterVisitor

visit

public Object visit(Equals filter,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class DuplicatingFilterVisitor

visit

public Object visit(Intersects filter,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class DuplicatingFilterVisitor

visit

public Object visit(Overlaps filter,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class DuplicatingFilterVisitor

visit

public Object visit(Touches filter,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class DuplicatingFilterVisitor

visit

public Object visit(Within filter,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class DuplicatingFilterVisitor

visit

public Object visit(After after,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class DuplicatingFilterVisitor

visit

public Object visit(AnyInteracts anyInteracts,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class DuplicatingFilterVisitor

visit

public Object visit(Before before,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class DuplicatingFilterVisitor

visit

public Object visit(Begins begins,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class DuplicatingFilterVisitor

visit

public Object visit(BegunBy begunBy,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class DuplicatingFilterVisitor

visit

public Object visit(During during,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class DuplicatingFilterVisitor

visit

public Object visit(EndedBy endedBy,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class DuplicatingFilterVisitor

visit

public Object visit(Ends ends,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class DuplicatingFilterVisitor

visit

public Object visit(Meets meets,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class DuplicatingFilterVisitor

visit

public Object visit(MetBy metBy,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class DuplicatingFilterVisitor

visit

public Object visit(OverlappedBy overlappedBy,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class DuplicatingFilterVisitor

visit

public Object visit(TContains contains,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class DuplicatingFilterVisitor

visit

public Object visit(TEquals equals,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class DuplicatingFilterVisitor

visit

public Object visit(TOverlaps overlaps,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class DuplicatingFilterVisitor


Copyright © 1996-2014 Geotools. All Rights Reserved.