View Javadoc

1   /*
2    * $Id$
3    */
4   
5   package org.apache.maven.settings;
6   
7     //---------------------------------/
8    //- Imported classes and packages -/
9   //---------------------------------/
10  
11  import java.util.Date;
12  
13  /**
14   * 
15   *         
16   *         Modifications to the build process which is keyed on
17   * some
18   *         sort of environmental parameter.
19   *         
20   *       
21   * 
22   * @version $Revision$ $Date$
23   */
24  public class Profile extends IdentifiableBase 
25  implements java.io.Serializable
26  {
27  
28  
29        //--------------------------/
30       //- Class/Member Variables -/
31      //--------------------------/
32  
33      /**
34       * 
35       *             
36       *             The conditional logic which will automatically
37       *             trigger the inclusion of this profile.
38       *             
39       *           
40       */
41      private Activation activation;
42  
43      /**
44       * Field properties.
45       */
46      private java.util.Properties properties;
47  
48      /**
49       * Field repositories.
50       */
51      private java.util.List repositories;
52  
53      /**
54       * 
55       *             
56       *             This may be removed or relocated in the near
57       *             future. It is undecided whether plugins really
58       * need a remote
59       *             repository set of their own.
60       *             
61       *           
62       */
63      private java.util.List pluginRepositories;
64  
65  
66        //-----------/
67       //- Methods -/
68      //-----------/
69  
70      /**
71       * Method addPluginRepository.
72       * 
73       * @param repository
74       */
75      public void addPluginRepository( Repository repository )
76      {
77          if ( !(repository instanceof Repository) )
78          {
79              throw new ClassCastException( "Profile.addPluginRepositories(repository) parameter must be instanceof " + Repository.class.getName() );
80          }
81          getPluginRepositories().add( repository );
82      } //-- void addPluginRepository( Repository ) 
83  
84      /**
85       * Method addProperty.
86       * 
87       * @param key
88       * @param value
89       */
90      public void addProperty( String key, String value )
91      {
92          getProperties().put( key, value );
93      } //-- void addProperty( String, String ) 
94  
95      /**
96       * Method addRepository.
97       * 
98       * @param repository
99       */
100     public void addRepository( Repository repository )
101     {
102         if ( !(repository instanceof Repository) )
103         {
104             throw new ClassCastException( "Profile.addRepositories(repository) parameter must be instanceof " + Repository.class.getName() );
105         }
106         getRepositories().add( repository );
107     } //-- void addRepository( Repository ) 
108 
109     /**
110      * Get 
111      *             
112      *             The conditional logic which will automatically
113      *             trigger the inclusion of this profile.
114      *             
115      *           
116      * 
117      * @return Activation
118      */
119     public Activation getActivation()
120     {
121         return this.activation;
122     } //-- Activation getActivation() 
123 
124     /**
125      * Method getPluginRepositories.
126      * 
127      * @return java.util.List
128      */
129     public java.util.List getPluginRepositories()
130     {
131         if ( this.pluginRepositories == null )
132         {
133             this.pluginRepositories = new java.util.ArrayList();
134         }
135     
136         return this.pluginRepositories;
137     } //-- java.util.List getPluginRepositories() 
138 
139     /**
140      * Method getProperties.
141      * 
142      * @return java.util.Properties
143      */
144     public java.util.Properties getProperties()
145     {
146         if ( this.properties == null )
147         {
148             this.properties = new java.util.Properties();
149         }
150     
151         return this.properties;
152     } //-- java.util.Properties getProperties() 
153 
154     /**
155      * Method getRepositories.
156      * 
157      * @return java.util.List
158      */
159     public java.util.List getRepositories()
160     {
161         if ( this.repositories == null )
162         {
163             this.repositories = new java.util.ArrayList();
164         }
165     
166         return this.repositories;
167     } //-- java.util.List getRepositories() 
168 
169     /**
170      * Method removePluginRepository.
171      * 
172      * @param repository
173      */
174     public void removePluginRepository( Repository repository )
175     {
176         if ( !(repository instanceof Repository) )
177         {
178             throw new ClassCastException( "Profile.removePluginRepositories(repository) parameter must be instanceof " + Repository.class.getName() );
179         }
180         getPluginRepositories().remove( repository );
181     } //-- void removePluginRepository( Repository ) 
182 
183     /**
184      * Method removeRepository.
185      * 
186      * @param repository
187      */
188     public void removeRepository( Repository repository )
189     {
190         if ( !(repository instanceof Repository) )
191         {
192             throw new ClassCastException( "Profile.removeRepositories(repository) parameter must be instanceof " + Repository.class.getName() );
193         }
194         getRepositories().remove( repository );
195     } //-- void removeRepository( Repository ) 
196 
197     /**
198      * Set 
199      *             
200      *             The conditional logic which will automatically
201      *             trigger the inclusion of this profile.
202      *             
203      *           
204      * 
205      * @param activation
206      */
207     public void setActivation( Activation activation )
208     {
209         this.activation = activation;
210     } //-- void setActivation( Activation ) 
211 
212     /**
213      * Set 
214      *             
215      *             The lists of the remote repositories for
216      * discovering plugins.
217      *             
218      *           
219      * 
220      * @param pluginRepositories
221      */
222     public void setPluginRepositories( java.util.List pluginRepositories )
223     {
224         this.pluginRepositories = pluginRepositories;
225     } //-- void setPluginRepositories( java.util.List ) 
226 
227     /**
228      * Set 
229      *             Extended configuration specific to this profile
230      * goes here.
231      *             Contents take the form of
232      *             <property.name>property.value</property.name>
233      *           
234      * 
235      * @param properties
236      */
237     public void setProperties( java.util.Properties properties )
238     {
239         this.properties = properties;
240     } //-- void setProperties( java.util.Properties ) 
241 
242     /**
243      * Set 
244      *             
245      *             The lists of the remote repositories.
246      *             
247      *           
248      * 
249      * @param repositories
250      */
251     public void setRepositories( java.util.List repositories )
252     {
253         this.repositories = repositories;
254     } //-- void setRepositories( java.util.List ) 
255 
256 
257     private String modelEncoding = "UTF-8";
258 
259     /**
260      * Set an encoding used for reading/writing the model.
261      *
262      * @param modelEncoding the encoding used when reading/writing the model.
263      */
264     public void setModelEncoding( String modelEncoding )
265     {
266         this.modelEncoding = modelEncoding;
267     }
268 
269     /**
270      * @return the current encoding used when reading/writing this model.
271      */
272     public String getModelEncoding()
273     {
274         return modelEncoding;
275     }
276 }