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 *         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" )
019public 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}