Skip to content

Commit a0d46fc

Browse files
Fix Sonar
1 parent 152f1a5 commit a0d46fc

File tree

3 files changed

+31
-40
lines changed

3 files changed

+31
-40
lines changed

.github/workflows/create-github-release.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jobs:
3838
uses: actions/checkout@v4
3939

4040
- name: Set up GraalVM
41-
uses: graalvm/setup-graalvm@v1
41+
uses: graalvm/setup-graalvm@eec48106e0bf45f2976c2ff0c3e22395cced8243
4242
with:
4343
java-version: "21"
4444
distribution: "graalvm"
@@ -130,7 +130,7 @@ jobs:
130130
echo "body_path=release_notes.tmp" >> $GITHUB_OUTPUT
131131
132132
- name: Create GitHub Release
133-
uses: softprops/action-gh-release@v2
133+
uses: softprops/action-gh-release@6da8fa9354ddfdc4aeace5fc48d7f679b5214090
134134
with:
135135
name: "JFileTreePrettyPrinter ${{ github.ref_name }}"
136136
body_path: ${{ steps.changelog.outputs.body_path }}

src/main/java/io/github/computerdaddyguy/jfiletreeprettyprinter/cli/options/ExternalOptions.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,4 @@ record ExternalOptions(
88
@Valid @Nullable ChildLimit childLimit
99
) {
1010

11-
public ExternalOptions(Boolean emojis, ChildLimit childLimit) {
12-
this.emojis = emojis;
13-
this.childLimit = childLimit;
14-
}
15-
1611
}

src/main/java/io/github/computerdaddyguy/jfiletreeprettyprinter/cli/options/ExternalOptionsReader.java

Lines changed: 29 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -53,61 +53,57 @@ private void printFailure(boolean required, String msg, Object... args) {
5353
@Nullable
5454
private PrettyPrintOptions tryCandidate(Path optionsPath, boolean required) {
5555

56-
if (!optionsPath.toFile().exists()) {
56+
var optionsFile = optionsPath.toFile();
57+
if (!optionsFile.exists()) {
5758
printFailure(required, "Options file not found: %s", optionsPath);
5859
return null;
5960
}
6061

61-
if (!optionsPath.toFile().isFile()) {
62+
if (!optionsFile.isFile()) {
6263
printFailure(required, "Options file is actually not a file: %s", optionsPath);
6364
return null;
6465
}
6566

66-
if (!optionsPath.toFile().canRead()) {
67+
if (!optionsFile.canRead()) {
6768
printFailure(required, "Options file exist but is not readable: %s", optionsPath);
6869
return null;
6970
}
7071

7172
output.printDebug("Options file found: %s", optionsPath);
7273

73-
ExternalOptions externalOptions;
74+
ExternalOptions externalOptions = load(optionsPath, required);
75+
validate(optionsPath, externalOptions, required);
76+
77+
return mapToOptions(externalOptions);
78+
}
79+
80+
private ExternalOptions load(Path optionsPath, boolean required) {
7481
try {
75-
externalOptions = loadAndValidate(optionsPath);
76-
} catch (ConstraintViolationException e) {
77-
printFailure(required, "Invalid options file: %s\n%s", optionsPath, e.getMessage());
78-
return null;
82+
var mapper = JsonMapper.builder().build();
83+
ExternalOptions externalOptions = mapper.readValue(optionsPath, ExternalOptions.class);
84+
output.printDebug("%s", RecordUtils.toTextBlock(externalOptions));
85+
return externalOptions;
7986
} catch (RuntimeException e) {
8087
printFailure(required, "IO error or malformed options file: %s\n%s", optionsPath, e.getMessage());
8188
return null;
8289
}
83-
84-
return mapToOptions(externalOptions);
8590
}
8691

87-
private ExternalOptions loadAndValidate(Path optionsPath) {
88-
/*
89-
* READ
90-
*/
91-
var mapper = JsonMapper.builder().build();
92-
ExternalOptions externalOptions = mapper.readValue(optionsPath, ExternalOptions.class);
93-
94-
/*
95-
* VALIDATE
96-
*/
97-
var validatorFactory = Validation.byDefaultProvider()
98-
.configure()
99-
.messageInterpolator(new ParameterMessageInterpolator())
100-
.buildValidatorFactory();
101-
var validator = validatorFactory.getValidator();
102-
103-
var violations = validator.validate(externalOptions);
104-
if (!violations.isEmpty()) {
105-
throw new ConstraintViolationException(violations);
92+
private void validate(Path optionsPath, ExternalOptions externalOptions, boolean required) {
93+
try {
94+
var validatorFactory = Validation.byDefaultProvider()
95+
.configure()
96+
.messageInterpolator(new ParameterMessageInterpolator())
97+
.buildValidatorFactory();
98+
var validator = validatorFactory.getValidator();
99+
100+
var violations = validator.validate(externalOptions);
101+
if (!violations.isEmpty()) {
102+
throw new ConstraintViolationException(violations);
103+
}
104+
} catch (ConstraintViolationException e) {
105+
printFailure(required, "Invalid options file: %s\n%s", optionsPath, e.getMessage());
106106
}
107-
108-
output.printDebug("%s", RecordUtils.toTextBlock(externalOptions));
109-
110-
return externalOptions;
111107
}
112108

113109
private PrettyPrintOptions mapToOptions(ExternalOptions externalOptions) {

0 commit comments

Comments
 (0)