Interface IMessageHandler

All Known Subinterfaces:
IMessageHolder
All Known Implementing Classes:
CountingMessageHandler, DefaultMessageHandler, MessageHandler, MessageWriter, PinpointingMessageHandler, WeavingAdaptor.WeavingAdaptorMessageHolder, WeavingAdaptor.WeavingAdaptorMessageWriter

public interface IMessageHandler
Handle messages, logging and/or aborting as appropriate. Implementations define which messages are logged and whether the handler aborts the process. For messages that are costly to construct, clients may query isIgnoring(IMessage.Kind) to avoid construction if the message will be ignored. Clients passing messages to an IMessageHandler should not interfere with aborts by catching AbortException unless otherwise required by their logic or the message handler.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    print all to System.err and throw AbortException on failure or abort messages
    print all to System.out but do not throw AbortException on failure or abort messages
    Throw exceptions for anything with ERROR or greater severity
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Allow fine grained configuration after initialization.
    boolean
    handleMessage​(IMessage message)
    Handle message, by reporting and/or throwing an AbortException.
    void
    Allow fine grained configuration after initialization.
    boolean
    Signal clients whether this will ignore messages of a given type.
  • Field Details

    • SYSTEM_ERR

      static final IMessageHandler SYSTEM_ERR
      print all to System.err and throw AbortException on failure or abort messages
    • SYSTEM_OUT

      static final IMessageHandler SYSTEM_OUT
      print all to System.out but do not throw AbortException on failure or abort messages
    • THROW

      static final IMessageHandler THROW
      Throw exceptions for anything with ERROR or greater severity
  • Method Details

    • handleMessage

      boolean handleMessage(IMessage message) throws AbortException
      Handle message, by reporting and/or throwing an AbortException.
      Parameters:
      message - the IMessage to handle - never null
      Returns:
      true if this message was handled by this handler
      Throws:
      IllegalArgumentException - if message is null
      AbortException - depending on handler logic.
    • isIgnoring

      boolean isIgnoring(IMessage.Kind kind)
      Signal clients whether this will ignore messages of a given type. Clients may use this to avoid constructing or sending certain messages.
      Returns:
      true if this handler is ignoring all messages of this type
    • dontIgnore

      void dontIgnore(IMessage.Kind kind)
      Allow fine grained configuration after initialization. Minaly used in LTW. Most of the implementation can have this method be a no-op.
      Parameters:
      kind -
    • ignore

      void ignore(IMessage.Kind kind)
      Allow fine grained configuration after initialization.
      Parameters:
      kind -