def create_filter(self, propname=None, comparitor=None, value=None):
        """
        Create a L{Filter} for this rule. The property name, comparitor, and value
        are required to create a valid Filter.

        @type    propname: string
        @param   propname: The name of the property to filter.
        @type  comparitor: string
        @param comparitor: The comparison to perform on the property. One of
            "!=", "<", "<=", "=", ">=", ">", and "%" is required.
        @type       value: string
        @param      value: The value of the property to compare against.
        @rtype: L{Filter}
        @return: A new filter attached to this Rule.
        """
        if propname is None or comparitor is None or value is None:
            return None

        rfilter = self.create_element('ogc', 'Filter')
        ftype = None
        if comparitor == '==':
            ftype = 'PropertyIsEqualTo'
        elif comparitor == '<=':
            ftype = 'PropertyIsLessThanOrEqualTo'
        elif comparitor == '<':
            ftype = 'PropertyIsLessThan'
        elif comparitor == '>=':
            ftype = 'PropertyIsGreaterThanOrEqualTo'
        elif comparitor == '>':
            ftype = 'PropertyIsGreaterThan'
        elif comparitor == '!=':
            ftype = 'PropertyIsNotEqualTo'
        elif comparitor == '%':
            ftype = 'PropertyIsLike'

        if not ftype is None:
            prop = PropertyCriterion(rfilter, ftype)
            prop.PropertyName = propname
            if not value is None:
                prop.Literal = value
            setattr(rfilter, ftype, prop)

        return rfilter