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