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 public abstract class AbstractBranchCommand extends AbstractCommand {
36 protected abstract ScmResult executeBranchCommand(
37 ScmProviderRepository repository, ScmFileSet fileSet, String branchName, String message)
38 throws ScmException;
39
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
62
63 public ScmResult executeCommand(ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters)
64 throws ScmException {
65 String branchName = parameters.getString(CommandParameter.BRANCH_NAME);
66
67 ScmBranchParameters scmBranchParameters =
68 parameters.getScmBranchParameters(CommandParameter.SCM_BRANCH_PARAMETERS);
69
70 String message = parameters.getString(CommandParameter.MESSAGE, "[maven-scm] copy for branch " + branchName);
71
72 if (StringUtils.isBlank(scmBranchParameters.getMessage()) && StringUtils.isNotBlank(message)) {
73 scmBranchParameters.setMessage(message);
74 }
75
76 return executeBranchCommand(repository, fileSet, branchName, scmBranchParameters);
77 }
78 }