Class SimpleFilterProvider

java.lang.Object
com.fasterxml.jackson.databind.ser.FilterProvider
com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider
All Implemented Interfaces:
Serializable

public class SimpleFilterProvider extends FilterProvider implements 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:
  • Field Details

    • _filtersById

      protected final Map<String,PropertyFilter> _filtersById
      Mappings from ids to filters.
    • _defaultFilter

      protected PropertyFilter _defaultFilter
      This is the filter we return in case no mapping was found for given id; default is null (in which case caller typically reports an error), but can be set to an explicit filter.
    • _cfgFailOnUnknownId

      protected boolean _cfgFailOnUnknownId
      Flag that indicates whether request for an unknown filter id should result an exception (default) or not. Note that this is only relevant if no default filter has been configured.
  • Constructor Details

    • SimpleFilterProvider

      public SimpleFilterProvider()
    • SimpleFilterProvider

      public SimpleFilterProvider(Map<String,?> mapping)
      Parameters:
      mapping - Mapping from id to filter; used as is if if possible
  • Method Details

    • setDefaultFilter

      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
    • setDefaultFilter

      public SimpleFilterProvider setDefaultFilter(SimpleBeanPropertyFilter f)
      Overloaded variant just to resolve "ties" when using SimpleBeanPropertyFilter.
    • getDefaultFilter

      public PropertyFilter getDefaultFilter()
    • setFailOnUnknownId

      public SimpleFilterProvider setFailOnUnknownId(boolean state)
    • willFailOnUnknownId

      public boolean willFailOnUnknownId()
    • addFilter

      Deprecated.
      since 2.3
    • addFilter

      public SimpleFilterProvider addFilter(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(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(String id)
    • findFilter

      @Deprecated public BeanPropertyFilter findFilter(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(Object filterId, 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.