public class FilterCompliancePreProcessor extends Object implements FilterVisitor
and { nullFilter or{ fidFilter nullFilter } }for strict it would throw an exception, for low it would be left alone, but for Medium it would end up as:
and{ nullFilter nullFilter }and getFids() would return the fids in the fidFilter.
So the final filter would (this is not standard but a common implementation) return the results of the and filter as well as all the features that match the fids. Which is more than the original filter would accept.
The XML Document writer can operate at different levels of compliance. The geotools level is extremely flexible and forgiving.
All NOT(FidFilter) are changed to Filter.INCLUDE. So make sure that the filter is processed again on the client with the original filter For a description of the difference Compliance levels that can be used see
Constructor and Description |
---|
FilterCompliancePreProcessor(Integer complianceLevel) |
Modifier and Type | Method and Description |
---|---|
Id |
getFidFilter()
Gets the fid filter that contains all the fids.
|
Filter |
getFilter()
Returns the filter that can be encoded.
|
boolean |
requiresPostProcessing()
Returns true if the filter was one where the request to the server is more general than the
actual filter.
|
Object |
visit(After after,
Object extraData) |
Object |
visit(And filter,
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) |
protected Object |
visit(BinaryTemporalOperator filter,
Object data) |
Object |
visit(Contains filter,
Object extraData) |
Object |
visit(Crosses filter,
Object extraData) |
Object |
visit(Disjoint filter,
Object extraData) |
Object |
visit(DistanceBufferOperator 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(ExcludeFilter filter,
Object extraData)
Visit
Filter.EXCLUDE (often used during data structure transformations). |
Object |
visit(Id filter,
Object extraData) |
Object |
visit(IncludeFilter filter,
Object extraData)
Visit
Filter.INCLUDE (often used during data structure transformations). |
Object |
visit(Intersects filter,
Object extraData) |
Object |
visit(Meets meets,
Object extraData) |
Object |
visit(MetBy metBy,
Object extraData) |
Object |
visit(NativeFilter nativeFilter,
Object extraData) |
Object |
visit(Not filter,
Object extraData) |
Object |
visit(Or filter,
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(PropertyIsLike filter,
Object extraData) |
Object |
visit(PropertyIsNil filter,
Object extraData) |
Object |
visit(PropertyIsNotEqualTo filter,
Object extraData) |
Object |
visit(PropertyIsNull filter,
Object extraData) |
Object |
visit(TContains contains,
Object extraData) |
Object |
visit(TEquals equals,
Object extraData) |
Object |
visit(Touches filter,
Object extraData) |
Object |
visit(TOverlaps contains,
Object extraData) |
Object |
visit(Within filter,
Object extraData) |
Object |
visitNullFilter(Object extraData)
Used to account for a
null filter value. |
public FilterCompliancePreProcessor(Integer complianceLevel)
public Id getFidFilter()
public Filter getFilter()
public Object visit(PropertyIsBetween filter, Object extraData)
visit
in interface FilterVisitor
public Object visit(PropertyIsEqualTo filter, Object extraData)
visit
in interface FilterVisitor
public Object visit(PropertyIsGreaterThan filter, Object extraData)
visit
in interface FilterVisitor
public Object visit(PropertyIsGreaterThanOrEqualTo filter, Object extraData)
visit
in interface FilterVisitor
public Object visit(PropertyIsLessThan filter, Object extraData)
visit
in interface FilterVisitor
public Object visit(PropertyIsLessThanOrEqualTo filter, Object extraData)
visit
in interface FilterVisitor
public Object visit(PropertyIsNotEqualTo filter, Object extraData)
visit
in interface FilterVisitor
public Object visit(BBOX filter, Object extraData)
visit
in interface FilterVisitor
public Object visit(Contains filter, Object extraData)
visit
in interface FilterVisitor
public Object visit(Crosses filter, Object extraData)
visit
in interface FilterVisitor
public Object visit(Disjoint filter, Object extraData)
visit
in interface FilterVisitor
public Object visit(DistanceBufferOperator filter, Object extraData)
public Object visit(Equals filter, Object extraData)
visit
in interface FilterVisitor
public Object visit(Intersects filter, Object extraData)
visit
in interface FilterVisitor
public Object visit(Overlaps filter, Object extraData)
visit
in interface FilterVisitor
public Object visit(Touches filter, Object extraData)
visit
in interface FilterVisitor
public Object visit(Within filter, Object extraData)
visit
in interface FilterVisitor
public Object visit(Beyond filter, Object extraData)
visit
in interface FilterVisitor
public Object visit(DWithin filter, Object extraData)
visit
in interface FilterVisitor
public Object visit(PropertyIsLike filter, Object extraData)
visit
in interface FilterVisitor
public Object visit(And filter, Object extraData)
visit
in interface FilterVisitor
public Object visit(Or filter, Object extraData)
visit
in interface FilterVisitor
public Object visit(Not filter, Object extraData)
visit
in interface FilterVisitor
public Object visit(PropertyIsNull filter, Object extraData)
visit
in interface FilterVisitor
public Object visit(PropertyIsNil filter, Object extraData)
visit
in interface FilterVisitor
public Object visit(Id filter, Object extraData)
visit
in interface FilterVisitor
public Object visit(IncludeFilter filter, Object extraData)
FilterVisitor
Filter.INCLUDE
(often used during data structure transformations).visit
in interface FilterVisitor
filter
- Filter.INCLUDE
.extraData
- Value object provided to visitorpublic Object visit(ExcludeFilter filter, Object extraData)
FilterVisitor
Filter.EXCLUDE
(often used during data structure transformations).visit
in interface FilterVisitor
filter
- Filter.EXCLUDE
.extraData
- Value object provided to visitorpublic Object visitNullFilter(Object extraData)
FilterVisitor
null
filter value.
This is particularly used during data structure transofrmations, however the use of
null
is not recommended. Please make use of Filter.NONE and Filter.ALL as placeholder
objects that communicate intent.
visitNullFilter
in interface FilterVisitor
extraData
- Value object provided to visitorpublic Object visit(After after, Object extraData)
visit
in interface FilterVisitor
public Object visit(AnyInteracts anyInteracts, Object extraData)
visit
in interface FilterVisitor
public Object visit(Before before, Object extraData)
visit
in interface FilterVisitor
public Object visit(Begins begins, Object extraData)
visit
in interface FilterVisitor
public Object visit(BegunBy begunBy, Object extraData)
visit
in interface FilterVisitor
public Object visit(During during, Object extraData)
visit
in interface FilterVisitor
public Object visit(EndedBy endedBy, Object extraData)
visit
in interface FilterVisitor
public Object visit(Ends ends, Object extraData)
visit
in interface FilterVisitor
public Object visit(Meets meets, Object extraData)
visit
in interface FilterVisitor
public Object visit(MetBy metBy, Object extraData)
visit
in interface FilterVisitor
public Object visit(OverlappedBy overlappedBy, Object extraData)
visit
in interface FilterVisitor
public Object visit(TContains contains, Object extraData)
visit
in interface FilterVisitor
public Object visit(TEquals equals, Object extraData)
visit
in interface FilterVisitor
public Object visit(TOverlaps contains, Object extraData)
visit
in interface FilterVisitor
protected Object visit(BinaryTemporalOperator filter, Object data)
public boolean requiresPostProcessing()
XMLHandlerHints.VALUE_FILTER_COMPLIANCE_MEDIUM
and example of when
this can happen.public Object visit(NativeFilter nativeFilter, Object extraData)
visit
in interface FilterVisitor
Copyright © 1996–2023 Geotools. All rights reserved.