001 // Copyright 2005-2006 Ferdinand Prantl <prantl@users.sourceforge.net>
002 // Copyright 2001-2004 The Apache Software Foundation
003 // All rights reserved.
004 //
005 // Licensed under the Apache License, Version 2.0 (the "License");
006 // you may not use this file except in compliance with the License.
007 // You may obtain a copy of the License at
008 //
009 // http://www.apache.org/licenses/LICENSE-2.0
010 //
011 // Unless required by applicable law or agreed to in writing, software
012 // distributed under the License is distributed on an "AS IS" BASIS,
013 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 // See the License for the specific language governing permissions and
015 // limitations under the License.
016 //
017 // See http://ant-eclipse.sourceforge.net for the most recent version
018 // and more information.
019
020 package prantl.ant.eclipse;
021
022 import java.io.File;
023
024 import org.apache.tools.ant.BuildException;
025 import org.apache.tools.ant.types.EnumeratedAttribute;
026
027 /**
028 * Configures the behavior of the generation of the output files and contains descriptions
029 * of ther content.
030 *
031 * @since Ant-Eclipse 1.0
032 * @author Ferdinand Prantl <prantl@users.sourceforge.net>
033 */
034 public class EclipseElement {
035
036 /**
037 * EnumeratedAttribute implementation supporting the available project modes.
038 *
039 * @since Ant-Eclipse 1.0
040 * @author Ferdinand Prantl <prantl@users.sourceforge.net>
041 */
042 public static class Mode extends EnumeratedAttribute {
043
044 /**
045 * Forces the Java mode to use JDT in the project.
046 */
047 public final static int JAVA = 0;
048
049 /**
050 * Forces the AspectJ mode to use AJDT in the project.
051 */
052 public final static int ASPECTJ = 1;
053
054 /**
055 * @see EnumeratedAttribute#getValues()
056 */
057 public String[] getValues() {
058 return new String[] { "java", "aspectj" };
059 }
060
061 }
062
063 private boolean updateAlways = false;
064
065 private boolean failOnError = true;
066
067 private String errorProperty = null;
068
069 private File destDir = new File(".");
070
071 private Mode mode;
072
073 private SettingsElement settings = null;
074
075 private ProjectElement project = null;
076
077 private ClassPathElement classPath = null;
078
079 /**
080 * Creates a new instance of the configuration container.
081 *
082 * @since Ant-Eclipse 1.0
083 */
084 public EclipseElement() {
085 mode = new Mode();
086 mode.setValue(mode.getValues()[Mode.JAVA]);
087 }
088
089 /**
090 * @return Returns the updateAlways.
091 */
092 public boolean isUpdateAlways() {
093 return updateAlways;
094 }
095
096 /**
097 * @param dir
098 * The updateAlways to set.
099 */
100 public void setUpdateAlways(boolean flag) {
101 updateAlways = flag;
102 }
103
104 /**
105 * @return Returns the destDir.
106 */
107 public File getDestDir() {
108 return destDir;
109 }
110
111 /**
112 * @param dir
113 * The destDir to set.
114 */
115 public void setDestDir(File dir) {
116 destDir = dir;
117 }
118
119 /**
120 * @return Returns the failOnError.
121 */
122 public boolean isFailOnError() {
123 return failOnError;
124 }
125
126 /**
127 * @param flag
128 * The failOnError to set.
129 */
130 public void setFailOnError(boolean flag) {
131 failOnError = flag;
132 }
133
134 /**
135 * @return Returns the errorProperty.
136 */
137 public String getErrorProperty() {
138 return errorProperty;
139 }
140
141 /**
142 * @param name
143 * The name of the property to set.
144 */
145 public void setErrorProperty(String name) {
146 errorProperty = name;
147 }
148
149 /**
150 * @return Returns the mode.
151 */
152 public Mode getMode() {
153 return mode;
154 }
155
156 /**
157 * @param value
158 * The value of the property to set.
159 */
160 public void setMode(Mode value) {
161 mode = value;
162 }
163
164 /**
165 * @return Returns the settings.
166 */
167 public SettingsElement getSettings() {
168 return settings;
169 }
170
171 /**
172 * @param element
173 * The settings to set.
174 */
175 public void setSettings(SettingsElement element) {
176 if (project != null)
177 throw new BuildException("The element <settings> has been already defined.");
178 settings = element;
179 }
180
181 /**
182 * @return Returns the project.
183 */
184 public ProjectElement getProject() {
185 return project;
186 }
187
188 /**
189 * @param element
190 * The project to set.
191 */
192 public void setProject(ProjectElement element) {
193 if (project != null)
194 throw new BuildException("The element <project> has been already defined.");
195 project = element;
196 }
197
198 /**
199 * @return Returns the classPath.
200 */
201 public ClassPathElement getClassPath() {
202 return classPath;
203 }
204
205 /**
206 * @param element
207 * The classPath to set.
208 */
209 public void setClassPath(ClassPathElement element) {
210 if (classPath != null)
211 throw new BuildException("The element <classpath> has been already defined.");
212 classPath = element;
213 }
214
215 }