Interface ContentFilter

All Superinterfaces:
ExtensionPoint
All Known Implementing Classes:
ContentMapping, InetAddressContentFilter, NoneFilter, SensitiveContentFilter

public interface ContentFilter extends ExtensionPoint
Provides a strategy to filter support bundle written contents. This is primarily useful to anonymize data written to the bundle, though more complex filtering can be achieved. A ContentFilter may produce ContentMappings during reload() and filter(String) that are automatically persisted. It is therefore important to use BulkChange when reloading the filter as well as when launching a task that performs the filtering:
 
   ContentFilter filter = ContentFilter.ALL;
   try {
     ContentFilter.reloadAndSaveMappings(filter);
   } catch (IOException e) {
      ...
   }
   [...]
   try (BulkChange change = new BulkChange(ContentFilter.bulkChangeTarget())) {
     doSomething(filter);
     change.commit();
   }
 
Since:
TODO
  • Field Details

    • ALL

      static final ContentFilter ALL
      Provides a ContentFilter that combines all registered ContentFilter extensions.
    • NONE

      static final ContentFilter NONE
      Provides a noop ContentFilter that pass through the value.
  • Method Details

    • all

      Returns:
      all ContentFilter extensions
    • filter

      @NonNull String filter(@NonNull String input)
      Filters a line or snippet of text.
      Parameters:
      input - input data to filter
      Returns:
      the filtered input data
    • ensureLoaded

      @Deprecated default void ensureLoaded()
      Deprecated.
      use reload() instead
      Ensure that the filter has been loaded at least once.
    • reload

      default void reload()
      Reloads the state of this filter. This may be implemented to rescan for more items to filter.
    • filter

      static String filter(@NonNull ContentFilter filter, @CheckForNull String text)
      An utility method to filter a text only when both, the filter and the text are not null and the text is not empty too.
      Parameters:
      filter - the filter to use when filtering
      text - the text to filter
      Returns:
      the text filtered if it is not empty and the filter is not null
    • bulkChangeTarget

      static Saveable bulkChangeTarget()
      Return the target for BulkChange.
      Returns:
      a Saveable
    • reloadAndSaveMappings

      static void reloadAndSaveMappings(@NonNull ContentFilter filter) throws IOException
      Reloads the state of this filter and commit .
      Throws:
      IOException - if reload or saving failed