diff options
author | Lars Grefer <eclipse@larsgrefer.de> | 2020-08-17 01:19:52 +0200 |
---|---|---|
committer | Lars Grefer <eclipse@larsgrefer.de> | 2020-08-17 01:19:52 +0200 |
commit | 85ad27ee704fa8c17345bbe46c959a3e6ccbd179 (patch) | |
tree | 64db483a4fd9027cb3ba862e371427538631b5dc /bridge | |
parent | c5be7f17349f1e7ea5d3da4be09b5f3e964de19b (diff) | |
download | aspectj-85ad27ee704fa8c17345bbe46c959a3e6ccbd179.tar.gz aspectj-85ad27ee704fa8c17345bbe46c959a3e6ccbd179.zip |
Remove unnecessary interface modifiers
Signed-off-by: Lars Grefer <eclipse@larsgrefer.de>
Diffstat (limited to 'bridge')
7 files changed, 130 insertions, 130 deletions
diff --git a/bridge/src/main/java/org/aspectj/bridge/IMessage.java b/bridge/src/main/java/org/aspectj/bridge/IMessage.java index a32a631e6..694da8af0 100644 --- a/bridge/src/main/java/org/aspectj/bridge/IMessage.java +++ b/bridge/src/main/java/org/aspectj/bridge/IMessage.java @@ -1,14 +1,14 @@ /* ******************************************************************* - * Copyright (c) 1999-2001 Xerox Corporation, + * 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 + * 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; @@ -23,18 +23,18 @@ import java.util.List; */ public interface IMessage { /** no messages */ - public static final IMessage[] RA_IMessage = new IMessage[0]; + IMessage[] RA_IMessage = new IMessage[0]; // int values must sync with KINDS order below - public static final Kind WEAVEINFO = new Kind("weaveinfo", 5); - public static final Kind INFO = new Kind("info", 10); - public static final Kind DEBUG = new Kind("debug", 20); - public static final Kind TASKTAG = new Kind("task", 25); // represents a 'TODO' from eclipse - producted by the compiler and + Kind WEAVEINFO = new Kind("weaveinfo", 5); + Kind INFO = new Kind("info", 10); + Kind DEBUG = new Kind("debug", 20); + Kind TASKTAG = new Kind("task", 25); // represents a 'TODO' from eclipse - producted by the compiler and // consumed by AJDT - public static final Kind WARNING = new Kind("warning", 30); - public static final Kind ERROR = new Kind("error", 40); - public static final Kind FAIL = new Kind("fail", 50); - public static final Kind ABORT = new Kind("abort", 60); + Kind WARNING = new Kind("warning", 30); + Kind ERROR = new Kind("error", 40); + Kind FAIL = new Kind("fail", 50); + Kind ABORT = new Kind("abort", 60); // XXX prefer another Kind to act as selector for "any", // but can't prohibit creating messages with it. // public static final Kind ANY = new Kind("any-selector", 0); @@ -42,7 +42,7 @@ public interface IMessage { /** * list of Kind in precedence order. 0 is less than IMessage.Kind.COMPARATOR.compareTo(KINDS.get(i), KINDS.get(i + 1)) */ - public static final List<Kind> KINDS = Collections.unmodifiableList(Arrays.asList(new Kind[] { WEAVEINFO, INFO, DEBUG, TASKTAG, + List<Kind> KINDS = Collections.unmodifiableList(Arrays.asList(new Kind[] { WEAVEINFO, INFO, DEBUG, TASKTAG, WARNING, ERROR, FAIL, ABORT })); /** @return non-null String with simple message */ @@ -90,7 +90,7 @@ public interface IMessage { /** @return source location associated with this message, or null if none */ ISourceLocation getSourceLocation(); - public static final class Kind implements Comparable<IMessage.Kind> { + final class Kind implements Comparable<IMessage.Kind> { public static final Comparator<IMessage.Kind> COMPARATOR = new Comparator<IMessage.Kind>() { public int compare(IMessage.Kind one, IMessage.Kind two) { if (null == one) { @@ -134,17 +134,17 @@ public interface IMessage { * @return Detailed information about the message. For example, for declare error/warning messages this returns information * about the corresponding join point's static part. */ - public String getDetails(); + String getDetails(); /** * @return List of <code>ISourceLocation</code> instances that indicate additional source locations relevent to this message as * specified by the message creator. The list should not include the primary source location associated with the message - * which can be obtained from <code>getSourceLocation()<code>. - * <p> - * An example of using extra locations would be in a warning message that - * flags all shadow locations that will go unmatched due to a pointcut definition + * which can be obtained from <code>getSourceLocation()<code>. + * <p> + * An example of using extra locations would be in a warning message that + * flags all shadow locations that will go unmatched due to a pointcut definition * being based on a subtype of a defining type. * @see <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=41952">AspectJ bug 41952</a> */ - public List<ISourceLocation> getExtraSourceLocations(); + List<ISourceLocation> getExtraSourceLocations(); } diff --git a/bridge/src/main/java/org/aspectj/bridge/IMessageContext.java b/bridge/src/main/java/org/aspectj/bridge/IMessageContext.java index 2f5512a1d..e3e0d0962 100644 --- a/bridge/src/main/java/org/aspectj/bridge/IMessageContext.java +++ b/bridge/src/main/java/org/aspectj/bridge/IMessageContext.java @@ -1,10 +1,10 @@ /******************************************************************************* * Copyright (c) 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials + * 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: * Matthew Webster - initial implementation *******************************************************************************/ @@ -12,5 +12,5 @@ package org.aspectj.bridge; public interface IMessageContext { - public String getContextId (); + String getContextId(); } diff --git a/bridge/src/main/java/org/aspectj/bridge/IMessageHandler.java b/bridge/src/main/java/org/aspectj/bridge/IMessageHandler.java index 6dcdfeafb..9baf23465 100644 --- a/bridge/src/main/java/org/aspectj/bridge/IMessageHandler.java +++ b/bridge/src/main/java/org/aspectj/bridge/IMessageHandler.java @@ -1,14 +1,14 @@ /* ******************************************************************* - * Copyright (c) 1999-2001 Xerox Corporation, + * 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 + * 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 * ******************************************************************/ @@ -19,8 +19,8 @@ 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 + * 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 @@ -29,15 +29,15 @@ import java.io.PrintWriter; */ public interface IMessageHandler { /** print all to System.err and throw AbortException on failure or abort messages */ - public static final IMessageHandler SYSTEM_ERR = + 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 */ - public static final IMessageHandler SYSTEM_OUT = + IMessageHandler SYSTEM_OUT = new MessageWriter(new PrintWriter(System.out, true), false); /** Throw exceptions for anything with ERROR or greater severity */ - public static final IMessageHandler THROW = + IMessageHandler THROW = new IMessageHandler() { public boolean handleMessage(IMessage message) { if (message.getKind().compareTo(IMessage.ERROR) >= 0) { @@ -50,13 +50,13 @@ public interface IMessageHandler { 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 @@ -75,14 +75,14 @@ public interface IMessageHandler { /** * 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. - * + * Allow fine grained configuration after initialization. + * * @param kind */ void ignore(IMessage.Kind kind); diff --git a/bridge/src/main/java/org/aspectj/bridge/IMessageHolder.java b/bridge/src/main/java/org/aspectj/bridge/IMessageHolder.java index fdf2a6779..c438b8350 100644 --- a/bridge/src/main/java/org/aspectj/bridge/IMessageHolder.java +++ b/bridge/src/main/java/org/aspectj/bridge/IMessageHolder.java @@ -1,14 +1,14 @@ /* ******************************************************************* - * Copyright (c) 1999-2001 Xerox Corporation, + * 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 + * 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; @@ -21,14 +21,14 @@ import java.util.List; public interface IMessageHolder extends IMessageHandler { // XXX do not extend - mix instead // XXX go to LT EQ GT GE LE rather than simple orGreater /** value for orGreater parameter */ - public static final boolean ORGREATER = true; + boolean ORGREATER = true; /** value for orGreater parameter */ - public static final boolean EQUAL = false; + boolean EQUAL = false; /** * Tell whether this holder has any message of this kind (optionally or greater). - * + * * @param kind the IMessage.Kind to check for - accept any if null * @param orGreater if true, also any greater than the target kind as determined by IMessage.Kind.COMPARATOR * @return true if this holder has any message of this kind, or if orGreater and any message has a greater kind, as determined @@ -38,7 +38,7 @@ public interface IMessageHolder extends IMessageHandler { // XXX do not extend - /** * Count the messages currently held by this holder. Pass null to get all kinds. - * + * * @param kind the IMessage.Kind expected, or null for all messages * @param orGreater if true, also any greater than the target kind as determined by IMessage.Kind.COMPARATOR * @return number of IMessage held (now) by this holder @@ -47,7 +47,7 @@ public interface IMessageHolder extends IMessageHandler { // XXX do not extend - /** * Get all messages or those of a specific kind. Pass null to get all kinds. - * + * * @param kind the IMessage.Kind expected, or null for all messages * @param orGreater if true, also get any greater than the target kind as determined by IMessage.Kind.COMPARATOR * @return IMessage[] of messages of the right kind, or IMessage.NONE @@ -59,7 +59,7 @@ public interface IMessageHolder extends IMessageHandler { // XXX do not extend - /** * Clear any messages. - * + * * @throws UnsupportedOperationException if message list is read-only */ void clearMessages() throws UnsupportedOperationException; diff --git a/bridge/src/main/java/org/aspectj/bridge/IProgressListener.java b/bridge/src/main/java/org/aspectj/bridge/IProgressListener.java index 4326f7263..21eb6eeb4 100644 --- a/bridge/src/main/java/org/aspectj/bridge/IProgressListener.java +++ b/bridge/src/main/java/org/aspectj/bridge/IProgressListener.java @@ -1,13 +1,13 @@ /* ******************************************************************* * Copyright (c) 2003 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 + * 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 * ******************************************************************/ @@ -20,21 +20,21 @@ public interface IProgressListener { /** * @param text the current phase of processing */ - public void setText(String text); - + void setText(String text); + /** * @param percentDone how much work is completed so far */ - public void setProgress(double percentDone); - + void setProgress(double percentDone); + /** * @param cancelRequested true if the caller wants the current compilation to stop asap */ - public void setCancelledRequested(boolean cancelRequested); - + void setCancelledRequested(boolean cancelRequested); + /** * @return true if the consumer of the progress info would like the compileation to stop */ - public boolean isCancelledRequested(); - + boolean isCancelledRequested(); + } diff --git a/bridge/src/main/java/org/aspectj/bridge/ISourceLocation.java b/bridge/src/main/java/org/aspectj/bridge/ISourceLocation.java index 7ad9423c2..80ed94e33 100644 --- a/bridge/src/main/java/org/aspectj/bridge/ISourceLocation.java +++ b/bridge/src/main/java/org/aspectj/bridge/ISourceLocation.java @@ -1,14 +1,14 @@ /* ******************************************************************* - * Copyright (c) 1999-2001 Xerox Corporation, + * 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 + * 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; @@ -18,24 +18,24 @@ import java.io.File; /** * Represent source location as a starting line/column and ending line in a source file. Implementations should be immutable. XXX * why? - * + * * @see org.aspectj.lang.reflect.SourceLocation * @see org.aspectj.compiler.base.parser.SourceInfo * @see org.aspectj.tools.ide.SourceLine * @see org.aspectj.testing.harness.ErrorLine */ public interface ISourceLocation extends java.io.Serializable { - static final int MAX_LINE = Integer.MAX_VALUE / 2; - static final int MAX_COLUMN = MAX_LINE; + int MAX_LINE = Integer.MAX_VALUE / 2; + int MAX_COLUMN = MAX_LINE; /** non-null but empty (nonexisting) File constant */ - static final File NO_FILE = new File("ISourceLocation.NO_FILE"); + File NO_FILE = new File("ISourceLocation.NO_FILE"); /** signal that column is not known */ - static final int NO_COLUMN = Integer.MIN_VALUE + 1; + int NO_COLUMN = Integer.MIN_VALUE + 1; /** non-null but empty constant source location */ - static final ISourceLocation EMPTY = new SourceLocation(NO_FILE, 0, 0, 0); + ISourceLocation EMPTY = new SourceLocation(NO_FILE, 0, 0, 0); /** * @return File source or NO_FILE if the implementation requires a non-null result or null otherwise @@ -64,7 +64,7 @@ public interface ISourceLocation extends java.io.Serializable { /** * In the cases where getSourceFile().getName() returns a class file (for example when we have a binary aspect) this should * return the name of the source file (for example BinaryAspect.aj) - * + * * @return the name of the source file */ String getSourceFileName(); diff --git a/bridge/src/main/java/org/aspectj/bridge/MessageUtil.java b/bridge/src/main/java/org/aspectj/bridge/MessageUtil.java index 0ebe113e0..0385ba696 100644 --- a/bridge/src/main/java/org/aspectj/bridge/MessageUtil.java +++ b/bridge/src/main/java/org/aspectj/bridge/MessageUtil.java @@ -1,14 +1,14 @@ /* ******************************************************************* - * Copyright (c) 1999-2001 Xerox Corporation, + * 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 + * 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; @@ -135,7 +135,7 @@ public class MessageUtil { /** * Create fail message. If message is empty but thrown is not, use thrown.getMessage() as the message. If message is empty and * thrown is null, return FAIL_NOMESSAGE. - * + * * @return FAIL_NOMESSAGE if thrown is null and message is empty or IMessage FAIL with message and thrown otherwise */ public static IMessage fail(String message, Throwable thrown) { @@ -231,7 +231,7 @@ public class MessageUtil { // ------------------------ printing messages /** * Print total counts message to the print stream, starting each on a new line - * + * * @param messageHolder * @param out */ @@ -248,7 +248,7 @@ public class MessageUtil { /** * Print all message to the print stream, starting each on a new line - * + * * @param messageHolder * @param out * @see #print(PrintStream, String, IMessageHolder, IMessageRenderer, IMessageHandler) @@ -259,7 +259,7 @@ public class MessageUtil { /** * Print all message to the print stream, starting each on a new line, with a prefix. - * + * * @param messageHolder * @param out * @see #print(PrintStream, String, IMessageHolder, IMessageRenderer, IMessageHandler) @@ -270,7 +270,7 @@ public class MessageUtil { /** * Print all message to the print stream, starting each on a new line, with a prefix and using a renderer. - * + * * @param messageHolder * @param out * @param renderer IMessageRender to render result - use MESSAGE_LINE if null @@ -283,14 +283,14 @@ public class MessageUtil { /** * Print all message to the print stream, starting each on a new line, with a prefix and using a renderer. The first line * renders a summary: {prefix}MessageHolder: {summary} Each message line has the following form: - * + * * <pre> * {prefix}[{kind} {index}]: {rendering} * </pre> - * + * * (where "{index}" (length 3) is the position within the set of like-kinded messages, ignoring selector omissions. Renderers * are free to render multi-line output. - * + * * @param out the PrintStream sink - return silently if null * @param messageHolder the IMessageHolder with the messages to print * @param renderer IMessageRender to render result - use MESSAGE_ALL if null @@ -351,7 +351,7 @@ public class MessageUtil { /** * Select all messages in holder except those of the same kind (optionally or greater). If kind is null, then all messages are * rejected, so an empty list is returned. - * + * * @return unmodifiable list of specified IMessage */ public static IMessage[] getMessagesExcept(IMessageHolder holder, final IMessage.Kind kind, final boolean orGreater) { @@ -397,7 +397,7 @@ public class MessageUtil { /** * Extract messages of type kind from the input list. - * + * * @param messages if null, return EMPTY_LIST * @param kind if null, return messages * @see MessageHandler#getMessages(Kind) @@ -423,7 +423,7 @@ public class MessageUtil { /** * Map to the kind of messages associated with this string key. - * + * * @param kind the String representing the kind of message (IMessage.Kind.toString()) * @return Kind the associated IMessage.Kind, or null if not found */ @@ -463,7 +463,7 @@ public class MessageUtil { /** * Run visitor over a collection of messages, optionally accumulating those accepted by the visitor - * + * * @param messages if null or empty, return IMessage.RA_IMessage * @param visitor run visitor.handleMessage(message) on each message - if null and messages not empty, IllegalArgumentException * @param accumulate if true, then return accepted IMessage[] @@ -497,7 +497,7 @@ public class MessageUtil { /** * Make an IMessageHandler that handles IMessage if they have the right kind (or greater) and contain some infix String. - * + * * @param kind the IMessage.Kind required of the message * @param orGreater if true, also accept messages with greater kinds, as defined by IMessage.Kind.COMPARATOR * @param infix the String text to require in the message - may be null or empty to accept any message with the specified kind. @@ -596,7 +596,7 @@ public class MessageUtil { // ------------------ components to render messages /** parameterize rendering behavior for messages */ - public static interface IMessageRenderer { + public interface IMessageRenderer { String renderToString(IMessage message); } @@ -778,7 +778,7 @@ public class MessageUtil { /** * This renders IMessage as String, ignoring empty elements and eliding any thrown stack traces. - * + * * @return "((IMessage) null)" if null or String rendering otherwise, including everything (esp. throwable stack trace) * @see renderSourceLocation(ISourceLocation loc) */ @@ -788,7 +788,7 @@ public class MessageUtil { /** * This renders IMessage as String, ignoring empty elements and eliding any thrown. - * + * * @return "((IMessage) null)" if null or String rendering otherwise, including everything (esp. throwable stack trace) * @see renderSourceLocation(ISourceLocation loc) */ @@ -838,13 +838,13 @@ public class MessageUtil { /** * Render ISourceLocation to String, ignoring empty elements (null or ISourceLocation.NO_FILE or ISourceLocation.NO_COLUMN * (though implementations may return 0 from getColumn() when passed NO_COLUMN as input)). - * + * * @return "((ISourceLocation) null)" if null or String rendering - * + * * <pre> * {file:}line{:column} * </pre> - * + * */ public static String renderSourceLocation(ISourceLocation loc) { if (null == loc) { @@ -872,7 +872,7 @@ public class MessageUtil { * Render message in a line. IMessage.Kind is always printed, then any unqualified exception class, then the remainder of text * and location according to their relative scale, all to fit in max characters or less. This does not render thrown except for * the unqualified class name - * + * * @param max the number of characters - forced to 32..10000 * @param textScale relative proportion to spend on message and/or exception message, relative to source location - if 0, * message is suppressed @@ -999,7 +999,7 @@ public class MessageUtil { /** * Factory for handler adapted to PrintStream XXX weak - only handles println(String) - * + * * @param handler the IMessageHandler sink for the messages generated * @param kind the IMessage.Kind of message to create * @param overage the OuputStream for text not captured by the handler (if null, System.out used) @@ -1037,7 +1037,7 @@ public class MessageUtil { /** * Handle all messages in the second handler using the first - * + * * @param handler the IMessageHandler sink for all messages in source * @param holder the IMessageHolder source for all messages to handle * @param fastFail if true, stop on first failure @@ -1049,7 +1049,7 @@ public class MessageUtil { /** * Handle messages in the second handler using the first - * + * * @param handler the IMessageHandler sink for all messages in source * @param holder the IMessageHolder source for all messages to handle * @param kind the IMessage.Kind to select, if not null @@ -1067,7 +1067,7 @@ public class MessageUtil { /** * Handle messages in the second handler using the first if they are NOT of this kind (optionally, or greater). If you pass null * as the kind, then all messages are ignored and this returns true. - * + * * @param handler the IMessageHandler sink for all messages in source * @param holder the IMessageHolder source for all messages to handle * @param kind the IMessage.Kind to reject, if not null @@ -1088,7 +1088,7 @@ public class MessageUtil { /** * Handle messages in the sink. - * + * * @param handler the IMessageHandler sink for all messages in source * @param sources the IMessage[] messages to handle * @param fastFail if true, stop on first failure |