Class CartesianDistanceFilter

  • All Implemented Interfaces:
    Filter, MultiValuedFilter, BinarySpatialOperator, DistanceBufferOperator, SpatialOperator, FilterType
    Direct Known Subclasses:
    BeyondImpl, DWithinImpl

    public abstract class CartesianDistanceFilter
    extends GeometryFilterImpl
    implements DistanceBufferOperator
    Defines geometry filters with a distance element.

    These filters are defined in the filter spec by the DistanceBufferType, which contains an additioinal field for a distance. The two filters that use the distance buffer type are Beyond and DWithin.

    From the spec: The spatial operators DWithin and Beyond test whether the value of a geometric property is within or beyond a specified distance of the specified literal geometric value. Distance values are expressed using the Distance element.

    For now this code does not take into account the units of distance, we will assume that the filter units are the same as the geometry being filtered, and that they are cartesian.

    Author:
    Chris Holmes, TOPP
    TODO:
    REVISIT: add units for distance.
    • Method Detail

      • setDistance

        public void setDistance​(double distance)
        Sets the distance allowed by this filter.
        Parameters:
        distance - the length beyond which this filter is valid or not.
      • getDistance

        public double getDistance()
        Gets the distance allowed by this filter.
        Specified by:
        getDistance in interface DistanceBufferOperator
        Returns:
        distance the length beyond which this filter is valid or not.
      • getDistanceUnits

        public String getDistanceUnits()
        Description copied from interface: DistanceBufferOperator
        Gets the units of measure that can be used to interpret the distance value held by this object. An implementation may throw an exception if these units differ from the units of the coordinate system of its geometry or the feature's geometry.
        Specified by:
        getDistanceUnits in interface DistanceBufferOperator
      • setUnits

        public void setUnits​(String units)
      • toString

        public String toString()
        Returns a string representation of this filter.
        Overrides:
        toString in class GeometryFilterImpl
        Returns:
        String representation of the between filter.
      • equals

        public boolean equals​(Object oFilter)
        Returns true if the passed in object is the same as this filter. Checks to make sure the filter types are the same as well as all three of the values.
        Overrides:
        equals in class GeometryFilterImpl
        Parameters:
        oFilter - The filter to test equality against.
        Returns:
        True if the objects are equal.
      • hashCode

        public int hashCode()
        Override of hashCode method.
        Overrides:
        hashCode in class GeometryFilterImpl
        Returns:
        a code to hash this object by.