public class FilterEncodingPreProcessor 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 |
|---|
FilterEncodingPreProcessor(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) |
void |
visit(BinaryComparisonOperator filter) |
void |
visit(BinaryLogicOperator filter) |
void |
visit(BinarySpatialOperator filter) |
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) |
void |
visit(ExcludeFilter filter) |
Object |
visit(ExcludeFilter filter,
Object extraData)
Visit
Filter.EXCLUDE (often used during data structure transformations). |
void |
visit(Filter filter) |
void |
visit(Id filter) |
Object |
visit(Id filter,
Object extraData) |
void |
visit(IncludeFilter filter) |
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) |
void |
visit(Not filter) |
Object |
visit(Not filter,
Object extraData) |
Object |
visit(Or filter,
Object extraData) |
Object |
visit(OverlappedBy overlappedBy,
Object extraData) |
Object |
visit(Overlaps filter,
Object extraData) |
void |
visit(PropertyIsBetween filter) |
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) |
void |
visit(PropertyIsLike filter) |
Object |
visit(PropertyIsLike filter,
Object extraData) |
Object |
visit(PropertyIsNil filter,
Object extraData) |
Object |
visit(PropertyIsNotEqualTo filter,
Object extraData) |
void |
visit(PropertyIsNull filter) |
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) |
protected void |
visitCompareFilter(Filter filter) |
protected void |
visitGeometryFilter(SpatialOperator filter) |
protected void |
visitLogicFilter(Filter filter) |
void |
visitLogicFilter(Not filter) |
Object |
visitNullFilter(Object extraData)
Used to account for a
null filter value. |
protected Object |
visitTemporalFilter(BinaryTemporalOperator filter) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitvisitpublic FilterEncodingPreProcessor(Integer complianceLevel)
public Id getFidFilter()
public Filter getFilter()
public void visit(Filter filter)
public void visit(PropertyIsBetween filter)
public void visit(BinaryComparisonOperator filter)
public void visit(Not filter)
public void visit(BinarySpatialOperator filter)
public void visit(PropertyIsLike filter)
public void visitLogicFilter(Not filter)
public void visit(BinaryLogicOperator filter)
public void visit(PropertyIsNull filter)
public void visit(Id filter)
public void visit(IncludeFilter filter)
public void visit(ExcludeFilter filter)
public boolean requiresPostProcessing()
XMLHandlerHints.VALUE_FILTER_COMPLIANCE_MEDIUM and example of when
this can happen.protected void visitLogicFilter(Filter filter)
protected void visitCompareFilter(Filter filter)
protected void visitGeometryFilter(SpatialOperator filter)
public Object visit(And filter, Object extraData)
visit in interface FilterVisitorpublic Object visit(Id filter, Object extraData)
visit in interface FilterVisitorpublic Object visitNullFilter(Object extraData)
FilterVisitornull 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 FilterVisitorextraData - Value object provided to visitorpublic Object visit(IncludeFilter filter, Object extraData)
FilterVisitorFilter.INCLUDE (often used during data structure transformations).visit in interface FilterVisitorfilter - Filter.INCLUDE.extraData - Value object provided to visitorpublic Object visit(ExcludeFilter filter, Object extraData)
FilterVisitorFilter.EXCLUDE (often used during data structure transformations).visit in interface FilterVisitorfilter - Filter.EXCLUDE.extraData - Value object provided to visitorpublic Object visit(Not filter, Object extraData)
visit in interface FilterVisitorpublic Object visit(Or filter, Object extraData)
visit in interface FilterVisitorpublic Object visit(PropertyIsBetween filter, Object extraData)
visit in interface FilterVisitorpublic Object visit(PropertyIsEqualTo filter, Object extraData)
visit in interface FilterVisitorpublic Object visit(PropertyIsNotEqualTo filter, Object extraData)
visit in interface FilterVisitorpublic Object visit(PropertyIsGreaterThan filter, Object extraData)
visit in interface FilterVisitorpublic Object visit(PropertyIsGreaterThanOrEqualTo filter, Object extraData)
visit in interface FilterVisitorpublic Object visit(PropertyIsLessThan filter, Object extraData)
visit in interface FilterVisitorpublic Object visit(PropertyIsLessThanOrEqualTo filter, Object extraData)
visit in interface FilterVisitorpublic Object visit(PropertyIsLike filter, Object extraData)
visit in interface FilterVisitorpublic Object visit(PropertyIsNull filter, Object extraData)
visit in interface FilterVisitorpublic Object visit(PropertyIsNil filter, Object extraData)
visit in interface FilterVisitorpublic Object visit(BBOX filter, Object extraData)
visit in interface FilterVisitorpublic Object visit(Beyond filter, Object extraData)
visit in interface FilterVisitorpublic Object visit(Contains filter, Object extraData)
visit in interface FilterVisitorpublic Object visit(Crosses filter, Object extraData)
visit in interface FilterVisitorpublic Object visit(Disjoint filter, Object extraData)
visit in interface FilterVisitorpublic Object visit(DWithin filter, Object extraData)
visit in interface FilterVisitorpublic Object visit(Equals filter, Object extraData)
visit in interface FilterVisitorpublic Object visit(Intersects filter, Object extraData)
visit in interface FilterVisitorpublic Object visit(Overlaps filter, Object extraData)
visit in interface FilterVisitorpublic Object visit(Touches filter, Object extraData)
visit in interface FilterVisitorpublic Object visit(Within filter, Object extraData)
visit in interface FilterVisitorpublic Object visit(After after, Object extraData)
visit in interface FilterVisitorpublic Object visit(AnyInteracts anyInteracts, Object extraData)
visit in interface FilterVisitorpublic Object visit(Before before, Object extraData)
visit in interface FilterVisitorpublic Object visit(Begins begins, Object extraData)
visit in interface FilterVisitorpublic Object visit(BegunBy begunBy, Object extraData)
visit in interface FilterVisitorpublic Object visit(During during, Object extraData)
visit in interface FilterVisitorpublic Object visit(EndedBy endedBy, Object extraData)
visit in interface FilterVisitorpublic Object visit(Ends ends, Object extraData)
visit in interface FilterVisitorpublic Object visit(Meets meets, Object extraData)
visit in interface FilterVisitorpublic Object visit(MetBy metBy, Object extraData)
visit in interface FilterVisitorpublic Object visit(OverlappedBy overlappedBy, Object extraData)
visit in interface FilterVisitorpublic Object visit(TContains contains, Object extraData)
visit in interface FilterVisitorpublic Object visit(TEquals equals, Object extraData)
visit in interface FilterVisitorpublic Object visit(TOverlaps contains, Object extraData)
visit in interface FilterVisitorprotected Object visitTemporalFilter(BinaryTemporalOperator filter)
Copyright © 1996–2021 Geotools. All rights reserved.