Class SimpleFilterProvider

  • All Implemented Interfaces:
    java.io.Serializable

    public class SimpleFilterProvider
    extends FilterProvider
    implements java.io.Serializable
    Simple FilterProvider implementation that just stores direct id-to-filter mapping. It also allows specifying a "default" filter to return if no registered instance matches given filter id.

    Note that version 2.3 was a partial rewrite, now that PropertyFilter is set to replace BeanPropertyFilter.

    See Also:
    Serialized Form
    • Constructor Detail

      • SimpleFilterProvider

        public SimpleFilterProvider()
      • SimpleFilterProvider

        public SimpleFilterProvider​(java.util.Map<java.lang.String,​?> mapping)
        Parameters:
        mapping - Mapping from id to filter; used as is if if possible
    • Method Detail

      • setDefaultFilter

        @Deprecated
        public SimpleFilterProvider setDefaultFilter​(BeanPropertyFilter f)
        Deprecated.
        Since 2.3 should use PropertyFilter instead of BeanPropertyFilter
        Method for defining filter to return for "unknown" filters; cases where there is no mapping from given id to an explicit filter.
        Parameters:
        f - Filter to return when no filter is found for given id
      • setDefaultFilter

        public SimpleFilterProvider setDefaultFilter​(PropertyFilter f)
        Method for defining "default filter" to use, if any (null if none), to return in case no registered instance matches passed filter id.
        Parameters:
        f - Default filter to set
        Returns:
        This provider instance, for call-chaining
      • willFailOnUnknownId

        public boolean willFailOnUnknownId()
      • addFilter

        public SimpleFilterProvider addFilter​(java.lang.String id,
                                              PropertyFilter filter)
        Adds an instance of PropertyFilter associated with the given id parameter. Note that there can always only be one filter associated with a single id parameter, meaning a new filter with the same id will always override the previously added filter.

        WARNING: Binding id or filter with null value will not be validated within this method, but during serialization of target class annotated with JsonFilter.

        Parameters:
        id - The id to associate the filter with.
        filter - The filter to add;
        Returns:
        This provider instance, for call-chaining
      • addFilter

        public SimpleFilterProvider addFilter​(java.lang.String id,
                                              SimpleBeanPropertyFilter filter)
        Overloaded variant just to resolve "ties" when using SimpleBeanPropertyFilter.

        Adds an instance of SimpleBeanPropertyFilter associated with the given id parameter. Note that there can always only be one filter associated with a single id parameter, meaning a new filter with the same id will always override the previously added filter.

        WARNING: Binding id or filter with null value will not be validated within this method, but during serialization of target class annotated with JsonFilter.

        Parameters:
        id - The id to associate the filter with.
        filter - The filter to add;
        Returns:
        This provider instance, for call-chaining
      • removeFilter

        public PropertyFilter removeFilter​(java.lang.String id)
      • findFilter

        @Deprecated
        public BeanPropertyFilter findFilter​(java.lang.Object filterId)
        Deprecated.
        Description copied from class: FilterProvider
        Lookup method used to find BeanPropertyFilter that has specified id. Note that id is typically a String, but is not necessarily limited to that; that is, while standard components use String, custom implementation can choose other kinds of keys.
        Specified by:
        findFilter in class FilterProvider
        Returns:
        Filter registered with specified id, if one defined; null if none found.
      • findPropertyFilter

        public PropertyFilter findPropertyFilter​(java.lang.Object filterId,
                                                 java.lang.Object valueToFilter)
        Description copied from class: FilterProvider
        Lookup method used to find PropertyFilter that has specified id. Note that id is typically a String, but is not necessarily limited to that; that is, while standard components use String, custom implementation can choose other kinds of keys.

        This method is the replacement for FilterProvider.findFilter(java.lang.Object) starting with 2.3.

        Note that the default implementation is designed to support short-term backwards compatibility, and will call the deprecated findFilter method, then wrap filter if one found as PropertyFilter. It should be overridden by up-to-date implementations

        Overrides:
        findPropertyFilter in class FilterProvider
        Parameters:
        filterId - Id of the filter to fetch
        valueToFilter - Object being filtered (usually POJO, but may be a Map, or in future a container), if available; not available when generating schemas.
        Returns:
        Filter to use, if any.