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   * <p>ReleaseDescriptorBuilder class.</p>
28   *
29   * @author Robert Scholte
30   * @since 3.0.0-M5
31   */
32  public class ReleaseDescriptorBuilder
33  {
34      /**
35       * Hides inner logic of the release descriptor
36       * 
37       * @author Robert Scholte
38       *
39       */
40      public static final class BuilderReleaseDescriptor extends ModelloReleaseDescriptor implements ReleaseDescriptor
41      {
42          private BuilderReleaseDescriptor()
43          {
44          }
45      }
46      
47      private final BuilderReleaseDescriptor releaseDescriptor;
48      
49      /**
50       * <p>Constructor for ReleaseDescriptorBuilder.</p>
51       */
52      public ReleaseDescriptorBuilder()
53      {
54          this.releaseDescriptor = new BuilderReleaseDescriptor();
55      }
56  
57      /**
58       * <p>addCheckModificationExclude.</p>
59       *
60       * @param string a {@link java.lang.String} object
61       * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
62       */
63      public ReleaseDescriptorBuilder addCheckModificationExclude( String string )
64      {
65          releaseDescriptor.addCheckModificationExclude( string );
66          return this;
67      }
68  
69      /**
70       * <p>setActivateProfiles.</p>
71       *
72       * @param profiles a {@link java.util.List} object
73       * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
74       */
75      public ReleaseDescriptorBuilder setActivateProfiles( List<String> profiles )
76      {
77          releaseDescriptor.setActivateProfiles( profiles );
78          return this;
79      }
80  
81      /**
82       * <p>setAddSchema.</p>
83       *
84       * @param addSchema a boolean
85       * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
86       */
87      public ReleaseDescriptorBuilder setAddSchema( boolean addSchema )
88      {
89          releaseDescriptor.setAddSchema( addSchema );
90          return this;
91      }
92  
93      /**
94       * <p>setAdditionalArguments.</p>
95       *
96       * @param additionalArguments a {@link java.lang.String} object
97       * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
98       */
99      public ReleaseDescriptorBuilder setAdditionalArguments( String additionalArguments )
100     {
101         releaseDescriptor.setAdditionalArguments( additionalArguments );
102         return this;
103     }
104 
105     /**
106      * <p>setAllowTimestampedSnapshots.</p>
107      *
108      * @param allowTimestampedSnapshots a boolean
109      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
110      */
111     public ReleaseDescriptorBuilder setAllowTimestampedSnapshots( boolean allowTimestampedSnapshots )
112     {
113         releaseDescriptor.setAllowTimestampedSnapshots( allowTimestampedSnapshots );
114         return this;
115     }
116 
117     /**
118      * <p>setAutoVersionSubmodules.</p>
119      *
120      * @param autoVersionSubmodules a boolean
121      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
122      */
123     public ReleaseDescriptorBuilder setAutoVersionSubmodules( boolean autoVersionSubmodules )
124     {
125         releaseDescriptor.setAutoVersionSubmodules( autoVersionSubmodules );
126         return this;
127     }
128 
129     /**
130      * <p>setBranchCreation.</p>
131      *
132      * @param branchCreation a boolean
133      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
134      */
135     public ReleaseDescriptorBuilder setBranchCreation( boolean branchCreation )
136     {
137         releaseDescriptor.setBranchCreation( branchCreation );
138         return this;
139     }
140 
141     /**
142      * <p>setCheckModificationExcludes.</p>
143      *
144      * @param checkModificationExcludes a {@link java.util.List} object
145      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
146      */
147     public ReleaseDescriptorBuilder setCheckModificationExcludes( List<String> checkModificationExcludes )
148     {
149         releaseDescriptor.setCheckModificationExcludes( checkModificationExcludes );
150         return this;
151     }
152 
153     /**
154      * <p>setCheckoutDirectory.</p>
155      *
156      * @param checkoutDirectory a {@link java.lang.String} object
157      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
158      */
159     public ReleaseDescriptorBuilder setCheckoutDirectory( String checkoutDirectory )
160     {
161         releaseDescriptor.setCheckoutDirectory( checkoutDirectory );
162         return this;
163     }
164 
165     /**
166      * <p>setCommitByProject.</p>
167      *
168      * @param commitByProject a boolean
169      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
170      */
171     public ReleaseDescriptorBuilder setCommitByProject( boolean commitByProject )
172     {
173         releaseDescriptor.setCommitByProject( commitByProject );
174         return this;
175     }
176 
177     /**
178      * <p>setCompletedPhase.</p>
179      *
180      * @param completedPhase a {@link java.lang.String} object
181      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
182      */
183     public ReleaseDescriptorBuilder setCompletedPhase( String completedPhase )
184     {
185         releaseDescriptor.setCompletedPhase( completedPhase );
186         return this;
187     }
188 
189     /**
190      * <p>setCompletionGoals.</p>
191      *
192      * @param completionGoals a {@link java.lang.String} object
193      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
194      */
195     public ReleaseDescriptorBuilder setCompletionGoals( String completionGoals )
196     {
197         releaseDescriptor.setCompletionGoals( completionGoals );
198         return this;
199     }
200 
201     /**
202      * <p>setDefaultDevelopmentVersion.</p>
203      *
204      * @param defaultDevelopmentVersion a {@link java.lang.String} object
205      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
206      */
207     public ReleaseDescriptorBuilder setDefaultDevelopmentVersion( String defaultDevelopmentVersion )
208     {
209         releaseDescriptor.setDefaultDevelopmentVersion( defaultDevelopmentVersion );
210         return this;
211     }
212 
213     /**
214      * <p>setDefaultReleaseVersion.</p>
215      *
216      * @param defaultReleaseVersion a {@link java.lang.String} object
217      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
218      */
219     public ReleaseDescriptorBuilder setDefaultReleaseVersion( String defaultReleaseVersion )
220     {
221         releaseDescriptor.setDefaultReleaseVersion( defaultReleaseVersion );
222         return this;
223     }
224 
225     /**
226      * <p>setDescription.</p>
227      *
228      * @param description a {@link java.lang.String} object
229      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
230      */
231     public ReleaseDescriptorBuilder setDescription( String description )
232     {
233         releaseDescriptor.setDescription( description );
234         return this;
235     }
236 
237     /**
238      * <p>setGenerateReleasePoms.</p>
239      *
240      * @param generateReleasePoms a boolean
241      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
242      */
243     public ReleaseDescriptorBuilder setGenerateReleasePoms( boolean generateReleasePoms )
244     {
245         releaseDescriptor.setGenerateReleasePoms( generateReleasePoms );
246         return this;
247     }
248 
249     /**
250      * <p>setInteractive.</p>
251      *
252      * @param interactive a boolean
253      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
254      */
255     public ReleaseDescriptorBuilder setInteractive( boolean interactive )
256     {
257         releaseDescriptor.setInteractive( interactive );
258         return this;
259     }
260 
261     /**
262      * <p>setLocalCheckout.</p>
263      *
264      * @param localCheckout a boolean
265      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
266      */
267     public ReleaseDescriptorBuilder setLocalCheckout( boolean localCheckout )
268     {
269         releaseDescriptor.setLocalCheckout( localCheckout );
270         return this;
271     }
272 
273     /**
274      * <p>setModelEncoding.</p>
275      *
276      * @param modelEncoding a {@link java.lang.String} object
277      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
278      */
279     public ReleaseDescriptorBuilder setModelEncoding( String modelEncoding )
280     {
281         releaseDescriptor.setModelEncoding( modelEncoding );
282         return this;
283     }
284 
285     /**
286      * <p>setName.</p>
287      *
288      * @param name a {@link java.lang.String} object
289      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
290      */
291     public ReleaseDescriptorBuilder setName( String name )
292     {
293         releaseDescriptor.setName( name );
294         return this;
295     }
296 
297     /**
298      * <p>setPerformGoals.</p>
299      *
300      * @param performGoals a {@link java.lang.String} object
301      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
302      */
303     public ReleaseDescriptorBuilder setPerformGoals( String performGoals )
304     {
305         releaseDescriptor.setPerformGoals( performGoals );
306         return this;
307     }
308 
309     /**
310      * <p>setPomFileName.</p>
311      *
312      * @param pomFileName a {@link java.lang.String} object
313      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
314      */
315     public ReleaseDescriptorBuilder setPomFileName( String pomFileName )
316     {
317         releaseDescriptor.setPomFileName( pomFileName );
318         return this;
319     }
320 
321     /**
322      * <p>setPreparationGoals.</p>
323      *
324      * @param preparationGoals a {@link java.lang.String} object
325      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
326      */
327     public ReleaseDescriptorBuilder setPreparationGoals( String preparationGoals )
328     {
329         releaseDescriptor.setPreparationGoals( preparationGoals );
330         return this;
331     }
332 
333     /**
334      * <p>setProjectNamingPolicyId.</p>
335      *
336      * @param projectNamingPolicyId a {@link java.lang.String} object
337      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
338      */
339     public ReleaseDescriptorBuilder setProjectNamingPolicyId( String projectNamingPolicyId )
340     {
341         releaseDescriptor.setProjectNamingPolicyId( projectNamingPolicyId );
342         return this;
343     }
344 
345     /**
346      * <p>setProjectVersionPolicyId.</p>
347      *
348      * @param projectVersionPolicyId a {@link java.lang.String} object
349      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
350      */
351     public ReleaseDescriptorBuilder setProjectVersionPolicyId( String projectVersionPolicyId )
352     {
353         releaseDescriptor.setProjectVersionPolicyId( projectVersionPolicyId );
354         return this;
355     }
356 
357     /**
358      * <p>setPushChanges.</p>
359      *
360      * @param pushChanges a boolean
361      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
362      */
363     public ReleaseDescriptorBuilder setPushChanges( boolean pushChanges )
364     {
365         releaseDescriptor.setPushChanges( pushChanges );
366         return this;
367     }
368 
369     /**
370      * <p>setWorkItem.</p>
371      *
372      * @param workItem a {@link java.lang.String} object
373      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
374      */
375     public ReleaseDescriptorBuilder setWorkItem( String workItem )
376     {
377         releaseDescriptor.setWorkItem( workItem );
378         return this;
379     }
380 
381     /**
382      * <p>setReleaseStrategyId.</p>
383      *
384      * @param releaseStrategyId a {@link java.lang.String} object
385      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
386      */
387     public ReleaseDescriptorBuilder setReleaseStrategyId( String releaseStrategyId )
388     {
389         releaseDescriptor.setReleaseStrategyId( releaseStrategyId );
390         return this;
391     }
392 
393     /**
394      * <p>setRemoteTagging.</p>
395      *
396      * @param remoteTagging a boolean
397      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
398      */
399     public ReleaseDescriptorBuilder setRemoteTagging( boolean remoteTagging )
400     {
401         releaseDescriptor.setRemoteTagging( remoteTagging );
402         return this;
403     }
404 
405     /**
406      * <p>setScmBranchBase.</p>
407      *
408      * @param scmBranchBase a {@link java.lang.String} object
409      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
410      */
411     public ReleaseDescriptorBuilder setScmBranchBase( String scmBranchBase )
412     {
413         releaseDescriptor.setScmBranchBase( scmBranchBase );
414         return this;
415     }
416 
417     /**
418      * <p>setScmCommentPrefix.</p>
419      *
420      * @param scmCommentPrefix a {@link java.lang.String} object
421      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
422      */
423     public ReleaseDescriptorBuilder setScmCommentPrefix( String scmCommentPrefix )
424     {
425         releaseDescriptor.setScmCommentPrefix( scmCommentPrefix );
426         return this;
427     }
428 
429     /**
430      * <p>setScmReleaseCommitComment.</p>
431      *
432      * @since 3.0.0-M1
433      * @param scmReleaseCommitComment a {@link java.lang.String} object
434      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
435      */
436     public ReleaseDescriptorBuilder setScmReleaseCommitComment( String scmReleaseCommitComment )
437     {
438         releaseDescriptor.setScmReleaseCommitComment( scmReleaseCommitComment );
439         return this;
440     }
441 
442     /**
443      * <p>setScmDevelopmentCommitComment.</p>
444      *
445      * @since 3.0.0-M1
446      * @param scmDevelopmentCommitComment a {@link java.lang.String} object
447      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
448      */
449     public ReleaseDescriptorBuilder setScmDevelopmentCommitComment( String scmDevelopmentCommitComment )
450     {
451         releaseDescriptor.setScmDevelopmentCommitComment( scmDevelopmentCommitComment );
452         return this;
453     }
454 
455     /**
456      * <p>setScmBranchCommitComment.</p>
457      *
458      * @since 3.0.0-M1
459      * @param scmBranchCommitComment a {@link java.lang.String} object
460      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
461      */
462     public ReleaseDescriptorBuilder setScmBranchCommitComment( String scmBranchCommitComment )
463     {
464         releaseDescriptor.setScmBranchCommitComment( scmBranchCommitComment );
465         return this;
466     }
467 
468     /**
469      * <p>setScmRollbackCommitComment.</p>
470      *
471      * @since 3.0.0-M1
472      * @param scmRollbackCommitComment a {@link java.lang.String} object
473      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
474      */
475     public ReleaseDescriptorBuilder setScmRollbackCommitComment( String scmRollbackCommitComment )
476     {
477         releaseDescriptor.setScmRollbackCommitComment( scmRollbackCommitComment );
478         return this;
479     }
480 
481     /**
482      * <p>setScmId.</p>
483      *
484      * @param scmId a {@link java.lang.String} object
485      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
486      */
487     public ReleaseDescriptorBuilder setScmId( String scmId )
488     {
489         releaseDescriptor.setScmId( scmId );
490         return this;
491     }
492 
493     /**
494      * <p>setScmPassword.</p>
495      *
496      * @param scmPassword a {@link java.lang.String} object
497      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
498      */
499     public ReleaseDescriptorBuilder setScmPassword( String scmPassword )
500     {
501         releaseDescriptor.setScmPassword( scmPassword );
502         return this;
503     }
504 
505     /**
506      * <p>setScmPrivateKey.</p>
507      *
508      * @param scmPrivateKey a {@link java.lang.String} object
509      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
510      */
511     public ReleaseDescriptorBuilder setScmPrivateKey( String scmPrivateKey )
512     {
513         releaseDescriptor.setScmPrivateKey( scmPrivateKey );
514         return this;
515     }
516 
517     /**
518      * <p>setScmPrivateKeyPassPhrase.</p>
519      *
520      * @param scmPrivateKeyPassPhrase a {@link java.lang.String} object
521      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
522      */
523     public ReleaseDescriptorBuilder setScmPrivateKeyPassPhrase( String scmPrivateKeyPassPhrase )
524     {
525         releaseDescriptor.setScmPrivateKeyPassPhrase( scmPrivateKeyPassPhrase );
526         return this;
527     }
528 
529     /**
530      * <p>setScmRelativePathProjectDirectory.</p>
531      *
532      * @param scmRelativePathProjectDirectory a {@link java.lang.String} object
533      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
534      */
535     public ReleaseDescriptorBuilder setScmRelativePathProjectDirectory( String scmRelativePathProjectDirectory )
536     {
537         releaseDescriptor.setScmRelativePathProjectDirectory( scmRelativePathProjectDirectory );
538         return this;
539     }
540 
541     /**
542      * <p>setScmReleaseLabel.</p>
543      *
544      * @param scmReleaseLabel a {@link java.lang.String} object
545      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
546      */
547     public ReleaseDescriptorBuilder setScmReleaseLabel( String scmReleaseLabel )
548     {
549         releaseDescriptor.setScmReleaseLabel( scmReleaseLabel );
550         return this;
551     }
552 
553     /**
554      * <p>setScmReleasedPomRevision.</p>
555      *
556      * @param scmReleasedPomRevision a {@link java.lang.String} object
557      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
558      */
559     public ReleaseDescriptorBuilder setScmReleasedPomRevision( String scmReleasedPomRevision )
560     {
561         releaseDescriptor.setScmReleasedPomRevision( scmReleasedPomRevision );
562         return this;
563     }
564 
565     /**
566      * <p>setScmSourceUrl.</p>
567      *
568      * @param scmSourceUrl a {@link java.lang.String} object
569      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
570      */
571     public ReleaseDescriptorBuilder setScmSourceUrl( String scmSourceUrl )
572     {
573         releaseDescriptor.setScmSourceUrl( scmSourceUrl );
574         return this;
575     }
576 
577     /**
578      * <p>setScmTagBase.</p>
579      *
580      * @param scmTagBase a {@link java.lang.String} object
581      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
582      */
583     public ReleaseDescriptorBuilder setScmTagBase( String scmTagBase )
584     {
585         releaseDescriptor.setScmTagBase( scmTagBase );
586         return this;
587     }
588 
589     /**
590      * <p>setScmTagNameFormat.</p>
591      *
592      * @param scmTagNameFormat a {@link java.lang.String} object
593      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
594      */
595     public ReleaseDescriptorBuilder setScmTagNameFormat( String scmTagNameFormat )
596     {
597         releaseDescriptor.setScmTagNameFormat( scmTagNameFormat );
598         return this;
599     }
600 
601     /**
602      * <p>setScmSignTags.</p>
603      *
604      * @param signTags a boolean
605      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
606      */
607     public ReleaseDescriptorBuilder setScmSignTags( boolean signTags )
608     {
609         releaseDescriptor.setScmSignTags( signTags );
610         return this;
611     }
612 
613     /**
614      * <p>setScmUseEditMode.</p>
615      *
616      * @param scmUseEditMode a boolean
617      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
618      */
619     public ReleaseDescriptorBuilder setScmUseEditMode( boolean scmUseEditMode )
620     {
621         releaseDescriptor.setScmUseEditMode( scmUseEditMode );
622         return this;
623     }
624 
625     /**
626      * <p>setScmUsername.</p>
627      *
628      * @param scmUsername a {@link java.lang.String} object
629      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
630      */
631     public ReleaseDescriptorBuilder setScmUsername( String scmUsername )
632     {
633         releaseDescriptor.setScmUsername( scmUsername );
634         return this;
635     }
636 
637     /**
638      * <p>setSnapshotReleasePluginAllowed.</p>
639      *
640      * @param snapshotReleasePluginAllowed a boolean
641      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
642      */
643     public ReleaseDescriptorBuilder setSnapshotReleasePluginAllowed( boolean snapshotReleasePluginAllowed )
644     {
645         releaseDescriptor.setSnapshotReleasePluginAllowed( snapshotReleasePluginAllowed );
646         return this;
647     }
648 
649     /**
650      * <p>setSuppressCommitBeforeTagOrBranch.</p>
651      *
652      * @param suppressCommitBeforeTagOrBranch a boolean
653      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
654      */
655     public ReleaseDescriptorBuilder setSuppressCommitBeforeTagOrBranch( boolean suppressCommitBeforeTagOrBranch )
656     {
657         releaseDescriptor.setSuppressCommitBeforeTagOrBranch( suppressCommitBeforeTagOrBranch );
658         return this;
659     }
660 
661     /**
662      * <p>setUpdateBranchVersions.</p>
663      *
664      * @param updateBranchVersions a boolean
665      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
666      */
667     public ReleaseDescriptorBuilder setUpdateBranchVersions( boolean updateBranchVersions )
668     {
669         releaseDescriptor.setUpdateBranchVersions( updateBranchVersions );
670         return this;
671     }
672 
673     /**
674      * <p>setUpdateDependencies.</p>
675      *
676      * @param updateDependencies a boolean
677      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
678      */
679     public ReleaseDescriptorBuilder setUpdateDependencies( boolean updateDependencies )
680     {
681         releaseDescriptor.setUpdateDependencies( updateDependencies );
682         return this;
683     }
684 
685     /**
686      * <p>setUpdateVersionsToSnapshot.</p>
687      *
688      * @param updateVersionsToSnapshot a boolean
689      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
690      */
691     public ReleaseDescriptorBuilder setUpdateVersionsToSnapshot( boolean updateVersionsToSnapshot )
692     {
693         releaseDescriptor.setUpdateVersionsToSnapshot( updateVersionsToSnapshot );
694         return this;
695     }
696 
697     /**
698      * <p>setUpdateWorkingCopyVersions.</p>
699      *
700      * @param updateWorkingCopyVersions a boolean
701      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
702      */
703     public ReleaseDescriptorBuilder setUpdateWorkingCopyVersions( boolean updateWorkingCopyVersions )
704     {
705         releaseDescriptor.setUpdateWorkingCopyVersions( updateWorkingCopyVersions );
706         return this;
707     }
708 
709     /**
710      * <p>setUseReleaseProfile.</p>
711      *
712      * @param useReleaseProfile a boolean
713      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
714      */
715     public ReleaseDescriptorBuilder setUseReleaseProfile( boolean useReleaseProfile )
716     {
717         releaseDescriptor.setUseReleaseProfile( useReleaseProfile );
718         return this;
719     }
720 
721     /**
722      * <p>setWaitBeforeTagging.</p>
723      *
724      * @param waitBeforeTagging a int
725      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
726      */
727     public ReleaseDescriptorBuilder setWaitBeforeTagging( int waitBeforeTagging )
728     {
729         releaseDescriptor.setWaitBeforeTagging( waitBeforeTagging );
730         return this;
731     }
732 
733     /**
734      * <p>setWorkingDirectory.</p>
735      *
736      * @param workingDirectory a {@link java.lang.String} object
737      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
738      */
739     public ReleaseDescriptorBuilder setWorkingDirectory( String workingDirectory )
740     {
741         releaseDescriptor.setWorkingDirectory( workingDirectory );
742         return this;
743     }
744 
745     /**
746      * <p>addReleaseVersion.</p>
747      *
748      * @param key a {@link java.lang.String} object
749      * @param value a {@link java.lang.String} object
750      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
751      */
752     public ReleaseDescriptorBuilder addReleaseVersion( String key, String value )
753     {
754         releaseDescriptor.addReleaseVersion( key, value );
755         return this;
756     }
757 
758     /**
759      * <p>addDevelopmentVersion.</p>
760      *
761      * @param key a {@link java.lang.String} object
762      * @param value a {@link java.lang.String} object
763      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
764      */
765     public ReleaseDescriptorBuilder addDevelopmentVersion( String key, String value )
766     {
767         releaseDescriptor.addDevelopmentVersion( key, value );
768         return this;
769     }
770 
771     /**
772      * <p>addOriginalScmInfo.</p>
773      *
774      * @param key a {@link java.lang.String} object
775      * @param value a {@link org.apache.maven.model.Scm} object
776      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
777      */
778     public ReleaseDescriptorBuilder addOriginalScmInfo( String key, Scm value )
779     {
780         releaseDescriptor.addOriginalScmInfo( key, value );
781         return this;
782     }
783 
784     /**
785      * <p>putOriginalVersion.</p>
786      *
787      * @param projectKey a {@link java.lang.String} object
788      * @param version a {@link java.lang.String} object
789      */
790     public void putOriginalVersion( String projectKey, String version )
791     {
792         releaseDescriptor.addOriginalVersion( projectKey, version );
793     }
794     
795     /**
796      * <p>addDependencyOriginalVersion.</p>
797      *
798      * @param dependencyKey a {@link java.lang.String} object
799      * @param version a {@link java.lang.String} object
800      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
801      */
802     public ReleaseDescriptorBuilder addDependencyOriginalVersion( String dependencyKey, String version )
803     {
804         releaseDescriptor.addDependencyOriginalVersion( dependencyKey, version );
805         return this;
806         
807     }
808     
809     /**
810      * <p>addDependencyReleaseVersion.</p>
811      *
812      * @param dependencyKey a {@link java.lang.String} object
813      * @param version a {@link java.lang.String} object
814      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
815      */
816     public ReleaseDescriptorBuilder addDependencyReleaseVersion( String dependencyKey, String version )
817     {
818         releaseDescriptor.addDependencyReleaseVersion( dependencyKey, version );
819         return this;
820     }
821     
822     /**
823      * <p>addDependencyDevelopmentVersion.</p>
824      *
825      * @param dependencyKey a {@link java.lang.String} object
826      * @param version a {@link java.lang.String} object
827      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
828      */
829     public ReleaseDescriptorBuilder addDependencyDevelopmentVersion( String dependencyKey, String version )
830     {
831         releaseDescriptor.addDependencyDevelopmentVersion( dependencyKey, version );
832         return this;
833     }
834 
835     /**
836      * <p>setAutoResolveSnapshots.</p>
837      *
838      * @param autoResolveSnapshots a {@link java.lang.String} object
839      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
840      */
841     public ReleaseDescriptorBuilder setAutoResolveSnapshots( String autoResolveSnapshots )
842     {
843         releaseDescriptor.setAutoResolveSnapshots( autoResolveSnapshots );
844         return this;
845     }
846 
847     /**
848      * <p>setPinExternals.</p>
849      *
850      * @param pinExternals a boolean
851      * @return a {@link org.apache.maven.shared.release.config.ReleaseDescriptorBuilder} object
852      */
853     public ReleaseDescriptorBuilder setPinExternals( boolean pinExternals )
854     {
855         releaseDescriptor.setPinExternals( pinExternals );
856         return this;
857     }
858 
859     BuilderReleaseDescriptor build()
860     {
861         return releaseDescriptor;
862     }
863 }