Class AbstractFilter<T>

java.lang.Object
org.codehaus.mojo.jaxb2.shared.filters.AbstractFilter<T>
All Implemented Interfaces:
Filter<T>
Direct Known Subclasses:
AbstractPatternFilter, FileFilterAdapter

public abstract class AbstractFilter<T> extends Object implements Filter<T>
Abstract Filter implementation which handles separating null candidate values from non-null ones, and delegates processing to concrete subclass implementations. Also, this AbstractFilter implementation provides a standard for emitting Filter debug statements (i.e. for toString() calls).
Since:
2.0
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    (package private) class 
     
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
     
    protected org.apache.maven.plugin.logging.Log
     
    private boolean
     
    protected static final String
    Initial-line indent for human-readable toString() rendering.
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    Convenience constructor which creates an AbstractFilter which does not process null values.
  • Method Summary

    Modifier and Type
    Method
    Description
    final boolean
    accept(T candidate)
    Method that is invoked to determine if a candidate instance should be accepted or not.
    protected final void
    addDelayedLogMessage(String logLevel, String message)
    Adds a log message to be emitted when this AbstractFilter is initialized (and the Log is made available to it).
    final void
    initialize(org.apache.maven.plugin.logging.Log log)
    Initializes this Filter, and assigns the supplied Log for use by this Filter.
    boolean
    protected abstract boolean
    onCandidate(T nonNullCandidate)
    Method that is invoked to determine if a candidate instance should be accepted or not.
    protected void
    Override this method to perform some custom action after standard initialization is complete.
    protected boolean
    Override this to perform an action other than debug logging whenever this AbstractFilter receives a null candidate.
    protected final void
    setProcessNullValues(boolean processNullValues)
    Assigns the processNullValues property which indicates if this AbstractFilter should process null values or not.
    protected final void
    Validator method which should be called in a DI setter method to ensure that this AbstractFilter has not yet been initialized.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • TOSTRING_INDENT

      protected static final String TOSTRING_INDENT
      Initial-line indent for human-readable toString() rendering.
      See Also:
    • log

      protected org.apache.maven.plugin.logging.Log log
    • delayedLogMessages

      private List<AbstractFilter<T>.DelayedLogMessage> delayedLogMessages
    • processNullValues

      private boolean processNullValues
  • Constructor Details

    • AbstractFilter

      protected AbstractFilter()
      Convenience constructor which creates an AbstractFilter which does not process null values.
  • Method Details

    • validateDiSetterCalledBeforeInitialization

      protected final void validateDiSetterCalledBeforeInitialization(String setterPropertyName)
      Validator method which should be called in a DI setter method to ensure that this AbstractFilter has not yet been initialized.
      Parameters:
      setterPropertyName - The name of the property to inject.
    • addDelayedLogMessage

      protected final void addDelayedLogMessage(String logLevel, String message)
      Adds a log message to be emitted when this AbstractFilter is initialized (and the Log is made available to it).
      Parameters:
      logLevel - The logLevel of the message to emit.
      message - The message to emit.
    • setProcessNullValues

      protected final void setProcessNullValues(boolean processNullValues)
      Assigns the processNullValues property which indicates if this AbstractFilter should process null values or not.
      Parameters:
      processNullValues - true to indicate that this AbstractFilter should process null values.
    • initialize

      public final void initialize(org.apache.maven.plugin.logging.Log log)
      Initializes this Filter, and assigns the supplied Log for use by this Filter.
      Specified by:
      initialize in interface Filter<T>
      Parameters:
      log - The non-null Log which should be used by this Filter to emit log messages.
    • isInitialized

      public boolean isInitialized()
      Specified by:
      isInitialized in interface Filter<T>
      Returns:
      true if this Filter has been properly initialized (by a call to the initialize method).
    • onInitialize

      protected void onInitialize()
      Override this method to perform some custom action after standard initialization is complete. Default implementation does nothing, but the log is non-null and ready for use.
    • accept

      public final boolean accept(T candidate) throws IllegalStateException

      Method that is invoked to determine if a candidate instance should be accepted or not. Implementing classes should be prepared to handle null candidate objects.

      Specified by:
      accept in interface Filter<T>
      Parameters:
      candidate - The candidate that should be tested for acceptance by this Filter.
      Returns:
      true if the candidate is accepted by this Filter and false otherwise.
      Throws:
      IllegalStateException - if this Filter is not initialized by a call to the initialize method before calling this matchAtLeastOnce method.
    • onNullCandidate

      protected boolean onNullCandidate()
      Override this to perform an action other than debug logging whenever this AbstractFilter receives a null candidate. You also need to override this implementation if you want to return a value other than false. There is no point in calling super.onNullCandidate() whenever this method is overridden.
      Returns:
      false - implying that AbstractFilters will not matchAtLeastOnce nulls by default.
    • onCandidate

      protected abstract boolean onCandidate(T nonNullCandidate)

      Method that is invoked to determine if a candidate instance should be accepted or not.

      Parameters:
      nonNullCandidate - The candidate that should be tested for acceptance by this Filter. Never null.
      Returns:
      true if the candidate is accepted by this Filter and false otherwise.
    • toString

      public String toString()
      Overrides:
      toString in class Object