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