diff options
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/BuildEvent.java')
-rw-r--r-- | framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/BuildEvent.java | 203 |
1 files changed, 203 insertions, 0 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/BuildEvent.java b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/BuildEvent.java new file mode 100644 index 00000000..623ad1e6 --- /dev/null +++ b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/BuildEvent.java @@ -0,0 +1,203 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +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 { + + private static final long serialVersionUID = 4538050075952288486L; + + /** Project which emitted the event. */ + private final Project project; + /** Target which emitted the event, if specified. */ + private final Target target; + /** Task which emitted the event, if specified. */ + private final 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 "messageLogged", "taskFinished", "targetFinished", + * and "buildFinished" events. + */ + private Throwable exception; + + /** + * Construct a BuildEvent for a project level event. + * + * @param project the project that emitted the event. + * Should not be <code>null</code>. + */ + public BuildEvent(Project project) { + super(project); + this.project = project; + this.target = null; + this.task = null; + } + + /** + * 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 <code>null</code>. + */ + public BuildEvent(Target target) { + super(target); + this.project = target.getProject(); + this.target = target; + this.task = null; + } + + /** + * 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 <code>null</code>. + */ + public BuildEvent(Task task) { + super(task); + this.project = task.getProject(); + this.target = task.getOwningTarget(); + 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 <code>null</code>. + * @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 "messageLogged", "taskFinished", "targetFinished", and "buildFinished" + * events. + * + * @param exception The exception to be associated with this event. + * May be <code>null</code>. + * + * @see BuildListener#messageLogged(BuildEvent) + * @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. + * + * @return the project that fired this event + */ + public Project getProject() { + return project; + } + + /** + * Returns the target that fired this event. + * + * @return the project that fired this event, or <code>null</code> + * if this event is a project level event. + */ + public Target getTarget() { + return target; + } + + /** + * Returns the task that fired this event. + * + * @return the task that fired this event, or <code>null</code> + * 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. + * + * @return the message associated with this event, or <code>null</code> + * 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. 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) + */ + public int getPriority() { + return priority; + } + + /** + * Returns the exception that was thrown, if any. This field will only + * be set for "messageLogged", "taskFinished", "targetFinished", and "buildFinished" + * events. + * + * @return the exception associated with this exception, or + * <code>null</code> if no exception has been set. + * + * @see BuildListener#messageLogged(BuildEvent) + * @see BuildListener#taskFinished(BuildEvent) + * @see BuildListener#targetFinished(BuildEvent) + * @see BuildListener#buildFinished(BuildEvent) + */ + public Throwable getException() { + return exception; + } +} |