Logo Search packages:      
Sourcecode: aspectj version File versions  Download package


/* *******************************************************************
 * Copyright (c) 1999-2001 Xerox Corporation, 
 *               2002 Palo Alto Research Center, Incorporated (PARC).
 * All rights reserved. 
 * This program and the accompanying materials are made available 
 * under the terms of the Eclipse Public License v1.0 
 * which accompanies this distribution and is available at 
 * http://www.eclipse.org/legal/epl-v10.html 
 * Contributors: 
 *     Xerox/PARC     initial implementation 
 * ******************************************************************/

package org.aspectj.bridge;

import java.io.PrintWriter;

 * 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 
 * {@link #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.
00030 public interface IMessageHandler {
      /** print all to System.err and throw AbortException on failure or abort messages */
00032       public static final IMessageHandler SYSTEM_ERR =
            new MessageWriter(new PrintWriter(System.err, true), true);

      /** print all to System.out but do not throw AbortException on failure or abort messages */
00036       public static final IMessageHandler SYSTEM_OUT =
            new MessageWriter(new PrintWriter(System.out, true), false);

      /** Throw exceptions for anything with ERROR or greater severity */
00040       public static final IMessageHandler THROW =
            new IMessageHandler() {
                  public boolean handleMessage(IMessage message) {
                        if (message.getKind().compareTo(IMessage.ERROR) >= 0) {
                              throw new AbortException(message);
                        } else {
                              return SYSTEM_OUT.handleMessage(message);
                  public boolean isIgnoring(IMessage.Kind kind) {
                        return false;
            public void dontIgnore(IMessage.Kind kind) {
                  public void ignore(IMessage.Kind kind) {

       * Handle message, by reporting and/or throwing an AbortException.
       * @param message the IMessage to handle - never null
       * @return true if this message was handled by this handler
       * @throws IllegalArgumentException if message is null
       * @throws AbortException depending on handler logic.
      boolean handleMessage(IMessage message) throws AbortException;

       * Signal clients whether this will ignore messages of a given type.
       * Clients may use this to avoid constructing or sending certain messages.
       * @return true if this handler is ignoring all messages of this type
      boolean isIgnoring(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.
     * @param kind
    void dontIgnore(IMessage.Kind kind);
     * Allow fine grained configuration after initialization. 
     * @param kind
    void ignore(IMessage.Kind kind);

Generated by  Doxygen 1.6.0   Back to index