001// =================== DO NOT EDIT THIS FILE ====================
002// Generated by Modello 1.8.3,
003// any modifications will be overwritten.
004// ==============================================================
005
006package org.apache.maven.model;
007
008/**
009 * 
010 *         
011 *         The <code>&lt;build&gt;</code> element contains
012 * informations required to build the project.
013 *         Default values are defined in Super POM.
014 *         
015 *       
016 * 
017 * @version $Revision$ $Date$
018 */
019@SuppressWarnings( "all" )
020public class Build
021    extends BuildBase
022    implements java.io.Serializable, java.lang.Cloneable
023{
024
025      //--------------------------/
026     //- Class/Member Variables -/
027    //--------------------------/
028
029    /**
030     * 
031     *             This element specifies a directory containing
032     * the source of the project. The
033     *             generated build system will compile the sources
034     * from this directory when the project is
035     *             built. The path given is relative to the project
036     * descriptor.
037     *             The default value is <code>src/main/java</code>.
038     *           
039     */
040    private String sourceDirectory;
041
042    /**
043     * 
044     *             This element specifies a directory containing
045     * the script sources of the
046     *             project. This directory is meant to be different
047     * from the sourceDirectory, in that its
048     *             contents will be copied to the output directory
049     * in most cases (since scripts are
050     *             interpreted rather than compiled).
051     *             The default value is
052     * <code>src/main/scripts</code>.
053     *           
054     */
055    private String scriptSourceDirectory;
056
057    /**
058     * 
059     *             This element specifies a directory containing
060     * the unit test source of the
061     *             project. The generated build system will compile
062     * these directories when the project is
063     *             being tested. The path given is relative to the
064     * project descriptor.
065     *             The default value is <code>src/test/java</code>.
066     *           
067     */
068    private String testSourceDirectory;
069
070    /**
071     * 
072     *             The directory where compiled application classes
073     * are placed.
074     *             The default value is
075     * <code>target/classes</code>.
076     *           
077     */
078    private String outputDirectory;
079
080    /**
081     * 
082     *             The directory where compiled test classes are
083     * placed.
084     *             The default value is
085     * <code>target/test-classes</code>.
086     *           
087     */
088    private String testOutputDirectory;
089
090    /**
091     * Field extensions.
092     */
093    private java.util.List<Extension> extensions;
094
095
096      //-----------/
097     //- Methods -/
098    //-----------/
099
100    /**
101     * Method addExtension.
102     * 
103     * @param extension
104     */
105    public void addExtension( Extension extension )
106    {
107        getExtensions().add( extension );
108    } //-- void addExtension( Extension )
109
110    /**
111     * Method clone.
112     * 
113     * @return Build
114     */
115    public Build clone()
116    {
117        try
118        {
119            Build copy = (Build) super.clone();
120
121            if ( this.extensions != null )
122            {
123                copy.extensions = new java.util.ArrayList<Extension>();
124                for ( Extension item : this.extensions )
125                {
126                    copy.extensions.add( ( (Extension) item).clone() );
127                }
128            }
129
130            return copy;
131        }
132        catch ( java.lang.Exception ex )
133        {
134            throw (java.lang.RuntimeException) new java.lang.UnsupportedOperationException( getClass().getName()
135                + " does not support clone()" ).initCause( ex );
136        }
137    } //-- Build clone()
138
139    /**
140     * Method getExtensions.
141     * 
142     * @return List
143     */
144    public java.util.List<Extension> getExtensions()
145    {
146        if ( this.extensions == null )
147        {
148            this.extensions = new java.util.ArrayList<Extension>();
149        }
150
151        return this.extensions;
152    } //-- java.util.List<Extension> getExtensions()
153
154    /**
155     * Get the directory where compiled application classes are
156     * placed.
157     *             The default value is
158     * <code>target/classes</code>.
159     * 
160     * @return String
161     */
162    public String getOutputDirectory()
163    {
164        return this.outputDirectory;
165    } //-- String getOutputDirectory()
166
167    /**
168     * Get this element specifies a directory containing the script
169     * sources of the
170     *             project. This directory is meant to be different
171     * from the sourceDirectory, in that its
172     *             contents will be copied to the output directory
173     * in most cases (since scripts are
174     *             interpreted rather than compiled).
175     *             The default value is
176     * <code>src/main/scripts</code>.
177     * 
178     * @return String
179     */
180    public String getScriptSourceDirectory()
181    {
182        return this.scriptSourceDirectory;
183    } //-- String getScriptSourceDirectory()
184
185    /**
186     * Get this element specifies a directory containing the source
187     * of the project. The
188     *             generated build system will compile the sources
189     * from this directory when the project is
190     *             built. The path given is relative to the project
191     * descriptor.
192     *             The default value is <code>src/main/java</code>.
193     * 
194     * @return String
195     */
196    public String getSourceDirectory()
197    {
198        return this.sourceDirectory;
199    } //-- String getSourceDirectory()
200
201    /**
202     * Get the directory where compiled test classes are placed.
203     *             The default value is
204     * <code>target/test-classes</code>.
205     * 
206     * @return String
207     */
208    public String getTestOutputDirectory()
209    {
210        return this.testOutputDirectory;
211    } //-- String getTestOutputDirectory()
212
213    /**
214     * Get this element specifies a directory containing the unit
215     * test source of the
216     *             project. The generated build system will compile
217     * these directories when the project is
218     *             being tested. The path given is relative to the
219     * project descriptor.
220     *             The default value is <code>src/test/java</code>.
221     * 
222     * @return String
223     */
224    public String getTestSourceDirectory()
225    {
226        return this.testSourceDirectory;
227    } //-- String getTestSourceDirectory()
228
229    /**
230     * Method removeExtension.
231     * 
232     * @param extension
233     */
234    public void removeExtension( Extension extension )
235    {
236        getExtensions().remove( extension );
237    } //-- void removeExtension( Extension )
238
239    /**
240     * Set a set of build extensions to use from this project.
241     * 
242     * @param extensions
243     */
244    public void setExtensions( java.util.List<Extension> extensions )
245    {
246        this.extensions = extensions;
247    } //-- void setExtensions( java.util.List )
248
249    /**
250     * Set the directory where compiled application classes are
251     * placed.
252     *             The default value is
253     * <code>target/classes</code>.
254     * 
255     * @param outputDirectory
256     */
257    public void setOutputDirectory( String outputDirectory )
258    {
259        this.outputDirectory = outputDirectory;
260    } //-- void setOutputDirectory( String )
261
262    /**
263     * Set this element specifies a directory containing the script
264     * sources of the
265     *             project. This directory is meant to be different
266     * from the sourceDirectory, in that its
267     *             contents will be copied to the output directory
268     * in most cases (since scripts are
269     *             interpreted rather than compiled).
270     *             The default value is
271     * <code>src/main/scripts</code>.
272     * 
273     * @param scriptSourceDirectory
274     */
275    public void setScriptSourceDirectory( String scriptSourceDirectory )
276    {
277        this.scriptSourceDirectory = scriptSourceDirectory;
278    } //-- void setScriptSourceDirectory( String )
279
280    /**
281     * Set this element specifies a directory containing the source
282     * of the project. The
283     *             generated build system will compile the sources
284     * from this directory when the project is
285     *             built. The path given is relative to the project
286     * descriptor.
287     *             The default value is <code>src/main/java</code>.
288     * 
289     * @param sourceDirectory
290     */
291    public void setSourceDirectory( String sourceDirectory )
292    {
293        this.sourceDirectory = sourceDirectory;
294    } //-- void setSourceDirectory( String )
295
296    /**
297     * Set the directory where compiled test classes are placed.
298     *             The default value is
299     * <code>target/test-classes</code>.
300     * 
301     * @param testOutputDirectory
302     */
303    public void setTestOutputDirectory( String testOutputDirectory )
304    {
305        this.testOutputDirectory = testOutputDirectory;
306    } //-- void setTestOutputDirectory( String )
307
308    /**
309     * Set this element specifies a directory containing the unit
310     * test source of the
311     *             project. The generated build system will compile
312     * these directories when the project is
313     *             being tested. The path given is relative to the
314     * project descriptor.
315     *             The default value is <code>src/test/java</code>.
316     * 
317     * @param testSourceDirectory
318     */
319    public void setTestSourceDirectory( String testSourceDirectory )
320    {
321        this.testSourceDirectory = testSourceDirectory;
322    } //-- void setTestSourceDirectory( String )
323
324}