Package org.aspectj.bridge
Class MessageHandler
java.lang.Object
org.aspectj.bridge.MessageHandler
- All Implemented Interfaces:
IMessageHandler
,IMessageHolder
- Direct Known Subclasses:
WeavingAdaptor.WeavingAdaptorMessageHolder
This handler accumulates messages. To control messages accumulated, clients can ignore messages of a given kind, or install a
listener/interceptor. The interceptor handles all messages (even null) first, and can halt further processing/accumlation by
returning true. Clients can obtain messages accumulated using the get... methods. XXX this does not permit messages to be
removed.
- Author:
- PARC, Andy Clement
-
Field Summary
Modifier and TypeFieldDescriptionprotected boolean
result of handleMessage(..) for messages not accumulated (ignored)protected List<IMessage.Kind>
kinds of messages to be ignoredprotected IMessageHandler
listener which can halt processing by returning truemessages accumulatedFields inherited from interface org.aspectj.bridge.IMessageHandler
SYSTEM_ERR, SYSTEM_OUT, THROW
Fields inherited from interface org.aspectj.bridge.IMessageHolder
EQUAL, ORGREATER
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Clear the messages without changing other behavior.void
dontIgnore(IMessage.Kind kind)
Remove a message kind from the list of those ignored from now on.IMessage[]
IMessage[]
getMessages(IMessage.Kind kind, boolean orGreater)
Get all messages or those of a specific kind.IMessage[]
boolean
handleMessage(IMessage message)
This implementation accumulates message.boolean
hasAnyMessage(IMessage.Kind kind, boolean orGreater)
Tell whether this holder has any message of this kind (optionally or greater).void
ignore(IMessage.Kind kind)
Set a message kind to be ignored from now onvoid
init()
Initialize this, removing any messages accumulated, kinds being ignored, or interceptor.void
init(boolean accumulateOnly)
Initialize this, removing any messages accumulated, kinds being ignored, or interceptor.boolean
isIgnoring(IMessage.Kind kind)
Signal clients whether this will ignore messages of a given type.int
numMessages(IMessage.Kind kind, boolean orGreater)
Count the messages currently held by this holder.void
setInterceptor(IMessageHandler interceptor)
Set the interceptor which gets any message before we process it.toString()
-
Field Details
-
messages
messages accumulated -
ignoring
kinds of messages to be ignored -
handleMessageResult
protected boolean handleMessageResultresult of handleMessage(..) for messages not accumulated (ignored) -
interceptor
listener which can halt processing by returning true
-
-
Constructor Details
-
MessageHandler
public MessageHandler()same as MessageHandler(false) -
MessageHandler
public MessageHandler(boolean accumulateOnly)- Parameters:
accumulateOnly
- the result of handleMessage (i.e., if true, then only accumulate messages - stop processing
-
-
Method Details
-
init
public void init()Initialize this, removing any messages accumulated, kinds being ignored, or interceptor. Assume that this should return false from handleMessage(..). -
init
public void init(boolean accumulateOnly)Initialize this, removing any messages accumulated, kinds being ignored, or interceptor.- Parameters:
accumulateOnly
- boolean value returned from handleMessage after accumulating in list
-
clearMessages
public void clearMessages()Clear the messages without changing other behavior.- Specified by:
clearMessages
in interfaceIMessageHolder
-
handleMessage
This implementation accumulates message. If an interceptor is installed and returns true (message handled), then processing halts and the message is not accumulated.- Specified by:
handleMessage
in interfaceIMessageHandler
- Parameters:
message
- the IMessage to handle - never null- Returns:
- true on interception or the constructor value otherwise
- See Also:
IMessageHandler.handleMessage(IMessage)
-
isIgnoring
Description copied from interface:IMessageHandler
Signal clients whether this will ignore messages of a given type. Clients may use this to avoid constructing or sending certain messages.- Specified by:
isIgnoring
in interfaceIMessageHandler
- Returns:
- true if this kind has been flagged to be ignored.
- See Also:
ignore(IMessage.Kind)
,IMessageHandler.isIgnoring(Kind)
-
ignore
Set a message kind to be ignored from now on- Specified by:
ignore
in interfaceIMessageHandler
-
dontIgnore
Remove a message kind from the list of those ignored from now on.- Specified by:
dontIgnore
in interfaceIMessageHandler
-
hasAnyMessage
Description copied from interface:IMessageHolder
Tell whether this holder has any message of this kind (optionally or greater).- Specified by:
hasAnyMessage
in interfaceIMessageHolder
- Parameters:
kind
- the IMessage.Kind to check for - accept any if nullorGreater
- if true, also any greater than the target kind as determined by IMessage.Kind.COMPARATOR- Returns:
- true if this holder has any message of this kind, or if orGreater and any message has a greater kind, as determined by IMessage.Kind.COMPARATOR
- See Also:
IMessageHolder.hasAnyMessage(Kind, boolean)
-
numMessages
Description copied from interface:IMessageHolder
Count the messages currently held by this holder. Pass null to get all kinds.- Specified by:
numMessages
in interfaceIMessageHolder
- Parameters:
kind
- the IMessage.Kind expected, or null for all messagesorGreater
- if true, also any greater than the target kind as determined by IMessage.Kind.COMPARATOR- Returns:
- number of messages accumulated of a given kind
-
getUnmodifiableListView
- Specified by:
getUnmodifiableListView
in interfaceIMessageHolder
- Returns:
- unmodifiable List view of underlying collection of IMessage
- See Also:
IMessageHolder.getUnmodifiableListView()
-
getMessages
Get all messages or those of a specific kind. Pass null to get all kinds.- Specified by:
getMessages
in interfaceIMessageHolder
- Parameters:
kind
- the IMessage.Kind expected, or null for all messagesorGreater
- if true, also get any greater than the target kind as determined by IMessage.Kind.COMPARATOR- Returns:
- IMessage[] of messages of the right kind
-
getErrors
- Returns:
- array of error messages, or IMessage.NONE
-
getWarnings
- Returns:
- array of warning messages, or IMessage.NONE
-
setInterceptor
Set the interceptor which gets any message before we process it.- Parameters:
interceptor
- the IMessageHandler passed the message. Pass null to remove the old interceptor.
-
toString
-