001    // =================== DO NOT EDIT THIS FILE ====================
002    // Generated by Modello 1.7,
003    // any modifications will be overwritten.
004    // ==============================================================
005    
006    package org.apache.maven.model;
007    
008    /**
009     * 
010     *         
011     *         Base class for the <code>Model</code> and the
012     * <code>Profile</code> objects.
013     *         
014     *       
015     * 
016     * @version $Revision$ $Date$
017     */
018    @SuppressWarnings( "all" )
019    public class ModelBase
020        implements java.io.Serializable, java.lang.Cloneable, org.apache.maven.model.InputLocationTracker
021    {
022    
023          //--------------------------/
024         //- Class/Member Variables -/
025        //--------------------------/
026    
027        /**
028         * Field modules.
029         */
030        private java.util.List<String> modules;
031    
032        /**
033         * Distribution information for a project that enables
034         * deployment of the site
035         *             and artifacts to remote web servers and
036         * repositories respectively.
037         */
038        private DistributionManagement distributionManagement;
039    
040        /**
041         * Field properties.
042         */
043        private java.util.Properties properties;
044    
045        /**
046         * Default dependency information for projects that inherit
047         * from this one. The
048         *             dependencies in this section are not immediately
049         * resolved. Instead, when a POM derived
050         *             from this one declares a dependency described by
051         * a matching groupId and artifactId, the
052         *             version and other values from this section are
053         * used for that dependency if they were not
054         *             already specified.
055         */
056        private DependencyManagement dependencyManagement;
057    
058        /**
059         * Field dependencies.
060         */
061        private java.util.List<Dependency> dependencies;
062    
063        /**
064         * Field repositories.
065         */
066        private java.util.List<Repository> repositories;
067    
068        /**
069         * Field pluginRepositories.
070         */
071        private java.util.List<Repository> pluginRepositories;
072    
073        /**
074         * 
075         *             
076         *             <b>Deprecated</b>. Now ignored by Maven.
077         *             
078         *           
079         */
080        private Object reports;
081    
082        /**
083         * 
084         *             
085         *             This element includes the specification of
086         * report plugins to use
087         *             to generate the reports on the Maven-generated
088         * site.
089         *             These reports will be run when a user executes
090         * <code>mvn site</code>.
091         *             All of the reports will be included in the
092         * navigation bar for browsing.
093         *             
094         *           
095         */
096        private Reporting reporting;
097    
098        /**
099         * Field locations.
100         */
101        private java.util.Map<Object, InputLocation> locations;
102    
103    
104          //-----------/
105         //- Methods -/
106        //-----------/
107    
108        /**
109         * Method addDependency.
110         * 
111         * @param dependency
112         */
113        public void addDependency( Dependency dependency )
114        {
115            getDependencies().add( dependency );
116        } //-- void addDependency( Dependency )
117    
118        /**
119         * Method addModule.
120         * 
121         * @param string
122         */
123        public void addModule( String string )
124        {
125            getModules().add( string );
126        } //-- void addModule( String )
127    
128        /**
129         * Method addPluginRepository.
130         * 
131         * @param repository
132         */
133        public void addPluginRepository( Repository repository )
134        {
135            getPluginRepositories().add( repository );
136        } //-- void addPluginRepository( Repository )
137    
138        /**
139         * Method addProperty.
140         * 
141         * @param key
142         * @param value
143         */
144        public void addProperty( String key, String value )
145        {
146            getProperties().put( key, value );
147        } //-- void addProperty( String, String )
148    
149        /**
150         * Method addRepository.
151         * 
152         * @param repository
153         */
154        public void addRepository( Repository repository )
155        {
156            getRepositories().add( repository );
157        } //-- void addRepository( Repository )
158    
159        /**
160         * Method clone.
161         * 
162         * @return ModelBase
163         */
164        public ModelBase clone()
165        {
166            try
167            {
168                ModelBase copy = (ModelBase) super.clone();
169    
170                if ( this.modules != null )
171                {
172                    copy.modules = new java.util.ArrayList<String>();
173                    copy.modules.addAll( this.modules );
174                }
175    
176                if ( this.distributionManagement != null )
177                {
178                    copy.distributionManagement = (DistributionManagement) this.distributionManagement.clone();
179                }
180    
181                if ( this.properties != null )
182                {
183                    copy.properties = (java.util.Properties) this.properties.clone();
184                }
185    
186                if ( this.dependencyManagement != null )
187                {
188                    copy.dependencyManagement = (DependencyManagement) this.dependencyManagement.clone();
189                }
190    
191                if ( this.dependencies != null )
192                {
193                    copy.dependencies = new java.util.ArrayList<Dependency>();
194                    for ( Dependency item : this.dependencies )
195                    {
196                        copy.dependencies.add( ( (Dependency) item).clone() );
197                    }
198                }
199    
200                if ( this.repositories != null )
201                {
202                    copy.repositories = new java.util.ArrayList<Repository>();
203                    for ( Repository item : this.repositories )
204                    {
205                        copy.repositories.add( ( (Repository) item).clone() );
206                    }
207                }
208    
209                if ( this.pluginRepositories != null )
210                {
211                    copy.pluginRepositories = new java.util.ArrayList<Repository>();
212                    for ( Repository item : this.pluginRepositories )
213                    {
214                        copy.pluginRepositories.add( ( (Repository) item).clone() );
215                    }
216                }
217    
218                if ( this.reports != null )
219                {
220                    copy.reports = new org.codehaus.plexus.util.xml.Xpp3Dom( (org.codehaus.plexus.util.xml.Xpp3Dom) this.reports );
221                }
222    
223                if ( this.reporting != null )
224                {
225                    copy.reporting = (Reporting) this.reporting.clone();
226                }
227    
228                if ( copy.locations != null )
229                {
230                    copy.locations = new java.util.LinkedHashMap( copy.locations );
231                }
232    
233                return copy;
234            }
235            catch ( java.lang.Exception ex )
236            {
237                throw (java.lang.RuntimeException) new java.lang.UnsupportedOperationException( getClass().getName()
238                    + " does not support clone()" ).initCause( ex );
239            }
240        } //-- ModelBase clone()
241    
242        /**
243         * Method getDependencies.
244         * 
245         * @return List
246         */
247        public java.util.List<Dependency> getDependencies()
248        {
249            if ( this.dependencies == null )
250            {
251                this.dependencies = new java.util.ArrayList<Dependency>();
252            }
253    
254            return this.dependencies;
255        } //-- java.util.List<Dependency> getDependencies()
256    
257        /**
258         * Get default dependency information for projects that inherit
259         * from this one. The
260         *             dependencies in this section are not immediately
261         * resolved. Instead, when a POM derived
262         *             from this one declares a dependency described by
263         * a matching groupId and artifactId, the
264         *             version and other values from this section are
265         * used for that dependency if they were not
266         *             already specified.
267         * 
268         * @return DependencyManagement
269         */
270        public DependencyManagement getDependencyManagement()
271        {
272            return this.dependencyManagement;
273        } //-- DependencyManagement getDependencyManagement()
274    
275        /**
276         * Get distribution information for a project that enables
277         * deployment of the site
278         *             and artifacts to remote web servers and
279         * repositories respectively.
280         * 
281         * @return DistributionManagement
282         */
283        public DistributionManagement getDistributionManagement()
284        {
285            return this.distributionManagement;
286        } //-- DistributionManagement getDistributionManagement()
287    
288        /**
289         * 
290         * 
291         * @param key
292         * @return InputLocation
293         */
294        public InputLocation getLocation( Object key )
295        {
296            return ( locations != null ) ? locations.get( key ) : null;
297        } //-- InputLocation getLocation( Object )
298    
299        /**
300         * Method getModules.
301         * 
302         * @return List
303         */
304        public java.util.List<String> getModules()
305        {
306            if ( this.modules == null )
307            {
308                this.modules = new java.util.ArrayList<String>();
309            }
310    
311            return this.modules;
312        } //-- java.util.List<String> getModules()
313    
314        /**
315         * Method getPluginRepositories.
316         * 
317         * @return List
318         */
319        public java.util.List<Repository> getPluginRepositories()
320        {
321            if ( this.pluginRepositories == null )
322            {
323                this.pluginRepositories = new java.util.ArrayList<Repository>();
324            }
325    
326            return this.pluginRepositories;
327        } //-- java.util.List<Repository> getPluginRepositories()
328    
329        /**
330         * Method getProperties.
331         * 
332         * @return Properties
333         */
334        public java.util.Properties getProperties()
335        {
336            if ( this.properties == null )
337            {
338                this.properties = new java.util.Properties();
339            }
340    
341            return this.properties;
342        } //-- java.util.Properties getProperties()
343    
344        /**
345         * Get this element includes the specification of report
346         * plugins to use
347         *             to generate the reports on the Maven-generated
348         * site.
349         *             These reports will be run when a user executes
350         * <code>mvn site</code>.
351         *             All of the reports will be included in the
352         * navigation bar for browsing.
353         * 
354         * @return Reporting
355         */
356        public Reporting getReporting()
357        {
358            return this.reporting;
359        } //-- Reporting getReporting()
360    
361        /**
362         * Get <b>Deprecated</b>. Now ignored by Maven.
363         * 
364         * @return Object
365         */
366        public Object getReports()
367        {
368            return this.reports;
369        } //-- Object getReports()
370    
371        /**
372         * Method getRepositories.
373         * 
374         * @return List
375         */
376        public java.util.List<Repository> getRepositories()
377        {
378            if ( this.repositories == null )
379            {
380                this.repositories = new java.util.ArrayList<Repository>();
381            }
382    
383            return this.repositories;
384        } //-- java.util.List<Repository> getRepositories()
385    
386        /**
387         * Method removeDependency.
388         * 
389         * @param dependency
390         */
391        public void removeDependency( Dependency dependency )
392        {
393            getDependencies().remove( dependency );
394        } //-- void removeDependency( Dependency )
395    
396        /**
397         * Method removeModule.
398         * 
399         * @param string
400         */
401        public void removeModule( String string )
402        {
403            getModules().remove( string );
404        } //-- void removeModule( String )
405    
406        /**
407         * Method removePluginRepository.
408         * 
409         * @param repository
410         */
411        public void removePluginRepository( Repository repository )
412        {
413            getPluginRepositories().remove( repository );
414        } //-- void removePluginRepository( Repository )
415    
416        /**
417         * Method removeRepository.
418         * 
419         * @param repository
420         */
421        public void removeRepository( Repository repository )
422        {
423            getRepositories().remove( repository );
424        } //-- void removeRepository( Repository )
425    
426        /**
427         * Set this element describes all of the dependencies
428         * associated with a
429         *             project.
430         *             These dependencies are used to construct a
431         * classpath for your
432         *             project during the build process. They are
433         * automatically downloaded from the
434         *             repositories defined in this project.
435         *             See <a
436         * href="http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html">the
437         *             dependency mechanism</a> for more information.
438         * 
439         * @param dependencies
440         */
441        public void setDependencies( java.util.List<Dependency> dependencies )
442        {
443            this.dependencies = dependencies;
444        } //-- void setDependencies( java.util.List )
445    
446        /**
447         * Set default dependency information for projects that inherit
448         * from this one. The
449         *             dependencies in this section are not immediately
450         * resolved. Instead, when a POM derived
451         *             from this one declares a dependency described by
452         * a matching groupId and artifactId, the
453         *             version and other values from this section are
454         * used for that dependency if they were not
455         *             already specified.
456         * 
457         * @param dependencyManagement
458         */
459        public void setDependencyManagement( DependencyManagement dependencyManagement )
460        {
461            this.dependencyManagement = dependencyManagement;
462        } //-- void setDependencyManagement( DependencyManagement )
463    
464        /**
465         * Set distribution information for a project that enables
466         * deployment of the site
467         *             and artifacts to remote web servers and
468         * repositories respectively.
469         * 
470         * @param distributionManagement
471         */
472        public void setDistributionManagement( DistributionManagement distributionManagement )
473        {
474            this.distributionManagement = distributionManagement;
475        } //-- void setDistributionManagement( DistributionManagement )
476    
477        /**
478         * 
479         * 
480         * @param key
481         * @param location
482         */
483        public void setLocation( Object key, InputLocation location )
484        {
485            if ( location != null )
486            {
487                if ( this.locations == null )
488                {
489                    this.locations = new java.util.LinkedHashMap<Object, InputLocation>();
490                }
491                this.locations.put( key, location );
492            }
493        } //-- void setLocation( Object, InputLocation )
494    
495        /**
496         * Set the modules (sometimes called subprojects) to build as a
497         * part of this
498         *             project. Each module listed is a relative path
499         * to the directory containing the module.
500         *             To be consistent with the way default urls are
501         * calculated from parent, it is recommended
502         *             to have module names match artifact ids.
503         * 
504         * @param modules
505         */
506        public void setModules( java.util.List<String> modules )
507        {
508            this.modules = modules;
509        } //-- void setModules( java.util.List )
510    
511        /**
512         * Set the lists of the remote repositories for discovering
513         * plugins for builds and
514         *             reports.
515         * 
516         * @param pluginRepositories
517         */
518        public void setPluginRepositories( java.util.List<Repository> pluginRepositories )
519        {
520            this.pluginRepositories = pluginRepositories;
521        } //-- void setPluginRepositories( java.util.List )
522    
523        /**
524         * Set properties that can be used throughout the POM as a
525         * substitution, and
526         *             are used as filters in resources if enabled.
527         *             The format is
528         * <code>&lt;name&gt;value&lt;/name&gt;</code>.
529         * 
530         * @param properties
531         */
532        public void setProperties( java.util.Properties properties )
533        {
534            this.properties = properties;
535        } //-- void setProperties( java.util.Properties )
536    
537        /**
538         * Set this element includes the specification of report
539         * plugins to use
540         *             to generate the reports on the Maven-generated
541         * site.
542         *             These reports will be run when a user executes
543         * <code>mvn site</code>.
544         *             All of the reports will be included in the
545         * navigation bar for browsing.
546         * 
547         * @param reporting
548         */
549        public void setReporting( Reporting reporting )
550        {
551            this.reporting = reporting;
552        } //-- void setReporting( Reporting )
553    
554        /**
555         * Set <b>Deprecated</b>. Now ignored by Maven.
556         * 
557         * @param reports
558         */
559        public void setReports( Object reports )
560        {
561            this.reports = reports;
562        } //-- void setReports( Object )
563    
564        /**
565         * Set the lists of the remote repositories for discovering
566         * dependencies and
567         *             extensions.
568         * 
569         * @param repositories
570         */
571        public void setRepositories( java.util.List<Repository> repositories )
572        {
573            this.repositories = repositories;
574        } //-- void setRepositories( java.util.List )
575    
576    }