Class FilterEncodingPreProcessor

  • All Implemented Interfaces:
    FilterVisitor

    public class FilterEncodingPreProcessor
    extends Object
    implements FilterVisitor
    Prepares a filter for XML encoded for interoperability with another system. It will behave differently depending on the compliance level chosen. A new request will have to be made and the features will have to be tested again on the client side if there are any FidFilters in the filter. Consider the following to understand why:
     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

    Author:
    Jesse Eichar