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
FieldsModifier and TypeFieldDescriptionprotected booleanresult of handleMessage(..) for messages not accumulated (ignored)protected List<IMessage.Kind>kinds of messages to be ignoredprotected IMessageHandlerlistener which can halt processing by returning truemessages accumulatedFields inherited from interface org.aspectj.bridge.IMessageHandler
SYSTEM_ERR, SYSTEM_OUT, THROWFields inherited from interface org.aspectj.bridge.IMessageHolder
EQUAL, ORGREATER -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidClear the messages without changing other behavior.voiddontIgnore(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[]booleanhandleMessage(IMessage message)This implementation accumulates message.booleanhasAnyMessage(IMessage.Kind kind, boolean orGreater)Tell whether this holder has any message of this kind (optionally or greater).voidignore(IMessage.Kind kind)Set a message kind to be ignored from now onvoidinit()Initialize this, removing any messages accumulated, kinds being ignored, or interceptor.voidinit(boolean accumulateOnly)Initialize this, removing any messages accumulated, kinds being ignored, or interceptor.booleanisIgnoring(IMessage.Kind kind)Signal clients whether this will ignore messages of a given type.intnumMessages(IMessage.Kind kind, boolean orGreater)Count the messages currently held by this holder.voidsetInterceptor(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:
clearMessagesin 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:
handleMessagein 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:IMessageHandlerSignal clients whether this will ignore messages of a given type. Clients may use this to avoid constructing or sending certain messages.- Specified by:
isIgnoringin 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:
ignorein interfaceIMessageHandler
-
dontIgnore
Remove a message kind from the list of those ignored from now on.- Specified by:
dontIgnorein interfaceIMessageHandler
-
hasAnyMessage
Description copied from interface:IMessageHolderTell whether this holder has any message of this kind (optionally or greater).- Specified by:
hasAnyMessagein 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:IMessageHolderCount the messages currently held by this holder. Pass null to get all kinds.- Specified by:
numMessagesin 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:
getUnmodifiableListViewin 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:
getMessagesin 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
-