-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathCxConfig.java
More file actions
86 lines (71 loc) · 2.67 KB
/
CxConfig.java
File metadata and controls
86 lines (71 loc) · 2.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
package com.checkmarx.ast.wrapper;
import lombok.AccessLevel;
import lombok.Builder;
import lombok.Data;
import lombok.Setter;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@Data
@Builder
public class CxConfig {
private static final Pattern pattern = Pattern.compile("([^\"]\\S*|\".+?\")\\s*");
private String baseUri;
private String baseAuthUri;
private String tenant;
private String clientId;
private String clientSecret;
private String apiKey;
private String pathToExecutable;
@Setter(AccessLevel.NONE)
private List<String> additionalParameters;
public void setAdditionalParameters(String additionalParameters) {
this.additionalParameters = parseAdditionalParameters(additionalParameters);
}
List<String> toArguments() {
List<String> commands = new ArrayList<>();
if (StringUtils.isNotBlank(getApiKey())) {
commands.add(CxConstants.API_KEY);
commands.add(getApiKey());
} else if (StringUtils.isNotBlank(getClientId()) && StringUtils.isNotBlank(getClientSecret())) {
commands.add(CxConstants.CLIENT_ID);
commands.add(getClientId());
commands.add(CxConstants.CLIENT_SECRET);
commands.add(getClientSecret());
}
if (StringUtils.isNotBlank(getTenant())) {
commands.add(CxConstants.TENANT);
commands.add(getTenant());
}
if (StringUtils.isNotBlank(getBaseUri())) {
commands.add(CxConstants.BASE_URI);
commands.add(getBaseUri());
}
if (StringUtils.isNotBlank(getBaseAuthUri())) {
commands.add(CxConstants.BASE_AUTH_URI);
commands.add(getBaseAuthUri());
}
if (getAdditionalParameters() != null)
commands.addAll(getAdditionalParameters());
return commands;
}
@SuppressWarnings("ALL")
public static class CxConfigBuilder {
public CxConfigBuilder additionalParameters(String additionalParameters) {
this.additionalParameters = parseAdditionalParameters(additionalParameters);
return this;
}
}
static List<String> parseAdditionalParameters(String additionalParameters) {
List<String> additionalParametersList = new ArrayList<>();
if (StringUtils.isNotBlank(additionalParameters)) {
Matcher m = pattern.matcher(additionalParameters);
while (m.find()) {
additionalParametersList.add(m.group(1).replaceAll("\"", ""));
}
}
return additionalParametersList;
}
}