source: release-kits/lirk3/ant-scripts/tasks/antelope/src/ise/antelope/tasks/Case.java@ 14982

Last change on this file since 14982 was 14982, checked in by oranfry, 16 years ago

initial import of LiRK3

File size: 5.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;
55import java.util.Enumeration;
56
57import java.util.Vector;
58import org.apache.tools.ant.BuildException;
59
60import org.apache.tools.ant.Task;
61import org.apache.tools.ant.TaskContainer;
62
63/**
64 * This TaskContainer is intended to be nested into the Switch task.
65 *
66 * @author Dale Anson
67 * @version $Revision: 1.2 $
68 */
69public class Case extends Task implements TaskContainer, Breakable {
70 private Vector tasks = new Vector();
71 private String value = null;
72 private boolean doBreak = false;
73 private Break _break = null;
74
75 /**
76 * Set the value for this case. This value is used by the Switch task to
77 * decide if this task should execute.
78 *
79 * @param value the value.
80 */
81 public void setValue( String value ) {
82 this.value = value;
83 }
84
85 /**
86 * @return the value for this case.
87 */
88 public String getValue() {
89 return value;
90 }
91
92 /**
93 * Required for Breakable interface.
94 *
95 * @param b The new break value
96 * @see Breakable
97 */
98 public void setBreak( boolean b ) {
99 doBreak = b;
100 }
101
102 /**
103 * Required for Breakable interface.
104 *
105 * @return Description of the Returned Value
106 * @see Breakable
107 */
108 public boolean doBreak() {
109 return doBreak;
110 }
111
112 /**
113 * Required for Breakable interface.
114 *
115 * @param b The feature to be added to the Break attribute
116 * @see Breakable
117 */
118 public void addBreak( Break b ) {
119 // Ant 1.5.x -- intentional no-op, this is a task container, so can only add items
120 // add items via the addTask method.
121
122 // added for Ant 1.6
123 addTask(b);
124 }
125
126 /**
127 * Adds a feature to the Task attribute of the Case object
128 *
129 * @param task The feature to be added to the Task attribute
130 * @exception BuildException Description of Exception
131 */
132 public void addTask( Task task ) throws BuildException {
133 if ( task instanceof Break ) {
134 if ( _break == null )
135 _break = (Break)task;
136 else
137 throw new BuildException( "<case> can only have one <break>" );
138 }
139 tasks.addElement( task );
140 }
141
142 /**
143 * Execute all nested tasks, checking for Breakables.
144 *
145 * @exception BuildException Description of Exception
146 */
147 public void execute() throws BuildException {
148 Enumeration en = tasks.elements();
149 while ( en.hasMoreElements() ) {
150 Task task = (Task)en.nextElement();
151 task.perform();
152 if ( task instanceof Breakable ) {
153 if ( ( (Breakable)task ).doBreak() ) {
154 setBreak( true );
155 return;
156 }
157 }
158 }
159 }
160}
161
Note: See TracBrowser for help on using the repository browser.