source: other-projects/trunk/gs3-release-maker/tasks/antelope/src/ise/antelope/tasks/ElseTask.java@ 14627

Last change on this file since 14627 was 14627, checked in by oranfry, 17 years ago

initial import of the gs3-release-maker

File size: 4.1 KB
Line 
1/*
2* The Apache Software License, Version 1.1
3*
4* Copyright (c) 2001-2002 The Apache Software Foundation. All rights
5* reserved.
6*
7* Redistribution and use in source and binary forms, with or without
8* modification, are permitted provided that the following conditions
9* are met:
10*
11* 1. Redistributions of source code must retain the above copyright
12* notice, this list of conditions and the following disclaimer.
13*
14* 2. Redistributions in binary form must reproduce the above copyright
15* notice, this list of conditions and the following disclaimer in
16* the documentation and/or other materials provided with the
17* distribution.
18*
19* 3. The end-user documentation included with the redistribution, if
20* any, must include the following acknowlegement:
21* "This product includes software developed by the
22* Apache Software Foundation (http://www.apache.org/)."
23* Alternately, this acknowlegement may appear in the software itself,
24* if and wherever such third-party acknowlegements normally appear.
25*
26* 4. The names "The Jakarta Project", "Ant", and "Apache Software
27* Foundation" must not be used to endorse or promote products derived
28* from this software without prior written permission. For written
29* permission, please contact [email protected].
30*
31* 5. Products derived from this software may not be called "Apache"
32* nor may "Apache" appear in their names without prior written
33* permission of the Apache Group.
34*
35* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
36* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
37* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
38* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
39* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
41* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
42* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
43* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
44* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
45* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
46* SUCH DAMAGE.
47* ====================================================================
48*
49* This software consists of voluntary contributions made by many
50* individuals on behalf of the Apache Software Foundation. For more
51* information on the Apache Software Foundation, please see
52* <http://www.apache.org/>.
53*/
54package ise.antelope.tasks;
55
56import java.util.Vector;
57import java.util.Enumeration;
58
59import org.apache.tools.ant.Task;
60import org.apache.tools.ant.TaskContainer;
61import org.apache.tools.ant.BuildException;
62
63
64/**
65 * This task is intended for nesting into the If task. This represents the 'else'
66 * clause in an if/else construct.
67 *
68 * @author Dale Anson, [email protected]
69 * @since Ant 1.5
70 */
71public class ElseTask extends Task implements TaskContainer, Breakable {
72
73 private Vector tasks = new Vector();
74 private boolean doBreak = false;
75
76 /**
77 * Add a task to execute.
78 * @param task a task to execute.
79 */
80 public void addTask( Task task ) {
81 tasks.addElement( task );
82 }
83
84 /**
85 * Required by Breakable interface.
86 */
87 public void setBreak( boolean b ) {
88 doBreak = b;
89 }
90
91 /**
92 * Required by Breakable interface.
93 */
94 public void addBreak( Break b ) {
95 // intentional no-op
96 }
97
98 /**
99 * Required by Breakable interface.
100 */
101 public boolean doBreak() {
102 return doBreak;
103 }
104
105 public void execute() throws BuildException {
106 // execute all nested tasks
107 for ( Enumeration e = tasks.elements(); e.hasMoreElements(); ) {
108 Task task = ( Task ) e.nextElement();
109 if ( task instanceof Breakable ) {
110 task.perform();
111 if ( ( ( Breakable ) task ).doBreak() ) {
112 setBreak( true );
113 return ;
114 }
115 }
116 else {
117 task.perform();
118 }
119 }
120 }
121}
Note: See TracBrowser for help on using the repository browser.