View Javadoc
1   package org.apache.maven.shared.release.config;
2   
3   /*
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   *   http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
20   */
21  
22  import java.util.List;
23  
24  import org.apache.maven.model.Scm;
25  
26  /**
27   * 
28   * @author Robert Scholte
29   * @since 3.0.0
30   */
31  public class ReleaseDescriptorBuilder
32  {
33      /**
34       * Hides inner logic of the release descriptor
35       * 
36       * @author Robert Scholte
37       *
38       */
39      public static final class BuilderReleaseDescriptor extends ModelloReleaseDescriptor implements ReleaseDescriptor
40      {
41          private BuilderReleaseDescriptor()
42          {
43          }
44      }
45      
46      private final BuilderReleaseDescriptor releaseDescriptor;
47      
48      public ReleaseDescriptorBuilder()
49      {
50          this.releaseDescriptor = new BuilderReleaseDescriptor();
51      }
52  
53      public ReleaseDescriptorBuilder addCheckModificationExclude( String string )
54      {
55          releaseDescriptor.addCheckModificationExclude( string );
56          return this;
57      }
58  
59      public ReleaseDescriptorBuilder setActivateProfiles( List<String> profiles )
60      {
61          releaseDescriptor.setActivateProfiles( profiles );
62          return this;
63      }
64  
65      public ReleaseDescriptorBuilder setAddSchema( boolean addSchema )
66      {
67          releaseDescriptor.setAddSchema( addSchema );
68          return this;
69      }
70  
71      public ReleaseDescriptorBuilder setAdditionalArguments( String additionalArguments )
72      {
73          releaseDescriptor.setAdditionalArguments( additionalArguments );
74          return this;
75      }
76  
77      public ReleaseDescriptorBuilder setAllowTimestampedSnapshots( boolean allowTimestampedSnapshots )
78      {
79          releaseDescriptor.setAllowTimestampedSnapshots( allowTimestampedSnapshots );
80          return this;
81      }
82  
83      public ReleaseDescriptorBuilder setAutoVersionSubmodules( boolean autoVersionSubmodules )
84      {
85          releaseDescriptor.setAutoVersionSubmodules( autoVersionSubmodules );
86          return this;
87      }
88  
89      public ReleaseDescriptorBuilder setBranchCreation( boolean branchCreation )
90      {
91          releaseDescriptor.setBranchCreation( branchCreation );
92          return this;
93      }
94  
95      public ReleaseDescriptorBuilder setCheckModificationExcludes( List<String> checkModificationExcludes )
96      {
97          releaseDescriptor.setCheckModificationExcludes( checkModificationExcludes );
98          return this;
99      }
100 
101     public ReleaseDescriptorBuilder setCheckoutDirectory( String checkoutDirectory )
102     {
103         releaseDescriptor.setCheckoutDirectory( checkoutDirectory );
104         return this;
105     }
106 
107     public ReleaseDescriptorBuilder setCommitByProject( boolean commitByProject )
108     {
109         releaseDescriptor.setCommitByProject( commitByProject );
110         return this;
111     }
112 
113     public ReleaseDescriptorBuilder setCompletedPhase( String completedPhase )
114     {
115         releaseDescriptor.setCompletedPhase( completedPhase );
116         return this;
117     }
118 
119     public ReleaseDescriptorBuilder setCompletionGoals( String completionGoals )
120     {
121         releaseDescriptor.setCompletionGoals( completionGoals );
122         return this;
123     }
124 
125     public ReleaseDescriptorBuilder setDefaultDevelopmentVersion( String defaultDevelopmentVersion )
126     {
127         releaseDescriptor.setDefaultDevelopmentVersion( defaultDevelopmentVersion );
128         return this;
129     }
130 
131     public ReleaseDescriptorBuilder setDefaultReleaseVersion( String defaultReleaseVersion )
132     {
133         releaseDescriptor.setDefaultReleaseVersion( defaultReleaseVersion );
134         return this;
135     }
136 
137     public ReleaseDescriptorBuilder setDescription( String description )
138     {
139         releaseDescriptor.setDescription( description );
140         return this;
141     }
142 
143     public ReleaseDescriptorBuilder setGenerateReleasePoms( boolean generateReleasePoms )
144     {
145         releaseDescriptor.setGenerateReleasePoms( generateReleasePoms );
146         return this;
147     }
148 
149     public ReleaseDescriptorBuilder setInteractive( boolean interactive )
150     {
151         releaseDescriptor.setInteractive( interactive );
152         return this;
153     }
154 
155     public ReleaseDescriptorBuilder setLocalCheckout( boolean localCheckout )
156     {
157         releaseDescriptor.setLocalCheckout( localCheckout );
158         return this;
159     }
160 
161     public ReleaseDescriptorBuilder setModelEncoding( String modelEncoding )
162     {
163         releaseDescriptor.setModelEncoding( modelEncoding );
164         return this;
165     }
166 
167     public ReleaseDescriptorBuilder setName( String name )
168     {
169         releaseDescriptor.setName( name );
170         return this;
171     }
172 
173     public ReleaseDescriptorBuilder setPerformGoals( String performGoals )
174     {
175         releaseDescriptor.setPerformGoals( performGoals );
176         return this;
177     }
178 
179     public ReleaseDescriptorBuilder setPomFileName( String pomFileName )
180     {
181         releaseDescriptor.setPomFileName( pomFileName );
182         return this;
183     }
184 
185     public ReleaseDescriptorBuilder setPreparationGoals( String preparationGoals )
186     {
187         releaseDescriptor.setPreparationGoals( preparationGoals );
188         return this;
189     }
190 
191     public ReleaseDescriptorBuilder setProjectNamingPolicyId( String projectNamingPolicyId )
192     {
193         releaseDescriptor.setProjectNamingPolicyId( projectNamingPolicyId );
194         return this;
195     }
196 
197     public ReleaseDescriptorBuilder setProjectVersionPolicyId( String projectVersionPolicyId )
198     {
199         releaseDescriptor.setProjectVersionPolicyId( projectVersionPolicyId );
200         return this;
201     }
202 
203     public ReleaseDescriptorBuilder setPushChanges( boolean pushChanges )
204     {
205         releaseDescriptor.setPushChanges( pushChanges );
206         return this;
207     }
208 
209     public ReleaseDescriptorBuilder setWorkItem( String workItem )
210     {
211         releaseDescriptor.setWorkItem( workItem );
212         return this;
213     }
214 
215     public ReleaseDescriptorBuilder setReleaseStrategyId( String releaseStrategyId )
216     {
217         releaseDescriptor.setReleaseStrategyId( releaseStrategyId );
218         return this;
219     }
220 
221     public ReleaseDescriptorBuilder setRemoteTagging( boolean remoteTagging )
222     {
223         releaseDescriptor.setRemoteTagging( remoteTagging );
224         return this;
225     }
226 
227     public ReleaseDescriptorBuilder setScmBranchBase( String scmBranchBase )
228     {
229         releaseDescriptor.setScmBranchBase( scmBranchBase );
230         return this;
231     }
232 
233     public ReleaseDescriptorBuilder setScmCommentPrefix( String scmCommentPrefix )
234     {
235         releaseDescriptor.setScmCommentPrefix( scmCommentPrefix );
236         return this;
237     }
238 
239     /**
240      * @since 3.0.0-M1
241      */
242     public ReleaseDescriptorBuilder setScmReleaseCommitComment( String scmReleaseCommitComment )
243     {
244         releaseDescriptor.setScmReleaseCommitComment( scmReleaseCommitComment );
245         return this;
246     }
247 
248     /**
249      * @since 3.0.0-M1
250      */
251     public ReleaseDescriptorBuilder setScmDevelopmentCommitComment( String scmDevelopmentCommitComment )
252     {
253         releaseDescriptor.setScmDevelopmentCommitComment( scmDevelopmentCommitComment );
254         return this;
255     }
256 
257     /**
258      * @since 3.0.0-M1
259      */
260     public ReleaseDescriptorBuilder setScmBranchCommitComment( String scmBranchCommitComment )
261     {
262         releaseDescriptor.setScmBranchCommitComment( scmBranchCommitComment );
263         return this;
264     }
265 
266     /**
267      * @since 3.0.0-M1
268      */
269     public ReleaseDescriptorBuilder setScmRollbackCommitComment( String scmRollbackCommitComment )
270     {
271         releaseDescriptor.setScmRollbackCommitComment( scmRollbackCommitComment );
272         return this;
273     }
274 
275     public ReleaseDescriptorBuilder setScmId( String scmId )
276     {
277         releaseDescriptor.setScmId( scmId );
278         return this;
279     }
280 
281     public ReleaseDescriptorBuilder setScmPassword( String scmPassword )
282     {
283         releaseDescriptor.setScmPassword( scmPassword );
284         return this;
285     }
286 
287     public ReleaseDescriptorBuilder setScmPrivateKey( String scmPrivateKey )
288     {
289         releaseDescriptor.setScmPrivateKey( scmPrivateKey );
290         return this;
291     }
292 
293     public ReleaseDescriptorBuilder setScmPrivateKeyPassPhrase( String scmPrivateKeyPassPhrase )
294     {
295         releaseDescriptor.setScmPrivateKeyPassPhrase( scmPrivateKeyPassPhrase );
296         return this;
297     }
298 
299     public ReleaseDescriptorBuilder setScmRelativePathProjectDirectory( String scmRelativePathProjectDirectory )
300     {
301         releaseDescriptor.setScmRelativePathProjectDirectory( scmRelativePathProjectDirectory );
302         return this;
303     }
304 
305     public ReleaseDescriptorBuilder setScmReleaseLabel( String scmReleaseLabel )
306     {
307         releaseDescriptor.setScmReleaseLabel( scmReleaseLabel );
308         return this;
309     }
310 
311     public ReleaseDescriptorBuilder setScmReleasedPomRevision( String scmReleasedPomRevision )
312     {
313         releaseDescriptor.setScmReleasedPomRevision( scmReleasedPomRevision );
314         return this;
315     }
316 
317     public ReleaseDescriptorBuilder setScmSourceUrl( String scmSourceUrl )
318     {
319         releaseDescriptor.setScmSourceUrl( scmSourceUrl );
320         return this;
321     }
322 
323     public ReleaseDescriptorBuilder setScmTagBase( String scmTagBase )
324     {
325         releaseDescriptor.setScmTagBase( scmTagBase );
326         return this;
327     }
328 
329     public ReleaseDescriptorBuilder setScmTagNameFormat( String scmTagNameFormat )
330     {
331         releaseDescriptor.setScmTagNameFormat( scmTagNameFormat );
332         return this;
333     }
334 
335     public ReleaseDescriptorBuilder setScmUseEditMode( boolean scmUseEditMode )
336     {
337         releaseDescriptor.setScmUseEditMode( scmUseEditMode );
338         return this;
339     }
340 
341     public ReleaseDescriptorBuilder setScmUsername( String scmUsername )
342     {
343         releaseDescriptor.setScmUsername( scmUsername );
344         return this;
345     }
346 
347     public ReleaseDescriptorBuilder setSnapshotReleasePluginAllowed( boolean snapshotReleasePluginAllowed )
348     {
349         releaseDescriptor.setSnapshotReleasePluginAllowed( snapshotReleasePluginAllowed );
350         return this;
351     }
352 
353     public ReleaseDescriptorBuilder setSuppressCommitBeforeTagOrBranch( boolean suppressCommitBeforeTagOrBranch )
354     {
355         releaseDescriptor.setSuppressCommitBeforeTagOrBranch( suppressCommitBeforeTagOrBranch );
356         return this;
357     }
358 
359     public ReleaseDescriptorBuilder setUpdateBranchVersions( boolean updateBranchVersions )
360     {
361         releaseDescriptor.setUpdateBranchVersions( updateBranchVersions );
362         return this;
363     }
364 
365     public ReleaseDescriptorBuilder setUpdateDependencies( boolean updateDependencies )
366     {
367         releaseDescriptor.setUpdateDependencies( updateDependencies );
368         return this;
369     }
370 
371     public ReleaseDescriptorBuilder setUpdateVersionsToSnapshot( boolean updateVersionsToSnapshot )
372     {
373         releaseDescriptor.setUpdateVersionsToSnapshot( updateVersionsToSnapshot );
374         return this;
375     }
376 
377     public ReleaseDescriptorBuilder setUpdateWorkingCopyVersions( boolean updateWorkingCopyVersions )
378     {
379         releaseDescriptor.setUpdateWorkingCopyVersions( updateWorkingCopyVersions );
380         return this;
381     }
382 
383     public ReleaseDescriptorBuilder setUseReleaseProfile( boolean useReleaseProfile )
384     {
385         releaseDescriptor.setUseReleaseProfile( useReleaseProfile );
386         return this;
387     }
388 
389     public ReleaseDescriptorBuilder setWaitBeforeTagging( int waitBeforeTagging )
390     {
391         releaseDescriptor.setWaitBeforeTagging( waitBeforeTagging );
392         return this;
393     }
394 
395     public ReleaseDescriptorBuilder setWorkingDirectory( String workingDirectory )
396     {
397         releaseDescriptor.setWorkingDirectory( workingDirectory );
398         return this;
399     }
400 
401     public ReleaseDescriptorBuilder addReleaseVersion( String key, String value )
402     {
403         releaseDescriptor.addReleaseVersion( key, value );
404         return this;
405     }
406 
407     public ReleaseDescriptorBuilder addDevelopmentVersion( String key, String value )
408     {
409         releaseDescriptor.addDevelopmentVersion( key, value );
410         return this;
411     }
412 
413     public ReleaseDescriptorBuilder addOriginalScmInfo( String key, Scm value )
414     {
415         releaseDescriptor.addOriginalScmInfo( key, value );
416         return this;
417     }
418 
419     public void putOriginalVersion( String projectKey, String version )
420     {
421         releaseDescriptor.addOriginalVersion( projectKey, version );
422     }
423     
424     public ReleaseDescriptorBuilder addDependencyOriginalVersion( String dependencyKey, String version )
425     {
426         releaseDescriptor.addDependencyOriginalVersion( dependencyKey, version );
427         return this;
428         
429     }
430     
431     public ReleaseDescriptorBuilder addDependencyReleaseVersion( String dependencyKey, String version )
432     {
433         releaseDescriptor.addDependencyReleaseVersion( dependencyKey, version );
434         return this;
435     }
436     
437     public ReleaseDescriptorBuilder addDependencyDevelopmentVersion( String dependencyKey, String version )
438     {
439         releaseDescriptor.addDependencyDevelopmentVersion( dependencyKey, version );
440         return this;
441     }
442 
443     BuilderReleaseDescriptor build()
444     {
445         return releaseDescriptor;
446     }
447 }