diff --git a/src/main/org/apache/tools/ant/BuildEvent.java b/src/main/org/apache/tools/ant/BuildEvent.java index c669c4b86..1615b647c 100644 --- a/src/main/org/apache/tools/ant/BuildEvent.java +++ b/src/main/org/apache/tools/ant/BuildEvent.java @@ -1,7 +1,7 @@ /* * The Apache Software License, Version 1.1 * - * Copyright (c) 2000 The Apache Software Foundation. All rights + * Copyright (c) 2000,2002 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without @@ -55,18 +55,42 @@ package org.apache.tools.ant; import java.util.EventObject; +/** + * Class representing an event occurring during a build. An + * event is built by specifying either a project, a task or a target. + * A project level event will only have a project reference; + * a target level event will have project and target references; + * a task level event will have project, target and task references. + */ public class BuildEvent extends EventObject { + + /** Project which emitted the event. */ private Project project; + /** Target which emitted the event, if specified. */ private Target target; + /** Task which emitted the event, if specified. */ private Task task; + /** + * Message associated with the event. This is only used for + * "messageLogged" events. + */ private String message; + /** + * The priority of the message, for "messageLogged" events. + */ private int priority = Project.MSG_VERBOSE; + /** + * The exception associated with this event, if any. + * This is only used for "taskFinished", "targetFinished", + * and "buildFinished" events. + */ private Throwable exception; /** - * Construct a BuildEvent for a project level event + * Construct a BuildEvent for a project level event. * * @param project the project that emitted the event. + * Should not be null. */ public BuildEvent(Project project) { super(project); @@ -76,9 +100,12 @@ public class BuildEvent extends EventObject { } /** - * Construct a BuildEvent for a target level event + * Construct a BuildEvent for a target level event. + * The project associated with the event is derived + * from the given target. * * @param target the target that emitted the event. + * Must not be null. */ public BuildEvent(Target target) { super(target); @@ -88,9 +115,12 @@ public class BuildEvent extends EventObject { } /** - * Construct a BuildEvent for a task level event + * Construct a BuildEvent for a task level event. + * The project and target associated with the event + * are derived from the given task. * * @param task the task that emitted the event. + * Must not be null. */ public BuildEvent(Task task) { super(task); @@ -99,24 +129,52 @@ public class BuildEvent extends EventObject { this.task = task; } + /** + * Sets the message and priority associated with this event. + * This is used for "messageLogged" events. + * + * @param message the message to be associated with this event. + * Should not be null. + * @param priority the priority to be associated with this event, + * as defined in the {@link Project Project} class. + * + * @see BuildListener#messageLogged(BuildEvent) + */ public void setMessage(String message, int priority) { this.message = message; this.priority = priority; } + /** + * Sets the exception associated with this event. This is used + * for "taskFinished", "targetFinished", and "buildFinished" + * events. + * + * @param exception The exception to be associated with this event. + * May be null. + * + * @see BuildListener#taskFinished(BuildEvent) + * @see BuildListener#targetFinished(BuildEvent) + * @see BuildListener#buildFinished(BuildEvent) + */ public void setException(Throwable exception) { this.exception = exception; } /** - * Returns the project that fired this event. + * Returns the project that fired this event. + * + * @return the project that fired this event */ public Project getProject() { return project; } /** - * Returns the target that fired this event. + * Returns the target that fired this event. + * + * @return the project that fired this event, or null + * if this event is a project level event. */ public Target getTarget() { @@ -124,39 +182,52 @@ public class BuildEvent extends EventObject { } /** - * Returns the task that fired this event. + * Returns the task that fired this event. + * + * @return the task that fired this event, or null + * if this event is a project or target level event. */ public Task getTask() { return task; } /** - * Returns the logging message. This field will only be set - * for "messageLogged" events. + * Returns the logging message. This field will only be set + * for "messageLogged" events. * - * @see BuildListener#messageLogged(BuildEvent) + * @return the message associated with this event, or null + * if no message has been set. + * + * @see BuildListener#messageLogged(BuildEvent) */ public String getMessage() { return message; } /** - * Returns the priority of the logging message. This field will only - * be set for "messageLogged" events. + * Returns the priority of the logging message. This field will only + * be set for "messageLogged" events. The meaning of this priority + * is as specified by the constants in the {@link Project Project} class. + * + * @return the priority associated with this event. * - * @see BuildListener#messageLogged(BuildEvent) + * @see BuildListener#messageLogged(BuildEvent) */ public int getPriority(){ return priority; } /** - * Returns the exception that was thrown, if any. This field will only - * be set for "taskFinished", "targetFinished", and "buildFinished" events. + * Returns the exception that was thrown, if any. This field will only + * be set for "taskFinished", "targetFinished", and "buildFinished" + * events. + * + * @return the exception associated with this exception, or + * null if no exception has been set. * - * @see BuildListener#taskFinished(BuildEvent) - * @see BuildListener#targetFinished(BuildEvent) - * @see BuildListener#buildFinished(BuildEvent) + * @see BuildListener#taskFinished(BuildEvent) + * @see BuildListener#targetFinished(BuildEvent) + * @see BuildListener#buildFinished(BuildEvent) */ public Throwable getException() { return exception; diff --git a/src/main/org/apache/tools/ant/BuildException.java b/src/main/org/apache/tools/ant/BuildException.java index 8fbc3519d..ef24feebf 100644 --- a/src/main/org/apache/tools/ant/BuildException.java +++ b/src/main/org/apache/tools/ant/BuildException.java @@ -1,7 +1,7 @@ /* * The Apache Software License, Version 1.1 * - * Copyright (c) 2000-2001 The Apache Software Foundation. All rights + * Copyright (c) 2000-2002 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without @@ -53,12 +53,11 @@ */ package org.apache.tools.ant; - import java.io.PrintWriter; import java.io.PrintStream; /** - * Signals an error condition during a build. + * Signals an error condition during a build * * @author James Duncan Davidson */ @@ -79,7 +78,9 @@ public class BuildException extends RuntimeException { /** * Constructs an exception with the given descriptive message. - * @param msg Description of or information about the exception. + * + * @param msg A description of or information about the exception. + * Should not be null. */ public BuildException(String msg) { super(msg); @@ -88,8 +89,11 @@ public class BuildException extends RuntimeException { /** * Constructs an exception with the given message and exception as * a root cause. - * @param msg Description of or information about the exception. - * @param cause Throwable that might have cause this one. + * + * @param msg A description of or information about the exception. + * Should not be null unless a cause is specified. + * @param cause The exception that might have caused this one. + * May be null. */ public BuildException(String msg, Throwable cause) { super(msg); @@ -99,9 +103,13 @@ public class BuildException extends RuntimeException { /** * Constructs an exception with the given message and exception as * a root cause and a location in a file. - * @param msg Description of or information about the exception. - * @param cause Exception that might have cause this one. - * @param location Location in the project file where the error occured. + * + * @param msg A description of or information about the exception. + * Should not be null unless a cause is specified. + * @param cause The exception that might have caused this one. + * May be null. + * @param location The location in the project file where the error + * occurred. Must not be null. */ public BuildException(String msg, Throwable cause, Location location) { this(msg, cause); @@ -110,7 +118,9 @@ public class BuildException extends RuntimeException { /** * Constructs an exception with the given exception as a root cause. - * @param cause Exception that might have caused this one. + * + * @param cause The exception that might have caused this one. + * Should not be null. */ public BuildException(Throwable cause) { super(cause.toString()); @@ -118,10 +128,13 @@ public class BuildException extends RuntimeException { } /** - * Constructs an exception with the given descriptive message and a location - * in a file. - * @param msg Description of or information about the exception. - * @param location Location in the project file where the error occured. + * Constructs an exception with the given descriptive message and a + * location in a file. + * + * @param msg A description of or information about the exception. + * Should not be null. + * @param location The location in the project file where the error + * occurred. Must not be null. */ public BuildException(String msg, Location location) { super(msg); @@ -131,8 +144,11 @@ public class BuildException extends RuntimeException { /** * Constructs an exception with the given exception as * a root cause and a location in a file. - * @param cause Exception that might have cause this one. - * @param location Location in the project file where the error occured. + * + * @param cause The exception that might have caused this one. + * Should not be null. + * @param location The location in the project file where the error + * occurred. Must not be null. */ public BuildException(Throwable cause, Location location) { this(cause); @@ -140,7 +156,10 @@ public class BuildException extends RuntimeException { } /** - * Returns the nested exception. + * Returns the nested exception, if any. + * + * @return the nested exception, or null if no + * exception is associated with this one */ public Throwable getException() { return cause; @@ -148,30 +167,47 @@ public class BuildException extends RuntimeException { /** * Returns the location of the error and the error message. + * + * @return the location of the error and the error message */ public String toString() { return location.toString() + getMessage(); } /** - * Sets the file location where the error occured. + * Sets the file location where the error occurred. + * + * @param location The file location where the error occurred. + * Must not be null. */ public void setLocation(Location location) { this.location = location; } /** - * Returns the file location where the error occured. + * Returns the file location where the error occurred. + * + * @return the file location where the error occurred. */ public Location getLocation() { return location; } - // Override stack trace methods to show original cause: + /** + * Prints the stack trace for this exception and any + * nested exception to System.err. + */ public void printStackTrace() { printStackTrace(System.err); } + /** + * Prints the stack trace of this exception and any nested + * exception to the specified PrintStream. + * + * @param ps The PrintStream to print the stack trace to. + * Must not be null. + */ public void printStackTrace(PrintStream ps) { synchronized (ps) { super.printStackTrace(ps); @@ -182,6 +218,13 @@ public class BuildException extends RuntimeException { } } + /** + * Prints the stack trace of this exception and any nested + * exception to the specified PrintWriter. + * + * @param pw The PrintWriter to print the stack trace to. + * Must not be null. + */ public void printStackTrace(PrintWriter pw) { synchronized (pw) { super.printStackTrace(pw); diff --git a/src/main/org/apache/tools/ant/BuildListener.java b/src/main/org/apache/tools/ant/BuildListener.java index 3ac1a24e0..2d2d6cb8b 100644 --- a/src/main/org/apache/tools/ant/BuildListener.java +++ b/src/main/org/apache/tools/ant/BuildListener.java @@ -1,7 +1,7 @@ /* * The Apache Software License, Version 1.1 * - * Copyright (c) 2000 The Apache Software Foundation. All rights + * Copyright (c) 2000,2002 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without @@ -57,62 +57,84 @@ package org.apache.tools.ant; import java.util.EventListener; /** - * Classes that implement this interface will be notified when - * things happend during a build. + * Instances of classes that implement this interface can register + * to be notified when things happened during a build. * - * @see BuildEvent - * @see Project#addBuildListener(BuildListener) + * @see BuildEvent + * @see Project#addBuildListener(BuildListener) */ public interface BuildListener extends EventListener { /** - * Fired before any targets are started. + * Signals that a build has started. This event + * is fired before any targets have started. + * + * @param event An event with any relevant extra information. + * Must not be null. */ void buildStarted(BuildEvent event); /** - * Fired after the last target has finished. This event - * will still be thrown if an error occured during the build. + * Signals that the last target has finished. This event + * will still be fired if an error occurred during the build. + * + * @param event An event with any relevant extra information. + * Must not be null. * - * @see BuildEvent#getException() + * @see BuildEvent#getException() */ void buildFinished(BuildEvent event); /** - * Fired when a target is started. + * Signals that a target is starting. + * + * @param event An event with any relevant extra information. + * Must not be null. * - * @see BuildEvent#getTarget() + * @see BuildEvent#getTarget() */ void targetStarted(BuildEvent event); /** - * Fired when a target has finished. This event will - * still be thrown if an error occured during the build. + * Signals that a target has finished. This event will + * still be fired if an error occurred during the build. + * + * @param event An event with any relevant extra information. + * Must not be null. * - * @see BuildEvent#getException() + * @see BuildEvent#getException() */ void targetFinished(BuildEvent event); /** - * Fired when a task is started. + * Signals that a task is starting. + * + * @param event An event with any relevant extra information. + * Must not be null. * - * @see BuildEvent#getTask() + * @see BuildEvent#getTask() */ void taskStarted(BuildEvent event); /** - * Fired when a task has finished. This event will still - * be throw if an error occured during the build. + * Signals that a task has finished. This event will still + * be fired if an error occurred during the build. * - * @see BuildEvent#getException() + * @param event An event with any relevant extra information. + * Must not be null. + * + * @see BuildEvent#getException() */ void taskFinished(BuildEvent event); /** - * Fired whenever a message is logged. + * Signals a message logging event. + * + * @param event An event with any relevant extra information. + * Must not be null. * - * @see BuildEvent#getMessage() - * @see BuildEvent#getPriority() + * @see BuildEvent#getMessage() + * @see BuildEvent#getPriority() */ void messageLogged(BuildEvent event); } diff --git a/src/main/org/apache/tools/ant/BuildLogger.java b/src/main/org/apache/tools/ant/BuildLogger.java index f02a51d6f..22590377e 100644 --- a/src/main/org/apache/tools/ant/BuildLogger.java +++ b/src/main/org/apache/tools/ant/BuildLogger.java @@ -1,7 +1,7 @@ /* * The Apache Software License, Version 1.1 * - * Copyright (c) 2000-2001 The Apache Software Foundation. All rights + * Copyright (c) 2000-2002 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without @@ -59,45 +59,51 @@ import java.io.PrintStream; /** * Interface used by Ant to log the build output. * - * A build logger is a build listener which has the 'right' to send output to the - * ant log, which is usually System.out unles redirected by the -logfile option. + * A build logger is a build listener which has the 'right' to send output to + * the ant log, which is usually System.out unless redirected by + * the -logfile option. * * @author Conor MacNeill */ public interface BuildLogger extends BuildListener { + /** - * Set the msgOutputLevel this logger is to respond to. + * Sets the msgOutputLevel this logger is to respond to. * - * Only messages with a message level lower than or equal to the given level are - * output to the log. + * Only messages with a message level lower than or equal to the given + * level are output to the log. *

- * Constants for the message levels are in Project.java. The order of - * the levels, from least to most verbose, is MSG_ERR, MSG_WARN, - * MSG_INFO, MSG_VERBOSE, MSG_DEBUG. + * Constants for the message levels are in the + * {@link Project Project} class. The order of the levels, from least + * to most verbose, is MSG_ERR, MSG_WARN, + * MSG_INFO, MSG_VERBOSE, + * MSG_DEBUG. * * @param level the logging level for the logger. */ void setMessageOutputLevel(int level); /** - * Set the output stream to which this logger is to send its output. + * Sets the output stream to which this logger is to send its output. * - * @param output the output stream for the logger. + * @param output The output stream for the logger. + * Must not be null. */ void setOutputPrintStream(PrintStream output); /** - * Set this logger to produce emacs (and other editor) friendly output. + * Sets this logger to produce emacs (and other editor) friendly output. * - * @param emacsMode true if output is to be unadorned so that emacs and other - * editors can parse files names, etc. + * @param emacsMode true if output is to be unadorned so that + * emacs and other editors can parse files names, etc. */ void setEmacsMode(boolean emacsMode); /** - * Set the output stream to which this logger is to send error messages. + * Sets the output stream to which this logger is to send error messages. * - * @param err the error stream for the logger. + * @param err The error stream for the logger. + * Must not be null. */ void setErrorPrintStream(PrintStream err); }