View Javadoc

1   /*
2    =================== DO NOT EDIT THIS FILE ====================
3    Generated by Modello 1.0.1 on 2009-09-09 03:30:24,
4    any modifications will be overwritten.
5    ==============================================================
6    */
7   
8   package org.apache.maven.model;
9   
10  /**
11   * 
12   *         
13   *         The <code>&lt;project&gt;</code> element is the root of
14   * the descriptor.
15   *         The following table lists all of the possible child
16   * elements.
17   *         
18   *       
19   * 
20   * @version $Revision$ $Date$
21   */
22  public class Model
23      extends ModelBase
24      implements java.io.Serializable
25  {
26  
27        //--------------------------/
28       //- Class/Member Variables -/
29      //--------------------------/
30  
31      /**
32       * Declares to which version of project descriptor this POM
33       * conforms.
34       */
35      private String modelVersion;
36  
37      /**
38       * The location of the parent project, if one exists. Values
39       * from the parent
40       *             project will be the default for this project if
41       * they are left unspecified. The location
42       *             is given as a group ID, artifact ID and version.
43       */
44      private Parent parent;
45  
46      /**
47       * 
48       *             
49       *             A universally unique identifier for a project.
50       * It is normal to
51       *             use a fully-qualified package name to
52       * distinguish it from other
53       *             projects with a similar name (eg.
54       * <code>org.apache.maven</code>).
55       *             
56       *           
57       */
58      private String groupId;
59  
60      /**
61       * The identifier for this artifact that is unique within the
62       * group given by the
63       *             group ID. An artifact is something that is
64       * either produced or used by a project.
65       *             Examples of artifacts produced by Maven for a
66       * project include: JARs, source and binary
67       *             distributions, and WARs.
68       */
69      private String artifactId;
70  
71      /**
72       * The current version of the artifact produced by this project.
73       */
74      private String version;
75  
76      /**
77       * 
78       *             
79       *             The type of artifact this project produces, for
80       * example <code>jar</code>
81       *               <code>war</code>
82       *               <code>ear</code>
83       *               <code>pom</code>.
84       *             Plugins can create their own packaging, and
85       *             therefore their own packaging types,
86       *             so this list does not contain all possible
87       * types.
88       *             
89       *           
90       */
91      private String packaging = "jar";
92  
93      /**
94       * The full name of the project.
95       */
96      private String name;
97  
98      /**
99       * A detailed description of the project, used by Maven
100      * whenever it needs to
101      *             describe the project, such as on the web site.
102      * While this element can be specified as
103      *             CDATA to enable the use of HTML tags within the
104      * description, it is discouraged to allow
105      *             plain text representation. If you need to modify
106      * the index page of the generated web
107      *             site, you are able to specify your own instead
108      * of adjusting this text.
109      */
110     private String description;
111 
112     /**
113      * 
114      *             
115      *             The URL to the project's homepage.
116      *             
117      *           
118      */
119     private String url;
120 
121     /**
122      * The year of the project's inception, specified with 4
123      * digits. This value is
124      *             used when generating copyright notices as well
125      * as being informational.
126      */
127     private String inceptionYear;
128 
129     /**
130      * This element describes various attributes of the
131      * organization to which the
132      *             project belongs. These attributes are utilized
133      * when documentation is created (for
134      *             copyright notices and links).
135      */
136     private Organization organization;
137 
138     /**
139      * Field licenses.
140      */
141     private java.util.List<License> licenses;
142 
143     /**
144      * Field mailingLists.
145      */
146     private java.util.List<MailingList> mailingLists;
147 
148     /**
149      * Field developers.
150      */
151     private java.util.List<Developer> developers;
152 
153     /**
154      * Field contributors.
155      */
156     private java.util.List<Contributor> contributors;
157 
158     /**
159      * The project's issue management system information.
160      */
161     private IssueManagement issueManagement;
162 
163     /**
164      * Specification for the SCM used by the project, such as CVS,
165      * Subversion, etc.
166      */
167     private Scm scm;
168 
169     /**
170      * The project's continuous integration information.
171      */
172     private CiManagement ciManagement;
173 
174     /**
175      * Describes the prerequisites in the build environment for
176      * this project.
177      */
178     private Prerequisites prerequisites;
179 
180     /**
181      * Information required to build the project.
182      */
183     private Build build;
184 
185     /**
186      * Field profiles.
187      */
188     private java.util.List<Profile> profiles;
189 
190     /**
191      * Field modelEncoding.
192      */
193     private String modelEncoding = "UTF-8";
194 
195 
196       //-----------/
197      //- Methods -/
198     //-----------/
199 
200     /**
201      * Method addContributor.
202      * 
203      * @param contributor
204      */
205     public void addContributor( Contributor contributor )
206     {
207         if ( !(contributor instanceof Contributor) )
208         {
209             throw new ClassCastException( "Model.addContributors(contributor) parameter must be instanceof " + Contributor.class.getName() );
210         }
211         getContributors().add( contributor );
212     } //-- void addContributor( Contributor )
213 
214     /**
215      * Method addDeveloper.
216      * 
217      * @param developer
218      */
219     public void addDeveloper( Developer developer )
220     {
221         if ( !(developer instanceof Developer) )
222         {
223             throw new ClassCastException( "Model.addDevelopers(developer) parameter must be instanceof " + Developer.class.getName() );
224         }
225         getDevelopers().add( developer );
226     } //-- void addDeveloper( Developer )
227 
228     /**
229      * Method addLicense.
230      * 
231      * @param license
232      */
233     public void addLicense( License license )
234     {
235         if ( !(license instanceof License) )
236         {
237             throw new ClassCastException( "Model.addLicenses(license) parameter must be instanceof " + License.class.getName() );
238         }
239         getLicenses().add( license );
240     } //-- void addLicense( License )
241 
242     /**
243      * Method addMailingList.
244      * 
245      * @param mailingList
246      */
247     public void addMailingList( MailingList mailingList )
248     {
249         if ( !(mailingList instanceof MailingList) )
250         {
251             throw new ClassCastException( "Model.addMailingLists(mailingList) parameter must be instanceof " + MailingList.class.getName() );
252         }
253         getMailingLists().add( mailingList );
254     } //-- void addMailingList( MailingList )
255 
256     /**
257      * Method addProfile.
258      * 
259      * @param profile
260      */
261     public void addProfile( Profile profile )
262     {
263         if ( !(profile instanceof Profile) )
264         {
265             throw new ClassCastException( "Model.addProfiles(profile) parameter must be instanceof " + Profile.class.getName() );
266         }
267         getProfiles().add( profile );
268     } //-- void addProfile( Profile )
269 
270     /**
271      * Get the identifier for this artifact that is unique within
272      * the group given by the
273      *             group ID. An artifact is something that is
274      * either produced or used by a project.
275      *             Examples of artifacts produced by Maven for a
276      * project include: JARs, source and binary
277      *             distributions, and WARs.
278      * 
279      * @return String
280      */
281     public String getArtifactId()
282     {
283         return this.artifactId;
284     } //-- String getArtifactId()
285 
286     /**
287      * Get information required to build the project.
288      * 
289      * @return Build
290      */
291     public Build getBuild()
292     {
293         return this.build;
294     } //-- Build getBuild()
295 
296     /**
297      * Get the project's continuous integration information.
298      * 
299      * @return CiManagement
300      */
301     public CiManagement getCiManagement()
302     {
303         return this.ciManagement;
304     } //-- CiManagement getCiManagement()
305 
306     /**
307      * Method getContributors.
308      * 
309      * @return List
310      */
311     public java.util.List<Contributor> getContributors()
312     {
313         if ( this.contributors == null )
314         {
315             this.contributors = new java.util.ArrayList<Contributor>();
316         }
317 
318         return this.contributors;
319     } //-- java.util.List<Contributor> getContributors()
320 
321     /**
322      * Get a detailed description of the project, used by Maven
323      * whenever it needs to
324      *             describe the project, such as on the web site.
325      * While this element can be specified as
326      *             CDATA to enable the use of HTML tags within the
327      * description, it is discouraged to allow
328      *             plain text representation. If you need to modify
329      * the index page of the generated web
330      *             site, you are able to specify your own instead
331      * of adjusting this text.
332      * 
333      * @return String
334      */
335     public String getDescription()
336     {
337         return this.description;
338     } //-- String getDescription()
339 
340     /**
341      * Method getDevelopers.
342      * 
343      * @return List
344      */
345     public java.util.List<Developer> getDevelopers()
346     {
347         if ( this.developers == null )
348         {
349             this.developers = new java.util.ArrayList<Developer>();
350         }
351 
352         return this.developers;
353     } //-- java.util.List<Developer> getDevelopers()
354 
355     /**
356      * Get a universally unique identifier for a project. It is
357      * normal to
358      *             use a fully-qualified package name to
359      * distinguish it from other
360      *             projects with a similar name (eg.
361      * <code>org.apache.maven</code>).
362      * 
363      * @return String
364      */
365     public String getGroupId()
366     {
367         return this.groupId;
368     } //-- String getGroupId()
369 
370     /**
371      * Get the year of the project's inception, specified with 4
372      * digits. This value is
373      *             used when generating copyright notices as well
374      * as being informational.
375      * 
376      * @return String
377      */
378     public String getInceptionYear()
379     {
380         return this.inceptionYear;
381     } //-- String getInceptionYear()
382 
383     /**
384      * Get the project's issue management system information.
385      * 
386      * @return IssueManagement
387      */
388     public IssueManagement getIssueManagement()
389     {
390         return this.issueManagement;
391     } //-- IssueManagement getIssueManagement()
392 
393     /**
394      * Method getLicenses.
395      * 
396      * @return List
397      */
398     public java.util.List<License> getLicenses()
399     {
400         if ( this.licenses == null )
401         {
402             this.licenses = new java.util.ArrayList<License>();
403         }
404 
405         return this.licenses;
406     } //-- java.util.List<License> getLicenses()
407 
408     /**
409      * Method getMailingLists.
410      * 
411      * @return List
412      */
413     public java.util.List<MailingList> getMailingLists()
414     {
415         if ( this.mailingLists == null )
416         {
417             this.mailingLists = new java.util.ArrayList<MailingList>();
418         }
419 
420         return this.mailingLists;
421     } //-- java.util.List<MailingList> getMailingLists()
422 
423     /**
424      * Method getModelEncoding.
425      * 
426      * @return the current encoding used when reading/writing this
427      * model
428      */
429     public String getModelEncoding()
430     {
431         return modelEncoding;
432     } //-- String getModelEncoding()
433 
434     /**
435      * Get declares to which version of project descriptor this POM
436      * conforms.
437      * 
438      * @return String
439      */
440     public String getModelVersion()
441     {
442         return this.modelVersion;
443     } //-- String getModelVersion()
444 
445     /**
446      * Get the full name of the project.
447      * 
448      * @return String
449      */
450     public String getName()
451     {
452         return this.name;
453     } //-- String getName()
454 
455     /**
456      * Get this element describes various attributes of the
457      * organization to which the
458      *             project belongs. These attributes are utilized
459      * when documentation is created (for
460      *             copyright notices and links).
461      * 
462      * @return Organization
463      */
464     public Organization getOrganization()
465     {
466         return this.organization;
467     } //-- Organization getOrganization()
468 
469     /**
470      * Get the type of artifact this project produces, for example
471      * <code>jar</code>
472      *               <code>war</code>
473      *               <code>ear</code>
474      *               <code>pom</code>.
475      *             Plugins can create their own packaging, and
476      *             therefore their own packaging types,
477      *             so this list does not contain all possible
478      * types.
479      * 
480      * @return String
481      */
482     public String getPackaging()
483     {
484         return this.packaging;
485     } //-- String getPackaging()
486 
487     /**
488      * Get the location of the parent project, if one exists.
489      * Values from the parent
490      *             project will be the default for this project if
491      * they are left unspecified. The location
492      *             is given as a group ID, artifact ID and version.
493      * 
494      * @return Parent
495      */
496     public Parent getParent()
497     {
498         return this.parent;
499     } //-- Parent getParent()
500 
501     /**
502      * Get describes the prerequisites in the build environment for
503      * this project.
504      * 
505      * @return Prerequisites
506      */
507     public Prerequisites getPrerequisites()
508     {
509         return this.prerequisites;
510     } //-- Prerequisites getPrerequisites()
511 
512     /**
513      * Method getProfiles.
514      * 
515      * @return List
516      */
517     public java.util.List<Profile> getProfiles()
518     {
519         if ( this.profiles == null )
520         {
521             this.profiles = new java.util.ArrayList<Profile>();
522         }
523 
524         return this.profiles;
525     } //-- java.util.List<Profile> getProfiles()
526 
527     /**
528      * Get specification for the SCM used by the project, such as
529      * CVS, Subversion, etc.
530      * 
531      * @return Scm
532      */
533     public Scm getScm()
534     {
535         return this.scm;
536     } //-- Scm getScm()
537 
538     /**
539      * Get the URL to the project's homepage.
540      * 
541      * @return String
542      */
543     public String getUrl()
544     {
545         return this.url;
546     } //-- String getUrl()
547 
548     /**
549      * Get the current version of the artifact produced by this
550      * project.
551      * 
552      * @return String
553      */
554     public String getVersion()
555     {
556         return this.version;
557     } //-- String getVersion()
558 
559     /**
560      * Method removeContributor.
561      * 
562      * @param contributor
563      */
564     public void removeContributor( Contributor contributor )
565     {
566         if ( !(contributor instanceof Contributor) )
567         {
568             throw new ClassCastException( "Model.removeContributors(contributor) parameter must be instanceof " + Contributor.class.getName() );
569         }
570         getContributors().remove( contributor );
571     } //-- void removeContributor( Contributor )
572 
573     /**
574      * Method removeDeveloper.
575      * 
576      * @param developer
577      */
578     public void removeDeveloper( Developer developer )
579     {
580         if ( !(developer instanceof Developer) )
581         {
582             throw new ClassCastException( "Model.removeDevelopers(developer) parameter must be instanceof " + Developer.class.getName() );
583         }
584         getDevelopers().remove( developer );
585     } //-- void removeDeveloper( Developer )
586 
587     /**
588      * Method removeLicense.
589      * 
590      * @param license
591      */
592     public void removeLicense( License license )
593     {
594         if ( !(license instanceof License) )
595         {
596             throw new ClassCastException( "Model.removeLicenses(license) parameter must be instanceof " + License.class.getName() );
597         }
598         getLicenses().remove( license );
599     } //-- void removeLicense( License )
600 
601     /**
602      * Method removeMailingList.
603      * 
604      * @param mailingList
605      */
606     public void removeMailingList( MailingList mailingList )
607     {
608         if ( !(mailingList instanceof MailingList) )
609         {
610             throw new ClassCastException( "Model.removeMailingLists(mailingList) parameter must be instanceof " + MailingList.class.getName() );
611         }
612         getMailingLists().remove( mailingList );
613     } //-- void removeMailingList( MailingList )
614 
615     /**
616      * Method removeProfile.
617      * 
618      * @param profile
619      */
620     public void removeProfile( Profile profile )
621     {
622         if ( !(profile instanceof Profile) )
623         {
624             throw new ClassCastException( "Model.removeProfiles(profile) parameter must be instanceof " + Profile.class.getName() );
625         }
626         getProfiles().remove( profile );
627     } //-- void removeProfile( Profile )
628 
629     /**
630      * Set the identifier for this artifact that is unique within
631      * the group given by the
632      *             group ID. An artifact is something that is
633      * either produced or used by a project.
634      *             Examples of artifacts produced by Maven for a
635      * project include: JARs, source and binary
636      *             distributions, and WARs.
637      * 
638      * @param artifactId
639      */
640     public void setArtifactId( String artifactId )
641     {
642         this.artifactId = artifactId;
643     } //-- void setArtifactId( String )
644 
645     /**
646      * Set information required to build the project.
647      * 
648      * @param build
649      */
650     public void setBuild( Build build )
651     {
652         this.build = build;
653     } //-- void setBuild( Build )
654 
655     /**
656      * Set the project's continuous integration information.
657      * 
658      * @param ciManagement
659      */
660     public void setCiManagement( CiManagement ciManagement )
661     {
662         this.ciManagement = ciManagement;
663     } //-- void setCiManagement( CiManagement )
664 
665     /**
666      * Set describes the contributors to a project that are not yet
667      * committers.
668      * 
669      * @param contributors
670      */
671     public void setContributors( java.util.List<Contributor> contributors )
672     {
673         this.contributors = contributors;
674     } //-- void setContributors( java.util.List )
675 
676     /**
677      * Set a detailed description of the project, used by Maven
678      * whenever it needs to
679      *             describe the project, such as on the web site.
680      * While this element can be specified as
681      *             CDATA to enable the use of HTML tags within the
682      * description, it is discouraged to allow
683      *             plain text representation. If you need to modify
684      * the index page of the generated web
685      *             site, you are able to specify your own instead
686      * of adjusting this text.
687      * 
688      * @param description
689      */
690     public void setDescription( String description )
691     {
692         this.description = description;
693     } //-- void setDescription( String )
694 
695     /**
696      * Set describes the committers of a project.
697      * 
698      * @param developers
699      */
700     public void setDevelopers( java.util.List<Developer> developers )
701     {
702         this.developers = developers;
703     } //-- void setDevelopers( java.util.List )
704 
705     /**
706      * Set a universally unique identifier for a project. It is
707      * normal to
708      *             use a fully-qualified package name to
709      * distinguish it from other
710      *             projects with a similar name (eg.
711      * <code>org.apache.maven</code>).
712      * 
713      * @param groupId
714      */
715     public void setGroupId( String groupId )
716     {
717         this.groupId = groupId;
718     } //-- void setGroupId( String )
719 
720     /**
721      * Set the year of the project's inception, specified with 4
722      * digits. This value is
723      *             used when generating copyright notices as well
724      * as being informational.
725      * 
726      * @param inceptionYear
727      */
728     public void setInceptionYear( String inceptionYear )
729     {
730         this.inceptionYear = inceptionYear;
731     } //-- void setInceptionYear( String )
732 
733     /**
734      * Set the project's issue management system information.
735      * 
736      * @param issueManagement
737      */
738     public void setIssueManagement( IssueManagement issueManagement )
739     {
740         this.issueManagement = issueManagement;
741     } //-- void setIssueManagement( IssueManagement )
742 
743     /**
744      * Set this element describes all of the licenses for this
745      * project.
746      *             Each license is described by a
747      * <code>license</code> element, which
748      *             is then described by additional elements.
749      *             Projects should only list the license(s) that
750      * applies to the project
751      *             and not the licenses that apply to dependencies.
752      *             If multiple licenses are listed, it is assumed
753      * that the user can select
754      *             any of them, not that they must accept all.
755      * 
756      * @param licenses
757      */
758     public void setLicenses( java.util.List<License> licenses )
759     {
760         this.licenses = licenses;
761     } //-- void setLicenses( java.util.List )
762 
763     /**
764      * Set contains information about a project's mailing lists.
765      * 
766      * @param mailingLists
767      */
768     public void setMailingLists( java.util.List<MailingList> mailingLists )
769     {
770         this.mailingLists = mailingLists;
771     } //-- void setMailingLists( java.util.List )
772 
773     /**
774      * Set an encoding used for reading/writing the model.
775      * 
776      * @param modelEncoding
777      */
778     public void setModelEncoding( String modelEncoding )
779     {
780         this.modelEncoding = modelEncoding;
781     } //-- void setModelEncoding( String )
782 
783     /**
784      * Set declares to which version of project descriptor this POM
785      * conforms.
786      * 
787      * @param modelVersion
788      */
789     public void setModelVersion( String modelVersion )
790     {
791         this.modelVersion = modelVersion;
792     } //-- void setModelVersion( String )
793 
794     /**
795      * Set the full name of the project.
796      * 
797      * @param name
798      */
799     public void setName( String name )
800     {
801         this.name = name;
802     } //-- void setName( String )
803 
804     /**
805      * Set this element describes various attributes of the
806      * organization to which the
807      *             project belongs. These attributes are utilized
808      * when documentation is created (for
809      *             copyright notices and links).
810      * 
811      * @param organization
812      */
813     public void setOrganization( Organization organization )
814     {
815         this.organization = organization;
816     } //-- void setOrganization( Organization )
817 
818     /**
819      * Set the type of artifact this project produces, for example
820      * <code>jar</code>
821      *               <code>war</code>
822      *               <code>ear</code>
823      *               <code>pom</code>.
824      *             Plugins can create their own packaging, and
825      *             therefore their own packaging types,
826      *             so this list does not contain all possible
827      * types.
828      * 
829      * @param packaging
830      */
831     public void setPackaging( String packaging )
832     {
833         this.packaging = packaging;
834     } //-- void setPackaging( String )
835 
836     /**
837      * Set the location of the parent project, if one exists.
838      * Values from the parent
839      *             project will be the default for this project if
840      * they are left unspecified. The location
841      *             is given as a group ID, artifact ID and version.
842      * 
843      * @param parent
844      */
845     public void setParent( Parent parent )
846     {
847         this.parent = parent;
848     } //-- void setParent( Parent )
849 
850     /**
851      * Set describes the prerequisites in the build environment for
852      * this project.
853      * 
854      * @param prerequisites
855      */
856     public void setPrerequisites( Prerequisites prerequisites )
857     {
858         this.prerequisites = prerequisites;
859     } //-- void setPrerequisites( Prerequisites )
860 
861     /**
862      * Set a listing of project-local build profiles which will
863      * modify the build process
864      *             when activated.
865      * 
866      * @param profiles
867      */
868     public void setProfiles( java.util.List<Profile> profiles )
869     {
870         this.profiles = profiles;
871     } //-- void setProfiles( java.util.List )
872 
873     /**
874      * Set specification for the SCM used by the project, such as
875      * CVS, Subversion, etc.
876      * 
877      * @param scm
878      */
879     public void setScm( Scm scm )
880     {
881         this.scm = scm;
882     } //-- void setScm( Scm )
883 
884     /**
885      * Set the URL to the project's homepage.
886      * 
887      * @param url
888      */
889     public void setUrl( String url )
890     {
891         this.url = url;
892     } //-- void setUrl( String )
893 
894     /**
895      * Set the current version of the artifact produced by this
896      * project.
897      * 
898      * @param version
899      */
900     public void setVersion( String version )
901     {
902         this.version = version;
903     } //-- void setVersion( String )
904 
905 
906             
907     /**
908      * @return the model id as <code>groupId:artifactId:packaging:version</code>
909      */
910     public String getId()
911     {
912         StringBuffer id = new StringBuffer();
913 
914         id.append( getGroupId() );
915         id.append( ":" );
916         id.append( getArtifactId() );
917         id.append( ":" );
918         id.append( getPackaging() );
919         id.append( ":" );
920         id.append( getVersion() );
921 
922         return id.toString();
923     }
924             
925           
926 }