001 /*
002 =================== DO NOT EDIT THIS FILE ====================
003 Generated by Modello 1.4.1 on 2013-02-24 03:32:14,
004 any modifications will be overwritten.
005 ==============================================================
006 */
007
008 package org.apache.maven.model;
009
010 /**
011 *
012 *
013 * The <code><project></code> element is the root of
014 * the descriptor.
015 * The following table lists all of the possible child
016 * elements.
017 *
018 *
019 *
020 * @version $Revision$ $Date$
021 */
022 @SuppressWarnings( "all" )
023 public class Model
024 extends ModelBase
025 implements java.io.Serializable, java.lang.Cloneable
026 {
027
028 //--------------------------/
029 //- Class/Member Variables -/
030 //--------------------------/
031
032 /**
033 * Declares to which version of project descriptor this POM
034 * conforms.
035 */
036 private String modelVersion;
037
038 /**
039 * The location of the parent project, if one exists. Values
040 * from the parent
041 * project will be the default for this project if
042 * they are left unspecified. The location
043 * is given as a group ID, artifact ID and version.
044 */
045 private Parent parent;
046
047 /**
048 *
049 *
050 * A universally unique identifier for a project.
051 * It is normal to
052 * use a fully-qualified package name to
053 * distinguish it from other
054 * projects with a similar name (eg.
055 * <code>org.apache.maven</code>).
056 *
057 *
058 */
059 private String groupId;
060
061 /**
062 * The identifier for this artifact that is unique within the
063 * group given by the
064 * group ID. An artifact is something that is
065 * either produced or used by a project.
066 * Examples of artifacts produced by Maven for a
067 * project include: JARs, source and binary
068 * distributions, and WARs.
069 */
070 private String artifactId;
071
072 /**
073 * The current version of the artifact produced by this project.
074 */
075 private String version;
076
077 /**
078 *
079 *
080 * The type of artifact this project produces, for
081 * example <code>jar</code>
082 * <code>war</code>
083 * <code>ear</code>
084 * <code>pom</code>.
085 * Plugins can create their own packaging, and
086 * therefore their own packaging types,
087 * so this list does not contain all possible
088 * types.
089 *
090 *
091 */
092 private String packaging = "jar";
093
094 /**
095 * The full name of the project.
096 */
097 private String name;
098
099 /**
100 * A detailed description of the project, used by Maven
101 * whenever it needs to
102 * describe the project, such as on the web site.
103 * While this element can be specified as
104 * CDATA to enable the use of HTML tags within the
105 * description, it is discouraged to allow
106 * plain text representation. If you need to modify
107 * the index page of the generated web
108 * site, you are able to specify your own instead
109 * of adjusting this text.
110 */
111 private String description;
112
113 /**
114 *
115 *
116 * The URL to the project's homepage.
117 *
118 *
119 */
120 private String url;
121
122 /**
123 * The year of the project's inception, specified with 4
124 * digits. This value is
125 * used when generating copyright notices as well
126 * as being informational.
127 */
128 private String inceptionYear;
129
130 /**
131 * This element describes various attributes of the
132 * organization to which the
133 * project belongs. These attributes are utilized
134 * when documentation is created (for
135 * copyright notices and links).
136 */
137 private Organization organization;
138
139 /**
140 * Field licenses.
141 */
142 private java.util.List<License> licenses;
143
144 /**
145 * Field developers.
146 */
147 private java.util.List<Developer> developers;
148
149 /**
150 * Field contributors.
151 */
152 private java.util.List<Contributor> contributors;
153
154 /**
155 * Field mailingLists.
156 */
157 private java.util.List<MailingList> mailingLists;
158
159 /**
160 * Describes the prerequisites in the build environment for
161 * this project.
162 */
163 private Prerequisites prerequisites;
164
165 /**
166 * Specification for the SCM used by the project, such as CVS,
167 * Subversion, etc.
168 */
169 private Scm scm;
170
171 /**
172 * The project's issue management system information.
173 */
174 private IssueManagement issueManagement;
175
176 /**
177 * The project's continuous integration information.
178 */
179 private CiManagement ciManagement;
180
181 /**
182 * Information required to build the project.
183 */
184 private Build build;
185
186 /**
187 * Field profiles.
188 */
189 private java.util.List<Profile> profiles;
190
191 /**
192 * Field modelEncoding.
193 */
194 private String modelEncoding = "UTF-8";
195
196
197 //-----------/
198 //- Methods -/
199 //-----------/
200
201 /**
202 * Method addContributor.
203 *
204 * @param contributor
205 */
206 public void addContributor( Contributor contributor )
207 {
208 getContributors().add( contributor );
209 } //-- void addContributor( Contributor )
210
211 /**
212 * Method addDeveloper.
213 *
214 * @param developer
215 */
216 public void addDeveloper( Developer developer )
217 {
218 getDevelopers().add( developer );
219 } //-- void addDeveloper( Developer )
220
221 /**
222 * Method addLicense.
223 *
224 * @param license
225 */
226 public void addLicense( License license )
227 {
228 getLicenses().add( license );
229 } //-- void addLicense( License )
230
231 /**
232 * Method addMailingList.
233 *
234 * @param mailingList
235 */
236 public void addMailingList( MailingList mailingList )
237 {
238 getMailingLists().add( mailingList );
239 } //-- void addMailingList( MailingList )
240
241 /**
242 * Method addProfile.
243 *
244 * @param profile
245 */
246 public void addProfile( Profile profile )
247 {
248 getProfiles().add( profile );
249 } //-- void addProfile( Profile )
250
251 /**
252 * Method clone.
253 *
254 * @return Model
255 */
256 public Model clone()
257 {
258 try
259 {
260 Model copy = (Model) super.clone();
261
262 if ( this.parent != null )
263 {
264 copy.parent = (Parent) this.parent.clone();
265 }
266
267 if ( this.organization != null )
268 {
269 copy.organization = (Organization) this.organization.clone();
270 }
271
272 if ( this.licenses != null )
273 {
274 copy.licenses = new java.util.ArrayList<License>();
275 for ( License item : this.licenses )
276 {
277 copy.licenses.add( ( (License) item).clone() );
278 }
279 }
280
281 if ( this.developers != null )
282 {
283 copy.developers = new java.util.ArrayList<Developer>();
284 for ( Developer item : this.developers )
285 {
286 copy.developers.add( ( (Developer) item).clone() );
287 }
288 }
289
290 if ( this.contributors != null )
291 {
292 copy.contributors = new java.util.ArrayList<Contributor>();
293 for ( Contributor item : this.contributors )
294 {
295 copy.contributors.add( ( (Contributor) item).clone() );
296 }
297 }
298
299 if ( this.mailingLists != null )
300 {
301 copy.mailingLists = new java.util.ArrayList<MailingList>();
302 for ( MailingList item : this.mailingLists )
303 {
304 copy.mailingLists.add( ( (MailingList) item).clone() );
305 }
306 }
307
308 if ( this.prerequisites != null )
309 {
310 copy.prerequisites = (Prerequisites) this.prerequisites.clone();
311 }
312
313 if ( this.scm != null )
314 {
315 copy.scm = (Scm) this.scm.clone();
316 }
317
318 if ( this.issueManagement != null )
319 {
320 copy.issueManagement = (IssueManagement) this.issueManagement.clone();
321 }
322
323 if ( this.ciManagement != null )
324 {
325 copy.ciManagement = (CiManagement) this.ciManagement.clone();
326 }
327
328 if ( this.build != null )
329 {
330 copy.build = (Build) this.build.clone();
331 }
332
333 if ( this.profiles != null )
334 {
335 copy.profiles = new java.util.ArrayList<Profile>();
336 for ( Profile item : this.profiles )
337 {
338 copy.profiles.add( ( (Profile) item).clone() );
339 }
340 }
341
342 cloneHook( copy );
343
344 return copy;
345 }
346 catch ( java.lang.Exception ex )
347 {
348 throw (java.lang.RuntimeException) new java.lang.UnsupportedOperationException( getClass().getName()
349 + " does not support clone()" ).initCause( ex );
350 }
351 } //-- Model clone()
352
353 /**
354 * Get the identifier for this artifact that is unique within
355 * the group given by the
356 * group ID. An artifact is something that is
357 * either produced or used by a project.
358 * Examples of artifacts produced by Maven for a
359 * project include: JARs, source and binary
360 * distributions, and WARs.
361 *
362 * @return String
363 */
364 public String getArtifactId()
365 {
366 return this.artifactId;
367 } //-- String getArtifactId()
368
369 /**
370 * Get information required to build the project.
371 *
372 * @return Build
373 */
374 public Build getBuild()
375 {
376 return this.build;
377 } //-- Build getBuild()
378
379 /**
380 * Get the project's continuous integration information.
381 *
382 * @return CiManagement
383 */
384 public CiManagement getCiManagement()
385 {
386 return this.ciManagement;
387 } //-- CiManagement getCiManagement()
388
389 /**
390 * Method getContributors.
391 *
392 * @return List
393 */
394 public java.util.List<Contributor> getContributors()
395 {
396 if ( this.contributors == null )
397 {
398 this.contributors = new java.util.ArrayList<Contributor>();
399 }
400
401 return this.contributors;
402 } //-- java.util.List<Contributor> getContributors()
403
404 /**
405 * Get a detailed description of the project, used by Maven
406 * whenever it needs to
407 * describe the project, such as on the web site.
408 * While this element can be specified as
409 * CDATA to enable the use of HTML tags within the
410 * description, it is discouraged to allow
411 * plain text representation. If you need to modify
412 * the index page of the generated web
413 * site, you are able to specify your own instead
414 * of adjusting this text.
415 *
416 * @return String
417 */
418 public String getDescription()
419 {
420 return this.description;
421 } //-- String getDescription()
422
423 /**
424 * Method getDevelopers.
425 *
426 * @return List
427 */
428 public java.util.List<Developer> getDevelopers()
429 {
430 if ( this.developers == null )
431 {
432 this.developers = new java.util.ArrayList<Developer>();
433 }
434
435 return this.developers;
436 } //-- java.util.List<Developer> getDevelopers()
437
438 /**
439 * Get a universally unique identifier for a project. It is
440 * normal to
441 * use a fully-qualified package name to
442 * distinguish it from other
443 * projects with a similar name (eg.
444 * <code>org.apache.maven</code>).
445 *
446 * @return String
447 */
448 public String getGroupId()
449 {
450 return this.groupId;
451 } //-- String getGroupId()
452
453 /**
454 * Get the year of the project's inception, specified with 4
455 * digits. This value is
456 * used when generating copyright notices as well
457 * as being informational.
458 *
459 * @return String
460 */
461 public String getInceptionYear()
462 {
463 return this.inceptionYear;
464 } //-- String getInceptionYear()
465
466 /**
467 * Get the project's issue management system information.
468 *
469 * @return IssueManagement
470 */
471 public IssueManagement getIssueManagement()
472 {
473 return this.issueManagement;
474 } //-- IssueManagement getIssueManagement()
475
476 /**
477 * Method getLicenses.
478 *
479 * @return List
480 */
481 public java.util.List<License> getLicenses()
482 {
483 if ( this.licenses == null )
484 {
485 this.licenses = new java.util.ArrayList<License>();
486 }
487
488 return this.licenses;
489 } //-- java.util.List<License> getLicenses()
490
491 /**
492 * Method getMailingLists.
493 *
494 * @return List
495 */
496 public java.util.List<MailingList> getMailingLists()
497 {
498 if ( this.mailingLists == null )
499 {
500 this.mailingLists = new java.util.ArrayList<MailingList>();
501 }
502
503 return this.mailingLists;
504 } //-- java.util.List<MailingList> getMailingLists()
505
506 /**
507 * Get the modelEncoding field.
508 *
509 * @return String
510 */
511 public String getModelEncoding()
512 {
513 return this.modelEncoding;
514 } //-- String getModelEncoding()
515
516 /**
517 * Get declares to which version of project descriptor this POM
518 * conforms.
519 *
520 * @return String
521 */
522 public String getModelVersion()
523 {
524 return this.modelVersion;
525 } //-- String getModelVersion()
526
527 /**
528 * Get the full name of the project.
529 *
530 * @return String
531 */
532 public String getName()
533 {
534 return this.name;
535 } //-- String getName()
536
537 /**
538 * Get this element describes various attributes of the
539 * organization to which the
540 * project belongs. These attributes are utilized
541 * when documentation is created (for
542 * copyright notices and links).
543 *
544 * @return Organization
545 */
546 public Organization getOrganization()
547 {
548 return this.organization;
549 } //-- Organization getOrganization()
550
551 /**
552 * Get the type of artifact this project produces, for example
553 * <code>jar</code>
554 * <code>war</code>
555 * <code>ear</code>
556 * <code>pom</code>.
557 * Plugins can create their own packaging, and
558 * therefore their own packaging types,
559 * so this list does not contain all possible
560 * types.
561 *
562 * @return String
563 */
564 public String getPackaging()
565 {
566 return this.packaging;
567 } //-- String getPackaging()
568
569 /**
570 * Get the location of the parent project, if one exists.
571 * Values from the parent
572 * project will be the default for this project if
573 * they are left unspecified. The location
574 * is given as a group ID, artifact ID and version.
575 *
576 * @return Parent
577 */
578 public Parent getParent()
579 {
580 return this.parent;
581 } //-- Parent getParent()
582
583 /**
584 * Get describes the prerequisites in the build environment for
585 * this project.
586 *
587 * @return Prerequisites
588 */
589 public Prerequisites getPrerequisites()
590 {
591 return this.prerequisites;
592 } //-- Prerequisites getPrerequisites()
593
594 /**
595 * Method getProfiles.
596 *
597 * @return List
598 */
599 public java.util.List<Profile> getProfiles()
600 {
601 if ( this.profiles == null )
602 {
603 this.profiles = new java.util.ArrayList<Profile>();
604 }
605
606 return this.profiles;
607 } //-- java.util.List<Profile> getProfiles()
608
609 /**
610 * Get specification for the SCM used by the project, such as
611 * CVS, Subversion, etc.
612 *
613 * @return Scm
614 */
615 public Scm getScm()
616 {
617 return this.scm;
618 } //-- Scm getScm()
619
620 /**
621 * Get the URL to the project's homepage.
622 *
623 * @return String
624 */
625 public String getUrl()
626 {
627 return this.url;
628 } //-- String getUrl()
629
630 /**
631 * Get the current version of the artifact produced by this
632 * project.
633 *
634 * @return String
635 */
636 public String getVersion()
637 {
638 return this.version;
639 } //-- String getVersion()
640
641 /**
642 * Method removeContributor.
643 *
644 * @param contributor
645 */
646 public void removeContributor( Contributor contributor )
647 {
648 getContributors().remove( contributor );
649 } //-- void removeContributor( Contributor )
650
651 /**
652 * Method removeDeveloper.
653 *
654 * @param developer
655 */
656 public void removeDeveloper( Developer developer )
657 {
658 getDevelopers().remove( developer );
659 } //-- void removeDeveloper( Developer )
660
661 /**
662 * Method removeLicense.
663 *
664 * @param license
665 */
666 public void removeLicense( License license )
667 {
668 getLicenses().remove( license );
669 } //-- void removeLicense( License )
670
671 /**
672 * Method removeMailingList.
673 *
674 * @param mailingList
675 */
676 public void removeMailingList( MailingList mailingList )
677 {
678 getMailingLists().remove( mailingList );
679 } //-- void removeMailingList( MailingList )
680
681 /**
682 * Method removeProfile.
683 *
684 * @param profile
685 */
686 public void removeProfile( Profile profile )
687 {
688 getProfiles().remove( profile );
689 } //-- void removeProfile( Profile )
690
691 /**
692 * Set the identifier for this artifact that is unique within
693 * the group given by the
694 * group ID. An artifact is something that is
695 * either produced or used by a project.
696 * Examples of artifacts produced by Maven for a
697 * project include: JARs, source and binary
698 * distributions, and WARs.
699 *
700 * @param artifactId
701 */
702 public void setArtifactId( String artifactId )
703 {
704 this.artifactId = artifactId;
705 } //-- void setArtifactId( String )
706
707 /**
708 * Set information required to build the project.
709 *
710 * @param build
711 */
712 public void setBuild( Build build )
713 {
714 this.build = build;
715 } //-- void setBuild( Build )
716
717 /**
718 * Set the project's continuous integration information.
719 *
720 * @param ciManagement
721 */
722 public void setCiManagement( CiManagement ciManagement )
723 {
724 this.ciManagement = ciManagement;
725 } //-- void setCiManagement( CiManagement )
726
727 /**
728 * Set describes the contributors to a project that are not yet
729 * committers.
730 *
731 * @param contributors
732 */
733 public void setContributors( java.util.List<Contributor> contributors )
734 {
735 this.contributors = contributors;
736 } //-- void setContributors( java.util.List )
737
738 /**
739 * Set a detailed description of the project, used by Maven
740 * whenever it needs to
741 * describe the project, such as on the web site.
742 * While this element can be specified as
743 * CDATA to enable the use of HTML tags within the
744 * description, it is discouraged to allow
745 * plain text representation. If you need to modify
746 * the index page of the generated web
747 * site, you are able to specify your own instead
748 * of adjusting this text.
749 *
750 * @param description
751 */
752 public void setDescription( String description )
753 {
754 this.description = description;
755 } //-- void setDescription( String )
756
757 /**
758 * Set describes the committers of a project.
759 *
760 * @param developers
761 */
762 public void setDevelopers( java.util.List<Developer> developers )
763 {
764 this.developers = developers;
765 } //-- void setDevelopers( java.util.List )
766
767 /**
768 * Set a universally unique identifier for a project. It is
769 * normal to
770 * use a fully-qualified package name to
771 * distinguish it from other
772 * projects with a similar name (eg.
773 * <code>org.apache.maven</code>).
774 *
775 * @param groupId
776 */
777 public void setGroupId( String groupId )
778 {
779 this.groupId = groupId;
780 } //-- void setGroupId( String )
781
782 /**
783 * Set the year of the project's inception, specified with 4
784 * digits. This value is
785 * used when generating copyright notices as well
786 * as being informational.
787 *
788 * @param inceptionYear
789 */
790 public void setInceptionYear( String inceptionYear )
791 {
792 this.inceptionYear = inceptionYear;
793 } //-- void setInceptionYear( String )
794
795 /**
796 * Set the project's issue management system information.
797 *
798 * @param issueManagement
799 */
800 public void setIssueManagement( IssueManagement issueManagement )
801 {
802 this.issueManagement = issueManagement;
803 } //-- void setIssueManagement( IssueManagement )
804
805 /**
806 * Set this element describes all of the licenses for this
807 * project.
808 * Each license is described by a
809 * <code>license</code> element, which
810 * is then described by additional elements.
811 * Projects should only list the license(s) that
812 * applies to the project
813 * and not the licenses that apply to dependencies.
814 * If multiple licenses are listed, it is assumed
815 * that the user can select
816 * any of them, not that they must accept all.
817 *
818 * @param licenses
819 */
820 public void setLicenses( java.util.List<License> licenses )
821 {
822 this.licenses = licenses;
823 } //-- void setLicenses( java.util.List )
824
825 /**
826 * Set contains information about a project's mailing lists.
827 *
828 * @param mailingLists
829 */
830 public void setMailingLists( java.util.List<MailingList> mailingLists )
831 {
832 this.mailingLists = mailingLists;
833 } //-- void setMailingLists( java.util.List )
834
835 /**
836 * Set the modelEncoding field.
837 *
838 * @param modelEncoding
839 */
840 public void setModelEncoding( String modelEncoding )
841 {
842 this.modelEncoding = modelEncoding;
843 } //-- void setModelEncoding( String )
844
845 /**
846 * Set declares to which version of project descriptor this POM
847 * conforms.
848 *
849 * @param modelVersion
850 */
851 public void setModelVersion( String modelVersion )
852 {
853 this.modelVersion = modelVersion;
854 } //-- void setModelVersion( String )
855
856 /**
857 * Set the full name of the project.
858 *
859 * @param name
860 */
861 public void setName( String name )
862 {
863 this.name = name;
864 } //-- void setName( String )
865
866 /**
867 * Set this element describes various attributes of the
868 * organization to which the
869 * project belongs. These attributes are utilized
870 * when documentation is created (for
871 * copyright notices and links).
872 *
873 * @param organization
874 */
875 public void setOrganization( Organization organization )
876 {
877 this.organization = organization;
878 } //-- void setOrganization( Organization )
879
880 /**
881 * Set the type of artifact this project produces, for example
882 * <code>jar</code>
883 * <code>war</code>
884 * <code>ear</code>
885 * <code>pom</code>.
886 * Plugins can create their own packaging, and
887 * therefore their own packaging types,
888 * so this list does not contain all possible
889 * types.
890 *
891 * @param packaging
892 */
893 public void setPackaging( String packaging )
894 {
895 this.packaging = packaging;
896 } //-- void setPackaging( String )
897
898 /**
899 * Set the location of the parent project, if one exists.
900 * Values from the parent
901 * project will be the default for this project if
902 * they are left unspecified. The location
903 * is given as a group ID, artifact ID and version.
904 *
905 * @param parent
906 */
907 public void setParent( Parent parent )
908 {
909 this.parent = parent;
910 } //-- void setParent( Parent )
911
912 /**
913 * Set describes the prerequisites in the build environment for
914 * this project.
915 *
916 * @param prerequisites
917 */
918 public void setPrerequisites( Prerequisites prerequisites )
919 {
920 this.prerequisites = prerequisites;
921 } //-- void setPrerequisites( Prerequisites )
922
923 /**
924 * Set a listing of project-local build profiles which will
925 * modify the build process
926 * when activated.
927 *
928 * @param profiles
929 */
930 public void setProfiles( java.util.List<Profile> profiles )
931 {
932 this.profiles = profiles;
933 } //-- void setProfiles( java.util.List )
934
935 /**
936 * Set specification for the SCM used by the project, such as
937 * CVS, Subversion, etc.
938 *
939 * @param scm
940 */
941 public void setScm( Scm scm )
942 {
943 this.scm = scm;
944 } //-- void setScm( Scm )
945
946 /**
947 * Set the URL to the project's homepage.
948 *
949 * @param url
950 */
951 public void setUrl( String url )
952 {
953 this.url = url;
954 } //-- void setUrl( String )
955
956 /**
957 * Set the current version of the artifact produced by this
958 * project.
959 *
960 * @param version
961 */
962 public void setVersion( String version )
963 {
964 this.version = version;
965 } //-- void setVersion( String )
966
967
968
969 private void cloneHook( Model copy )
970 {
971 copy.pomFile = pomFile;
972 }
973
974 /**
975 * The POM from which this model originated. This is transient runtime state and therefore not managed by Modello.
976 */
977 private java.io.File pomFile;
978
979 /**
980 * Gets the POM file for the corresponding project (if any).
981 *
982 * @return The POM file from which this model originated or {@code null} if this model does not belong to a local
983 * project (e.g. describes the metadata of some artifact from the repository).
984 */
985 public java.io.File getPomFile()
986 {
987 return pomFile;
988 }
989
990 public void setPomFile( java.io.File pomFile )
991 {
992 this.pomFile = ( pomFile != null ) ? pomFile.getAbsoluteFile() : null;
993 }
994
995 /**
996 * Gets the base directory for the corresponding project (if any).
997 *
998 * @return The base directory for the corresponding project or {@code null} if this model does not belong to a local
999 * project (e.g. describes the metadata of some artifact from the repository).
1000 */
1001 public java.io.File getProjectDirectory()
1002 {
1003 return ( pomFile != null ) ? pomFile.getParentFile() : null;
1004 }
1005
1006 /**
1007 * @return the model id as <code>groupId:artifactId:packaging:version</code>
1008 */
1009 public String getId()
1010 {
1011 StringBuilder id = new StringBuilder( 64 );
1012
1013 id.append( ( getGroupId() == null ) ? "[inherited]" : getGroupId() );
1014 id.append( ":" );
1015 id.append( getArtifactId() );
1016 id.append( ":" );
1017 id.append( getPackaging() );
1018 id.append( ":" );
1019 id.append( ( getVersion() == null ) ? "[inherited]" : getVersion() );
1020
1021 return id.toString();
1022 }
1023
1024 @Override
1025 public String toString()
1026 {
1027 return getId();
1028 }
1029
1030
1031 }