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     * Description of a person who has contributed to the project, but
012     * who does not have
013     *         commit privileges. Usually, these contributions come in
014     * the form of patches submitted.
015     * 
016     * @version $Revision$ $Date$
017     */
018    @SuppressWarnings( "all" )
019    public class Contributor
020        implements java.io.Serializable, java.lang.Cloneable, org.apache.maven.model.InputLocationTracker
021    {
022    
023          //--------------------------/
024         //- Class/Member Variables -/
025        //--------------------------/
026    
027        /**
028         * The full name of the contributor.
029         */
030        private String name;
031    
032        /**
033         * The email address of the contributor.
034         */
035        private String email;
036    
037        /**
038         * The URL for the homepage of the contributor.
039         */
040        private String url;
041    
042        /**
043         * The organization to which the contributor belongs.
044         */
045        private String organization;
046    
047        /**
048         * The URL of the organization.
049         */
050        private String organizationUrl;
051    
052        /**
053         * Field roles.
054         */
055        private java.util.List<String> roles;
056    
057        /**
058         * 
059         *             
060         *               The timezone the contributor is in. Typically,
061         * this is a number in the range
062         *               <a
063         * href="http://en.wikipedia.org/wiki/UTC%E2%88%9212:00">-12</a>
064         * to <a
065         * href="http://en.wikipedia.org/wiki/UTC%2B14:00">+14</a>
066         *               or a valid time zone id like
067         * "America/Montreal" (UTC-05:00) or "Europe/Paris"
068         * (UTC+01:00).
069         *             
070         *           
071         */
072        private String timezone;
073    
074        /**
075         * Field properties.
076         */
077        private java.util.Properties properties;
078    
079        /**
080         * Field locations.
081         */
082        private java.util.Map<Object, InputLocation> locations;
083    
084    
085          //-----------/
086         //- Methods -/
087        //-----------/
088    
089        /**
090         * Method addProperty.
091         * 
092         * @param key
093         * @param value
094         */
095        public void addProperty( String key, String value )
096        {
097            getProperties().put( key, value );
098        } //-- void addProperty( String, String )
099    
100        /**
101         * Method addRole.
102         * 
103         * @param string
104         */
105        public void addRole( String string )
106        {
107            getRoles().add( string );
108        } //-- void addRole( String )
109    
110        /**
111         * Method clone.
112         * 
113         * @return Contributor
114         */
115        public Contributor clone()
116        {
117            try
118            {
119                Contributor copy = (Contributor) super.clone();
120    
121                if ( this.roles != null )
122                {
123                    copy.roles = new java.util.ArrayList<String>();
124                    copy.roles.addAll( this.roles );
125                }
126    
127                if ( this.properties != null )
128                {
129                    copy.properties = (java.util.Properties) this.properties.clone();
130                }
131    
132                if ( copy.locations != null )
133                {
134                    copy.locations = new java.util.LinkedHashMap( copy.locations );
135                }
136    
137                return copy;
138            }
139            catch ( java.lang.Exception ex )
140            {
141                throw (java.lang.RuntimeException) new java.lang.UnsupportedOperationException( getClass().getName()
142                    + " does not support clone()" ).initCause( ex );
143            }
144        } //-- Contributor clone()
145    
146        /**
147         * Get the email address of the contributor.
148         * 
149         * @return String
150         */
151        public String getEmail()
152        {
153            return this.email;
154        } //-- String getEmail()
155    
156        /**
157         * 
158         * 
159         * @param key
160         * @return InputLocation
161         */
162        public InputLocation getLocation( Object key )
163        {
164            return ( locations != null ) ? locations.get( key ) : null;
165        } //-- InputLocation getLocation( Object )
166    
167        /**
168         * Get the full name of the contributor.
169         * 
170         * @return String
171         */
172        public String getName()
173        {
174            return this.name;
175        } //-- String getName()
176    
177        /**
178         * Get the organization to which the contributor belongs.
179         * 
180         * @return String
181         */
182        public String getOrganization()
183        {
184            return this.organization;
185        } //-- String getOrganization()
186    
187        /**
188         * Get the URL of the organization.
189         * 
190         * @return String
191         */
192        public String getOrganizationUrl()
193        {
194            return this.organizationUrl;
195        } //-- String getOrganizationUrl()
196    
197        /**
198         * Method getProperties.
199         * 
200         * @return Properties
201         */
202        public java.util.Properties getProperties()
203        {
204            if ( this.properties == null )
205            {
206                this.properties = new java.util.Properties();
207            }
208    
209            return this.properties;
210        } //-- java.util.Properties getProperties()
211    
212        /**
213         * Method getRoles.
214         * 
215         * @return List
216         */
217        public java.util.List<String> getRoles()
218        {
219            if ( this.roles == null )
220            {
221                this.roles = new java.util.ArrayList<String>();
222            }
223    
224            return this.roles;
225        } //-- java.util.List<String> getRoles()
226    
227        /**
228         * Get the timezone the contributor is in. Typically, this is a
229         * number in the range
230         *               <a
231         * href="http://en.wikipedia.org/wiki/UTC%E2%88%9212:00">-12</a>
232         * to <a
233         * href="http://en.wikipedia.org/wiki/UTC%2B14:00">+14</a>
234         *               or a valid time zone id like
235         * "America/Montreal" (UTC-05:00) or "Europe/Paris"
236         * (UTC+01:00).
237         * 
238         * @return String
239         */
240        public String getTimezone()
241        {
242            return this.timezone;
243        } //-- String getTimezone()
244    
245        /**
246         * Get the URL for the homepage of the contributor.
247         * 
248         * @return String
249         */
250        public String getUrl()
251        {
252            return this.url;
253        } //-- String getUrl()
254    
255        /**
256         * Method removeRole.
257         * 
258         * @param string
259         */
260        public void removeRole( String string )
261        {
262            getRoles().remove( string );
263        } //-- void removeRole( String )
264    
265        /**
266         * Set the email address of the contributor.
267         * 
268         * @param email
269         */
270        public void setEmail( String email )
271        {
272            this.email = email;
273        } //-- void setEmail( String )
274    
275        /**
276         * 
277         * 
278         * @param key
279         * @param location
280         */
281        public void setLocation( Object key, InputLocation location )
282        {
283            if ( location != null )
284            {
285                if ( this.locations == null )
286                {
287                    this.locations = new java.util.LinkedHashMap<Object, InputLocation>();
288                }
289                this.locations.put( key, location );
290            }
291        } //-- void setLocation( Object, InputLocation )
292    
293        /**
294         * Set the full name of the contributor.
295         * 
296         * @param name
297         */
298        public void setName( String name )
299        {
300            this.name = name;
301        } //-- void setName( String )
302    
303        /**
304         * Set the organization to which the contributor belongs.
305         * 
306         * @param organization
307         */
308        public void setOrganization( String organization )
309        {
310            this.organization = organization;
311        } //-- void setOrganization( String )
312    
313        /**
314         * Set the URL of the organization.
315         * 
316         * @param organizationUrl
317         */
318        public void setOrganizationUrl( String organizationUrl )
319        {
320            this.organizationUrl = organizationUrl;
321        } //-- void setOrganizationUrl( String )
322    
323        /**
324         * Set properties about the contributor, such as an instant
325         * messenger handle.
326         * 
327         * @param properties
328         */
329        public void setProperties( java.util.Properties properties )
330        {
331            this.properties = properties;
332        } //-- void setProperties( java.util.Properties )
333    
334        /**
335         * Set the roles the contributor plays in the project. Each
336         * role is described by a
337         *             <code>role</code> element, the body of which is
338         * a role name. This can also be used to
339         *             describe the contribution.
340         * 
341         * @param roles
342         */
343        public void setRoles( java.util.List<String> roles )
344        {
345            this.roles = roles;
346        } //-- void setRoles( java.util.List )
347    
348        /**
349         * Set the timezone the contributor is in. Typically, this is a
350         * number in the range
351         *               <a
352         * href="http://en.wikipedia.org/wiki/UTC%E2%88%9212:00">-12</a>
353         * to <a
354         * href="http://en.wikipedia.org/wiki/UTC%2B14:00">+14</a>
355         *               or a valid time zone id like
356         * "America/Montreal" (UTC-05:00) or "Europe/Paris"
357         * (UTC+01:00).
358         * 
359         * @param timezone
360         */
361        public void setTimezone( String timezone )
362        {
363            this.timezone = timezone;
364        } //-- void setTimezone( String )
365    
366        /**
367         * Set the URL for the homepage of the contributor.
368         * 
369         * @param url
370         */
371        public void setUrl( String url )
372        {
373            this.url = url;
374        } //-- void setUrl( String )
375    
376    }