Skip to content

Commit

Permalink
Merge pull request #413 from ascopes/task/simplify-arg-file-builder
Browse files Browse the repository at this point in the history
Simplify logic in ArgFileBuilder
  • Loading branch information
ascopes authored Oct 2, 2024
2 parents 93cc667 + c1cf94f commit d91962b
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -352,9 +352,7 @@ private Path writeArgFile(
ArgumentFileBuilder argFileBuilder
) throws IOException {
var argFile = scratchDir.resolve("args.txt");
try (var writer = Files.newBufferedWriter(argFile, charset, StandardOpenOption.CREATE_NEW)) {
argFileBuilder.write(writer);
}
Files.writeString(argFile, argFileBuilder.toString(), charset, StandardOpenOption.CREATE_NEW);
return argFile;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@

package io.github.ascopes.protobufmavenplugin.utils;

import java.io.IOException;
import java.io.Writer;
import java.util.ArrayList;
import java.util.List;

Expand All @@ -44,41 +42,46 @@ public ArgumentFileBuilder add(Object argument) {
return this;
}

public void write(Writer writer) throws IOException {
@Override
public String toString() {
var sb = new StringBuilder();

for (var argument : arguments) {
if (argument.chars().noneMatch(c -> " \n\r\t'\"".indexOf(c) >= 0)) {
writer.append(argument).append("\n");
sb.append(argument).append("\n");
continue;
}

writer.append('"');
sb.append('"');
for (var i = 0; i < argument.length(); ++i) {
var nextChar = argument.charAt(i);
switch (nextChar) {
case '"':
writer.append("\\\"");
sb.append("\\\"");
break;
case '\'':
writer.append("\\'");
sb.append("\\'");
break;
case '\\':
writer.append("\\\\");
sb.append("\\\\");
break;
case '\n':
writer.append("\\n");
sb.append("\\n");
break;
case '\r':
writer.append("\\r");
sb.append("\\r");
break;
case '\t':
writer.append("\\t");
sb.append("\\t");
break;
default:
writer.append(nextChar);
sb.append(nextChar);
break;
}
}
writer.append("\"\n");
sb.append("\"\n");
}

return sb.toString();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.params.provider.Arguments.arguments;

import java.io.IOException;
import java.io.StringWriter;
import java.util.List;
import java.util.stream.Stream;
import org.junit.jupiter.api.DisplayName;
Expand All @@ -37,7 +35,7 @@ class ArgumentFileBuilderTest {
void argumentsAreConvertedToStringArgumentFileInExpectedFormat(
List<Object> givenArguments,
String expectedResult
) throws IOException {
) {
// Given
var builder = new ArgumentFileBuilder();

Expand All @@ -46,11 +44,7 @@ void argumentsAreConvertedToStringArgumentFileInExpectedFormat(
builder.add(argument);
}

String actualResult;
try (var stringWriter = new StringWriter()) {
builder.write(stringWriter);
actualResult = stringWriter.toString();
}
var actualResult = builder.toString();

// Then
assertThat(actualResult).isEqualTo(expectedResult);
Expand Down

0 comments on commit d91962b

Please sign in to comment.