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