4
4
5
5
public class PrnfsRenderer {
6
6
7
- public interface Resolver {
8
- public String resolve (PullRequestEvent pullRequestEvent );
9
- }
10
-
11
7
public enum PrnfsVariable {
12
- PULL_REQUEST_ID (new Resolver () {
8
+ PULL_REQUEST_FROM_HASH (new Resolver () {
13
9
@ Override
14
10
public String resolve (PullRequestEvent pullRequestEvent ) {
15
- return pullRequestEvent .getPullRequest ().getId () + "" ;
11
+ return pullRequestEvent .getPullRequest ().getFromRef (). getLatestChangeset () ;
16
12
}
17
- }), PULL_REQUEST_FROM_HASH (new Resolver () {
13
+ }), PULL_REQUEST_FROM_ID (new Resolver () {
18
14
@ Override
19
15
public String resolve (PullRequestEvent pullRequestEvent ) {
20
- return pullRequestEvent .getPullRequest ().getFromRef ().getLatestCommit ();
16
+ return pullRequestEvent .getPullRequest ().getFromRef ().getId ();
21
17
}
22
- }), PULL_REQUEST_FROM_ID (new Resolver () {
18
+ }), PULL_REQUEST_FROM_REPO_ID (new Resolver () {
23
19
@ Override
24
20
public String resolve (PullRequestEvent pullRequestEvent ) {
25
- return pullRequestEvent .getPullRequest ().getFromRef ().getId ();
21
+ return pullRequestEvent .getPullRequest ().getFromRef ().getRepository ().getId () + "" ;
22
+ }
23
+ }), PULL_REQUEST_FROM_REPO_NAME (new Resolver () {
24
+ @ Override
25
+ public String resolve (PullRequestEvent pullRequestEvent ) {
26
+ return pullRequestEvent .getPullRequest ().getFromRef ().getRepository ().getName () + "" ;
26
27
}
27
28
}), PULL_REQUEST_FROM_REPO_PROJECT_ID (new Resolver () {
28
29
@ Override
29
30
public String resolve (PullRequestEvent pullRequestEvent ) {
30
31
return pullRequestEvent .getPullRequest ().getFromRef ().getRepository ().getProject ().getId () + "" ;
31
32
}
32
- }), PULL_REQUEST_TO_REPO_PROJECT_ID (new Resolver () {
33
+ }), PULL_REQUEST_FROM_REPO_PROJECT_KEY (new Resolver () {
33
34
@ Override
34
35
public String resolve (PullRequestEvent pullRequestEvent ) {
35
- return pullRequestEvent .getPullRequest ().getToRef ().getRepository ().getProject ().getId () + "" ;
36
+ return pullRequestEvent .getPullRequest ().getFromRef ().getRepository ().getProject ().getKey () ;
36
37
}
37
- }), PULL_REQUEST_FROM_REPO_ID (new Resolver () {
38
+ }), PULL_REQUEST_FROM_REPO_SLUG (new Resolver () {
38
39
@ Override
39
40
public String resolve (PullRequestEvent pullRequestEvent ) {
40
- return pullRequestEvent .getPullRequest ().getFromRef ().getRepository ().getId () + "" ;
41
+ return pullRequestEvent .getPullRequest ().getFromRef ().getRepository ().getSlug () + "" ;
41
42
}
42
- }), PULL_REQUEST_TO_REPO_ID (new Resolver () {
43
+ }), PULL_REQUEST_ID (new Resolver () {
43
44
@ Override
44
45
public String resolve (PullRequestEvent pullRequestEvent ) {
45
- return pullRequestEvent .getPullRequest ().getToRef (). getRepository (). getId () + "" ;
46
+ return pullRequestEvent .getPullRequest ().getId () + "" ;
46
47
}
47
- }), PULL_REQUEST_FROM_REPO_NAME (new Resolver () {
48
+ }), PULL_REQUEST_TO_HASH (new Resolver () {
48
49
@ Override
49
50
public String resolve (PullRequestEvent pullRequestEvent ) {
50
- return pullRequestEvent .getPullRequest ().getFromRef ().getRepository (). getName () + "" ;
51
+ return pullRequestEvent .getPullRequest ().getToRef ().getLatestChangeset () ;
51
52
}
52
- }), PULL_REQUEST_TO_REPO_NAME (new Resolver () {
53
+ }), PULL_REQUEST_TO_ID (new Resolver () {
53
54
@ Override
54
55
public String resolve (PullRequestEvent pullRequestEvent ) {
55
- return pullRequestEvent .getPullRequest ().getToRef ().getRepository (). getName () + "" ;
56
+ return pullRequestEvent .getPullRequest ().getToRef ().getId () ;
56
57
}
57
- }), PULL_REQUEST_FROM_REPO_SLUG (new Resolver () {
58
+ }), PULL_REQUEST_TO_REPO_ID (new Resolver () {
58
59
@ Override
59
60
public String resolve (PullRequestEvent pullRequestEvent ) {
60
- return pullRequestEvent .getPullRequest ().getFromRef ().getRepository ().getSlug () + "" ;
61
+ return pullRequestEvent .getPullRequest ().getToRef ().getRepository ().getId () + "" ;
61
62
}
62
- }), PULL_REQUEST_TO_REPO_SLUG (new Resolver () {
63
+ }), PULL_REQUEST_TO_REPO_NAME (new Resolver () {
63
64
@ Override
64
65
public String resolve (PullRequestEvent pullRequestEvent ) {
65
- return pullRequestEvent .getPullRequest ().getToRef ().getRepository ().getSlug () + "" ;
66
+ return pullRequestEvent .getPullRequest ().getToRef ().getRepository ().getName () + "" ;
66
67
}
67
- }), PULL_REQUEST_FROM_REPO_PROJECT_KEY (new Resolver () {
68
+ }), PULL_REQUEST_TO_REPO_PROJECT_ID (new Resolver () {
68
69
@ Override
69
70
public String resolve (PullRequestEvent pullRequestEvent ) {
70
- return pullRequestEvent .getPullRequest ().getFromRef ().getRepository ().getProject ().getKey () ;
71
+ return pullRequestEvent .getPullRequest ().getToRef ().getRepository ().getProject ().getId () + "" ;
71
72
}
72
73
}), PULL_REQUEST_TO_REPO_PROJECT_KEY (new Resolver () {
73
74
@ Override
74
75
public String resolve (PullRequestEvent pullRequestEvent ) {
75
76
return pullRequestEvent .getPullRequest ().getToRef ().getRepository ().getProject ().getKey ();
76
77
}
77
- }), PULL_REQUEST_TO_ID (new Resolver () {
78
+ }), PULL_REQUEST_TO_REPO_SLUG (new Resolver () {
78
79
@ Override
79
80
public String resolve (PullRequestEvent pullRequestEvent ) {
80
- return pullRequestEvent .getPullRequest ().getToRef ().getId () ;
81
+ return pullRequestEvent .getPullRequest ().getToRef ().getRepository (). getSlug () + "" ;
81
82
}
82
83
});
83
84
@@ -92,6 +93,10 @@ public String resolve(PullRequestEvent pullRequestEvent) {
92
93
}
93
94
}
94
95
96
+ public interface Resolver {
97
+ public String resolve (PullRequestEvent pullRequestEvent );
98
+ }
99
+
95
100
private final PullRequestEvent pullRequestEvent ;
96
101
97
102
public PrnfsRenderer (PullRequestEvent pullRequestEvent ) {
@@ -102,7 +107,12 @@ public String render(String string) {
102
107
for (final PrnfsVariable variable : PrnfsVariable .values ()) {
103
108
final String regExpStr = "\\ $\\ {" + variable .name () + "\\ }" ;
104
109
if (string .contains (regExpStr .replaceAll ("\\ \\ " , "" ))) {
105
- string = string .replaceAll (regExpStr , variable .resolve (pullRequestEvent ));
110
+ try {
111
+ string = string .replaceAll (regExpStr , variable .resolve (pullRequestEvent ));
112
+ } catch (final NullPointerException e ) {
113
+ // So that all values does not need to be set for all test cases
114
+ return string ;
115
+ }
106
116
}
107
117
}
108
118
return string ;
0 commit comments