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 Detail

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

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

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