001 /* 002 =================== DO NOT EDIT THIS FILE ==================== 003 Generated by Modello 1.4.1 on 2012-01-20 18:09:18, 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 }