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.settings;
007    
008    /**
009     * 
010     *         
011     *         Modifications to the build process which is keyed on
012     * some
013     *         sort of environmental parameter.
014     *         
015     *       
016     * 
017     * @version $Revision$ $Date$
018     */
019    @SuppressWarnings( "all" )
020    public class Profile
021        extends IdentifiableBase
022        implements java.io.Serializable, java.lang.Cloneable
023    {
024    
025          //--------------------------/
026         //- Class/Member Variables -/
027        //--------------------------/
028    
029        /**
030         * 
031         *             
032         *             The conditional logic which will automatically
033         *             trigger the inclusion of this profile.
034         *             
035         *           
036         */
037        private Activation activation;
038    
039        /**
040         * Field properties.
041         */
042        private java.util.Properties properties;
043    
044        /**
045         * Field repositories.
046         */
047        private java.util.List<Repository> repositories;
048    
049        /**
050         * 
051         *             
052         *             This may be removed or relocated in the near
053         *             future. It is undecided whether plugins really
054         * need a remote
055         *             repository set of their own.
056         *             
057         *           
058         */
059        private java.util.List<Repository> pluginRepositories;
060    
061    
062          //-----------/
063         //- Methods -/
064        //-----------/
065    
066        /**
067         * Method addPluginRepository.
068         * 
069         * @param repository
070         */
071        public void addPluginRepository( Repository repository )
072        {
073            getPluginRepositories().add( repository );
074        } //-- void addPluginRepository( Repository )
075    
076        /**
077         * Method addProperty.
078         * 
079         * @param key
080         * @param value
081         */
082        public void addProperty( String key, String value )
083        {
084            getProperties().put( key, value );
085        } //-- void addProperty( String, String )
086    
087        /**
088         * Method addRepository.
089         * 
090         * @param repository
091         */
092        public void addRepository( Repository repository )
093        {
094            getRepositories().add( repository );
095        } //-- void addRepository( Repository )
096    
097        /**
098         * Method clone.
099         * 
100         * @return Profile
101         */
102        public Profile clone()
103        {
104            try
105            {
106                Profile copy = (Profile) super.clone();
107    
108                if ( this.activation != null )
109                {
110                    copy.activation = (Activation) this.activation.clone();
111                }
112    
113                if ( this.properties != null )
114                {
115                    copy.properties = (java.util.Properties) this.properties.clone();
116                }
117    
118                if ( this.repositories != null )
119                {
120                    copy.repositories = new java.util.ArrayList<Repository>();
121                    for ( Repository item : this.repositories )
122                    {
123                        copy.repositories.add( ( (Repository) item).clone() );
124                    }
125                }
126    
127                if ( this.pluginRepositories != null )
128                {
129                    copy.pluginRepositories = new java.util.ArrayList<Repository>();
130                    for ( Repository item : this.pluginRepositories )
131                    {
132                        copy.pluginRepositories.add( ( (Repository) item).clone() );
133                    }
134                }
135    
136                return copy;
137            }
138            catch ( java.lang.Exception ex )
139            {
140                throw (java.lang.RuntimeException) new java.lang.UnsupportedOperationException( getClass().getName()
141                    + " does not support clone()" ).initCause( ex );
142            }
143        } //-- Profile clone()
144    
145        /**
146         * Get the conditional logic which will automatically
147         *             trigger the inclusion of this profile.
148         * 
149         * @return Activation
150         */
151        public Activation getActivation()
152        {
153            return this.activation;
154        } //-- Activation getActivation()
155    
156        /**
157         * Method getPluginRepositories.
158         * 
159         * @return List
160         */
161        public java.util.List<Repository> getPluginRepositories()
162        {
163            if ( this.pluginRepositories == null )
164            {
165                this.pluginRepositories = new java.util.ArrayList<Repository>();
166            }
167    
168            return this.pluginRepositories;
169        } //-- java.util.List<Repository> getPluginRepositories()
170    
171        /**
172         * Method getProperties.
173         * 
174         * @return Properties
175         */
176        public java.util.Properties getProperties()
177        {
178            if ( this.properties == null )
179            {
180                this.properties = new java.util.Properties();
181            }
182    
183            return this.properties;
184        } //-- java.util.Properties getProperties()
185    
186        /**
187         * Method getRepositories.
188         * 
189         * @return List
190         */
191        public java.util.List<Repository> getRepositories()
192        {
193            if ( this.repositories == null )
194            {
195                this.repositories = new java.util.ArrayList<Repository>();
196            }
197    
198            return this.repositories;
199        } //-- java.util.List<Repository> getRepositories()
200    
201        /**
202         * Method removePluginRepository.
203         * 
204         * @param repository
205         */
206        public void removePluginRepository( Repository repository )
207        {
208            getPluginRepositories().remove( repository );
209        } //-- void removePluginRepository( Repository )
210    
211        /**
212         * Method removeRepository.
213         * 
214         * @param repository
215         */
216        public void removeRepository( Repository repository )
217        {
218            getRepositories().remove( repository );
219        } //-- void removeRepository( Repository )
220    
221        /**
222         * Set the conditional logic which will automatically
223         *             trigger the inclusion of this profile.
224         * 
225         * @param activation
226         */
227        public void setActivation( Activation activation )
228        {
229            this.activation = activation;
230        } //-- void setActivation( Activation )
231    
232        /**
233         * Set the lists of the remote repositories for discovering
234         * plugins.
235         * 
236         * @param pluginRepositories
237         */
238        public void setPluginRepositories( java.util.List<Repository> pluginRepositories )
239        {
240            this.pluginRepositories = pluginRepositories;
241        } //-- void setPluginRepositories( java.util.List )
242    
243        /**
244         * Set extended configuration specific to this profile goes
245         * here.
246         *             Contents take the form of
247         *            
248         * <code>&lt;property.name&gt;property.value&lt;/property.name&gt;</code>
249         * 
250         * @param properties
251         */
252        public void setProperties( java.util.Properties properties )
253        {
254            this.properties = properties;
255        } //-- void setProperties( java.util.Properties )
256    
257        /**
258         * Set the lists of the remote repositories.
259         * 
260         * @param repositories
261         */
262        public void setRepositories( java.util.List<Repository> repositories )
263        {
264            this.repositories = repositories;
265        } //-- void setRepositories( java.util.List )
266    
267    }