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><project></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 }