1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.scm.command.branch;
20
21 import org.apache.commons.lang3.StringUtils;
22 import org.apache.maven.scm.CommandParameter;
23 import org.apache.maven.scm.CommandParameters;
24 import org.apache.maven.scm.ScmBranchParameters;
25 import org.apache.maven.scm.ScmException;
26 import org.apache.maven.scm.ScmFileSet;
27 import org.apache.maven.scm.ScmResult;
28 import org.apache.maven.scm.command.AbstractCommand;
29 import org.apache.maven.scm.provider.ScmProviderRepository;
30
31
32
33
34
35
36 public abstract class AbstractBranchCommand extends AbstractCommand {
37 protected abstract ScmResult executeBranchCommand(
38 ScmProviderRepository repository, ScmFileSet fileSet, String branchName, String message)
39 throws ScmException;
40
41
42
43
44
45
46
47
48
49
50
51 protected ScmResult executeBranchCommand(
52 ScmProviderRepository repository,
53 ScmFileSet fileSet,
54 String branchName,
55 ScmBranchParameters scmBranchParameters)
56 throws ScmException {
57 return executeBranchCommand(repository, fileSet, branchName, scmBranchParameters.getMessage());
58 }
59
60
61 public ScmResult executeCommand(ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters)
62 throws ScmException {
63 String branchName = parameters.getString(CommandParameter.BRANCH_NAME);
64
65 ScmBranchParameters scmBranchParameters =
66 parameters.getScmBranchParameters(CommandParameter.SCM_BRANCH_PARAMETERS);
67
68 String message = parameters.getString(CommandParameter.MESSAGE, "[maven-scm] copy for branch " + branchName);
69
70 if (StringUtils.isBlank(scmBranchParameters.getMessage()) && StringUtils.isNotBlank(message)) {
71 scmBranchParameters.setMessage(message);
72 }
73
74 return executeBranchCommand(repository, fileSet, branchName, scmBranchParameters);
75 }
76 }