Package org.geotools.filter.visitor
Class LiteralDemultiplyingFilterVisitor
- Object
-
- DuplicatingFilterVisitor
-
- 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
Nested Classes Modifier and Type Class Description protected class
LiteralDemultiplyingFilterVisitor.BinaryComparisonOperatorReplacer
An implementation for Binary Comparison Operators Takes the method name in the FilterFactory to create the filterprotected class
LiteralDemultiplyingFilterVisitor.BinarySpatialOperatorReplacer
An implementation for Binary Spatial Operators Takes the method name in the FilterFactory to create the filterprotected class
LiteralDemultiplyingFilterVisitor.BinaryTemporalOperatorReplacer
An implementation for Binary Temporal Operators Takes the method name in the FilterFactory to create the filterprotected 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
Constructors Constructor Description LiteralDemultiplyingFilterVisitor()
-
Method Summary
-
-
-
Method Detail
-
demultiplyFirst
protected <T extends MultiValuedFilter> Filter demultiplyFirst(T filter, LiteralDemultiplyingFilterVisitor.FilterReplacer<T> replacer)
demultiplies the first expression- Parameters:
filter
- The filterreplacer
- 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
-
visit
public Object visit(PropertyIsBetween filter, Object extraData)
- Specified by:
visit
in interfaceFilterVisitor
- Overrides:
visit
in classDuplicatingFilterVisitor
-
visit
public Object visit(PropertyIsEqualTo filter, Object extraData)
- Specified by:
visit
in interfaceFilterVisitor
- Overrides:
visit
in classDuplicatingFilterVisitor
-
visit
public Object visit(PropertyIsNotEqualTo filter, Object extraData)
- Specified by:
visit
in interfaceFilterVisitor
- Overrides:
visit
in classDuplicatingFilterVisitor
-
visit
public Object visit(PropertyIsGreaterThan filter, Object extraData)
- Specified by:
visit
in interfaceFilterVisitor
- Overrides:
visit
in classDuplicatingFilterVisitor
-
visit
public Object visit(PropertyIsGreaterThanOrEqualTo filter, Object extraData)
- Specified by:
visit
in interfaceFilterVisitor
- Overrides:
visit
in classDuplicatingFilterVisitor
-
visit
public Object visit(PropertyIsLessThan filter, Object extraData)
- Specified by:
visit
in interfaceFilterVisitor
- Overrides:
visit
in classDuplicatingFilterVisitor
-
visit
public Object visit(PropertyIsLessThanOrEqualTo filter, Object extraData)
- Specified by:
visit
in interfaceFilterVisitor
- Overrides:
visit
in classDuplicatingFilterVisitor
-
visit
public Object visit(BBOX filter, Object extraData)
- Specified by:
visit
in interfaceFilterVisitor
- Overrides:
visit
in classDuplicatingFilterVisitor
-
visit
public Object visit(Beyond filter, Object extraData)
- Specified by:
visit
in interfaceFilterVisitor
- Overrides:
visit
in classDuplicatingFilterVisitor
-
visit
public Object visit(Contains filter, Object extraData)
- Specified by:
visit
in interfaceFilterVisitor
- Overrides:
visit
in classDuplicatingFilterVisitor
-
visit
public Object visit(Crosses filter, Object extraData)
- Specified by:
visit
in interfaceFilterVisitor
- Overrides:
visit
in classDuplicatingFilterVisitor
-
visit
public Object visit(Disjoint filter, Object extraData)
- Specified by:
visit
in interfaceFilterVisitor
- Overrides:
visit
in classDuplicatingFilterVisitor
-
visit
public Object visit(DWithin filter, Object extraData)
- Specified by:
visit
in interfaceFilterVisitor
- Overrides:
visit
in classDuplicatingFilterVisitor
-
visit
public Object visit(Equals filter, Object extraData)
- Specified by:
visit
in interfaceFilterVisitor
- Overrides:
visit
in classDuplicatingFilterVisitor
-
visit
public Object visit(Intersects filter, Object extraData)
- Specified by:
visit
in interfaceFilterVisitor
- Overrides:
visit
in classDuplicatingFilterVisitor
-
visit
public Object visit(Overlaps filter, Object extraData)
- Specified by:
visit
in interfaceFilterVisitor
- Overrides:
visit
in classDuplicatingFilterVisitor
-
visit
public Object visit(Touches filter, Object extraData)
- Specified by:
visit
in interfaceFilterVisitor
- Overrides:
visit
in classDuplicatingFilterVisitor
-
visit
public Object visit(Within filter, Object extraData)
- Specified by:
visit
in interfaceFilterVisitor
- Overrides:
visit
in classDuplicatingFilterVisitor
-
visit
public Object visit(After after, Object extraData)
- Specified by:
visit
in interfaceFilterVisitor
- Overrides:
visit
in classDuplicatingFilterVisitor
-
visit
public Object visit(AnyInteracts anyInteracts, Object extraData)
- Specified by:
visit
in interfaceFilterVisitor
- Overrides:
visit
in classDuplicatingFilterVisitor
-
visit
public Object visit(Before before, Object extraData)
- Specified by:
visit
in interfaceFilterVisitor
- Overrides:
visit
in classDuplicatingFilterVisitor
-
visit
public Object visit(Begins begins, Object extraData)
- Specified by:
visit
in interfaceFilterVisitor
- Overrides:
visit
in classDuplicatingFilterVisitor
-
visit
public Object visit(BegunBy begunBy, Object extraData)
- Specified by:
visit
in interfaceFilterVisitor
- Overrides:
visit
in classDuplicatingFilterVisitor
-
visit
public Object visit(During during, Object extraData)
- Specified by:
visit
in interfaceFilterVisitor
- Overrides:
visit
in classDuplicatingFilterVisitor
-
visit
public Object visit(EndedBy endedBy, Object extraData)
- Specified by:
visit
in interfaceFilterVisitor
- Overrides:
visit
in classDuplicatingFilterVisitor
-
visit
public Object visit(Ends ends, Object extraData)
- Specified by:
visit
in interfaceFilterVisitor
- Overrides:
visit
in classDuplicatingFilterVisitor
-
visit
public Object visit(Meets meets, Object extraData)
- Specified by:
visit
in interfaceFilterVisitor
- Overrides:
visit
in classDuplicatingFilterVisitor
-
visit
public Object visit(MetBy metBy, Object extraData)
- Specified by:
visit
in interfaceFilterVisitor
- Overrides:
visit
in classDuplicatingFilterVisitor
-
visit
public Object visit(OverlappedBy overlappedBy, Object extraData)
- Specified by:
visit
in interfaceFilterVisitor
- Overrides:
visit
in classDuplicatingFilterVisitor
-
visit
public Object visit(TContains contains, Object extraData)
- Specified by:
visit
in interfaceFilterVisitor
- Overrides:
visit
in classDuplicatingFilterVisitor
-
visit
public Object visit(TEquals equals, Object extraData)
- Specified by:
visit
in interfaceFilterVisitor
- Overrides:
visit
in classDuplicatingFilterVisitor
-
visit
public Object visit(TOverlaps overlaps, Object extraData)
- Specified by:
visit
in interfaceFilterVisitor
- Overrides:
visit
in classDuplicatingFilterVisitor
-
-