001    // =================== DO NOT EDIT THIS FILE ====================
002    // Generated by Modello 1.7,
003    // any modifications will be overwritten.
004    // ==============================================================
005    
006    package org.apache.maven.model;
007    
008    /**
009     * 
010     *         
011     *         The <code>&lt;project&gt;</code> element is the root of
012     * the descriptor.
013     *         The following table lists all of the possible child
014     * elements.
015     *         
016     *       
017     * 
018     * @version $Revision$ $Date$
019     */
020    @SuppressWarnings( "all" )
021    public class Model
022        extends ModelBase
023        implements java.io.Serializable, java.lang.Cloneable
024    {
025    
026          //--------------------------/
027         //- Class/Member Variables -/
028        //--------------------------/
029    
030        /**
031         * Declares to which version of project descriptor this POM
032         * conforms.
033         */
034        private String modelVersion;
035    
036        /**
037         * The location of the parent project, if one exists. Values
038         * from the parent
039         *             project will be the default for this project if
040         * they are left unspecified. The location
041         *             is given as a group ID, artifact ID and version.
042         */
043        private Parent parent;
044    
045        /**
046         * 
047         *             
048         *             A universally unique identifier for a project.
049         * It is normal to
050         *             use a fully-qualified package name to
051         * distinguish it from other
052         *             projects with a similar name (eg.
053         * <code>org.apache.maven</code>).
054         *             
055         *           
056         */
057        private String groupId;
058    
059        /**
060         * The identifier for this artifact that is unique within the
061         * group given by the
062         *             group ID. An artifact is something that is
063         * either produced or used by a project.
064         *             Examples of artifacts produced by Maven for a
065         * project include: JARs, source and binary
066         *             distributions, and WARs.
067         */
068        private String artifactId;
069    
070        /**
071         * The current version of the artifact produced by this project.
072         */
073        private String version;
074    
075        /**
076         * 
077         *             
078         *             The type of artifact this project produces, for
079         * example <code>jar</code>
080         *               <code>war</code>
081         *               <code>ear</code>
082         *               <code>pom</code>.
083         *             Plugins can create their own packaging, and
084         *             therefore their own packaging types,
085         *             so this list does not contain all possible
086         * types.
087         *             
088         *           
089         */
090        private String packaging = "jar";
091    
092        /**
093         * The full name of the project.
094         */
095        private String name;
096    
097        /**
098         * A detailed description of the project, used by Maven
099         * 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
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         *             <br /><b>Default value is</b>: parent value [+
623         * path adjustment] + artifactId.
624         * 
625         * @return String
626         */
627        public String getUrl()
628        {
629            return this.url;
630        } //-- String getUrl()
631    
632        /**
633         * Get the current version of the artifact produced by this
634         * project.
635         * 
636         * @return String
637         */
638        public String getVersion()
639        {
640            return this.version;
641        } //-- String getVersion()
642    
643        /**
644         * Method removeContributor.
645         * 
646         * @param contributor
647         */
648        public void removeContributor( Contributor contributor )
649        {
650            getContributors().remove( contributor );
651        } //-- void removeContributor( Contributor )
652    
653        /**
654         * Method removeDeveloper.
655         * 
656         * @param developer
657         */
658        public void removeDeveloper( Developer developer )
659        {
660            getDevelopers().remove( developer );
661        } //-- void removeDeveloper( Developer )
662    
663        /**
664         * Method removeLicense.
665         * 
666         * @param license
667         */
668        public void removeLicense( License license )
669        {
670            getLicenses().remove( license );
671        } //-- void removeLicense( License )
672    
673        /**
674         * Method removeMailingList.
675         * 
676         * @param mailingList
677         */
678        public void removeMailingList( MailingList mailingList )
679        {
680            getMailingLists().remove( mailingList );
681        } //-- void removeMailingList( MailingList )
682    
683        /**
684         * Method removeProfile.
685         * 
686         * @param profile
687         */
688        public void removeProfile( Profile profile )
689        {
690            getProfiles().remove( profile );
691        } //-- void removeProfile( Profile )
692    
693        /**
694         * Set the identifier for this artifact that is unique within
695         * the group given by the
696         *             group ID. An artifact is something that is
697         * either produced or used by a project.
698         *             Examples of artifacts produced by Maven for a
699         * project include: JARs, source and binary
700         *             distributions, and WARs.
701         * 
702         * @param artifactId
703         */
704        public void setArtifactId( String artifactId )
705        {
706            this.artifactId = artifactId;
707        } //-- void setArtifactId( String )
708    
709        /**
710         * Set information required to build the project.
711         * 
712         * @param build
713         */
714        public void setBuild( Build build )
715        {
716            this.build = build;
717        } //-- void setBuild( Build )
718    
719        /**
720         * Set the project's continuous integration information.
721         * 
722         * @param ciManagement
723         */
724        public void setCiManagement( CiManagement ciManagement )
725        {
726            this.ciManagement = ciManagement;
727        } //-- void setCiManagement( CiManagement )
728    
729        /**
730         * Set describes the contributors to a project that are not yet
731         * committers.
732         * 
733         * @param contributors
734         */
735        public void setContributors( java.util.List<Contributor> contributors )
736        {
737            this.contributors = contributors;
738        } //-- void setContributors( java.util.List )
739    
740        /**
741         * Set a detailed description of the project, used by Maven
742         * whenever it needs to
743         *             describe the project, such as on the web site.
744         * While this element can be specified as
745         *             CDATA to enable the use of HTML tags within the
746         * description, it is discouraged to allow
747         *             plain text representation. If you need to modify
748         * the index page of the generated web
749         *             site, you are able to specify your own instead
750         * of adjusting this text.
751         * 
752         * @param description
753         */
754        public void setDescription( String description )
755        {
756            this.description = description;
757        } //-- void setDescription( String )
758    
759        /**
760         * Set describes the committers of a project.
761         * 
762         * @param developers
763         */
764        public void setDevelopers( java.util.List<Developer> developers )
765        {
766            this.developers = developers;
767        } //-- void setDevelopers( java.util.List )
768    
769        /**
770         * Set a universally unique identifier for a project. It is
771         * normal to
772         *             use a fully-qualified package name to
773         * distinguish it from other
774         *             projects with a similar name (eg.
775         * <code>org.apache.maven</code>).
776         * 
777         * @param groupId
778         */
779        public void setGroupId( String groupId )
780        {
781            this.groupId = groupId;
782        } //-- void setGroupId( String )
783    
784        /**
785         * Set the year of the project's inception, specified with 4
786         * digits. This value is
787         *             used when generating copyright notices as well
788         * as being informational.
789         * 
790         * @param inceptionYear
791         */
792        public void setInceptionYear( String inceptionYear )
793        {
794            this.inceptionYear = inceptionYear;
795        } //-- void setInceptionYear( String )
796    
797        /**
798         * Set the project's issue management system information.
799         * 
800         * @param issueManagement
801         */
802        public void setIssueManagement( IssueManagement issueManagement )
803        {
804            this.issueManagement = issueManagement;
805        } //-- void setIssueManagement( IssueManagement )
806    
807        /**
808         * Set this element describes all of the licenses for this
809         * project.
810         *             Each license is described by a
811         * <code>license</code> element, which
812         *             is then described by additional elements.
813         *             Projects should only list the license(s) that
814         * applies to the project
815         *             and not the licenses that apply to dependencies.
816         *             If multiple licenses are listed, it is assumed
817         * that the user can select
818         *             any of them, not that they must accept all.
819         * 
820         * @param licenses
821         */
822        public void setLicenses( java.util.List<License> licenses )
823        {
824            this.licenses = licenses;
825        } //-- void setLicenses( java.util.List )
826    
827        /**
828         * Set contains information about a project's mailing lists.
829         * 
830         * @param mailingLists
831         */
832        public void setMailingLists( java.util.List<MailingList> mailingLists )
833        {
834            this.mailingLists = mailingLists;
835        } //-- void setMailingLists( java.util.List )
836    
837        /**
838         * Set the modelEncoding field.
839         * 
840         * @param modelEncoding
841         */
842        public void setModelEncoding( String modelEncoding )
843        {
844            this.modelEncoding = modelEncoding;
845        } //-- void setModelEncoding( String )
846    
847        /**
848         * Set declares to which version of project descriptor this POM
849         * conforms.
850         * 
851         * @param modelVersion
852         */
853        public void setModelVersion( String modelVersion )
854        {
855            this.modelVersion = modelVersion;
856        } //-- void setModelVersion( String )
857    
858        /**
859         * Set the full name of the project.
860         * 
861         * @param name
862         */
863        public void setName( String name )
864        {
865            this.name = name;
866        } //-- void setName( String )
867    
868        /**
869         * Set this element describes various attributes of the
870         * organization to which the
871         *             project belongs. These attributes are utilized
872         * when documentation is created (for
873         *             copyright notices and links).
874         * 
875         * @param organization
876         */
877        public void setOrganization( Organization organization )
878        {
879            this.organization = organization;
880        } //-- void setOrganization( Organization )
881    
882        /**
883         * Set the type of artifact this project produces, for example
884         * <code>jar</code>
885         *               <code>war</code>
886         *               <code>ear</code>
887         *               <code>pom</code>.
888         *             Plugins can create their own packaging, and
889         *             therefore their own packaging types,
890         *             so this list does not contain all possible
891         * types.
892         * 
893         * @param packaging
894         */
895        public void setPackaging( String packaging )
896        {
897            this.packaging = packaging;
898        } //-- void setPackaging( String )
899    
900        /**
901         * Set the location of the parent project, if one exists.
902         * Values from the parent
903         *             project will be the default for this project if
904         * they are left unspecified. The location
905         *             is given as a group ID, artifact ID and version.
906         * 
907         * @param parent
908         */
909        public void setParent( Parent parent )
910        {
911            this.parent = parent;
912        } //-- void setParent( Parent )
913    
914        /**
915         * Set describes the prerequisites in the build environment for
916         * this project.
917         * 
918         * @param prerequisites
919         */
920        public void setPrerequisites( Prerequisites prerequisites )
921        {
922            this.prerequisites = prerequisites;
923        } //-- void setPrerequisites( Prerequisites )
924    
925        /**
926         * Set a listing of project-local build profiles which will
927         * modify the build process
928         *             when activated.
929         * 
930         * @param profiles
931         */
932        public void setProfiles( java.util.List<Profile> profiles )
933        {
934            this.profiles = profiles;
935        } //-- void setProfiles( java.util.List )
936    
937        /**
938         * Set specification for the SCM used by the project, such as
939         * CVS, Subversion, etc.
940         * 
941         * @param scm
942         */
943        public void setScm( Scm scm )
944        {
945            this.scm = scm;
946        } //-- void setScm( Scm )
947    
948        /**
949         * Set the URL to the project's homepage.
950         *             <br /><b>Default value is</b>: parent value [+
951         * path adjustment] + artifactId.
952         * 
953         * @param url
954         */
955        public void setUrl( String url )
956        {
957            this.url = url;
958        } //-- void setUrl( String )
959    
960        /**
961         * Set the current version of the artifact produced by this
962         * project.
963         * 
964         * @param version
965         */
966        public void setVersion( String version )
967        {
968            this.version = version;
969        } //-- void setVersion( String )
970    
971        
972                
973        private void cloneHook( Model copy )
974        {
975            copy.pomFile = pomFile;
976        }
977    
978        /**
979         * The POM from which this model originated. This is transient runtime state and therefore not managed by Modello.
980         */
981        private java.io.File pomFile;
982    
983        /**
984         * Gets the POM file for the corresponding project (if any).
985         *
986         * @return The POM file from which this model originated or {@code null} if this model does not belong to a local
987         *         project (e.g. describes the metadata of some artifact from the repository).
988         */
989        public java.io.File getPomFile()
990        {
991            return pomFile;
992        }
993    
994        public void setPomFile( java.io.File pomFile )
995        {
996            this.pomFile = ( pomFile != null ) ? pomFile.getAbsoluteFile() : null;
997        }
998    
999        /**
1000         * Gets the base directory for the corresponding project (if any).
1001         *
1002         * @return The base directory for the corresponding project or {@code null} if this model does not belong to a local
1003         *         project (e.g. describes the metadata of some artifact from the repository).
1004         */
1005        public java.io.File getProjectDirectory()
1006        {
1007            return ( pomFile != null ) ? pomFile.getParentFile() : null;
1008        }
1009    
1010        /**
1011         * @return the model id as <code>groupId:artifactId:packaging:version</code>
1012         */
1013        public String getId()
1014        {
1015            StringBuilder id = new StringBuilder( 64 );
1016    
1017            id.append( ( getGroupId() == null ) ? "[inherited]" : getGroupId() );
1018            id.append( ":" );
1019            id.append( getArtifactId() );
1020            id.append( ":" );
1021            id.append( getPackaging() );
1022            id.append( ":" );
1023            id.append( ( getVersion() == null ) ? "[inherited]" : getVersion() );
1024    
1025            return id.toString();
1026        }
1027    
1028        @Override
1029        public String toString()
1030        {
1031            return getId();
1032        }
1033                
1034              
1035    }