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