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 }