|
1 | 1 | /*
|
2 |
| - * Copyright 2021 DiffPlug |
| 2 | + * Copyright 2021-2024 DiffPlug |
3 | 3 | *
|
4 | 4 | * Licensed under the Apache License, Version 2.0 (the "License");
|
5 | 5 | * you may not use this file except in compliance with the License.
|
@@ -35,24 +35,37 @@ private NativeCmdStep() {}
|
35 | 35 | public static FormatterStep create(String name, File pathToExe, List<String> arguments) {
|
36 | 36 | Objects.requireNonNull(name, "name");
|
37 | 37 | Objects.requireNonNull(pathToExe, "pathToExe");
|
38 |
| - return FormatterStep.createLazy(name, () -> new State(FileSignature.signAsList(pathToExe), arguments), State::toFunc); |
| 38 | + return FormatterStep.createLazy(name, () -> new State(FileSignature.promise(pathToExe), arguments), State::toRuntime, Runtime::toFunc); |
39 | 39 | }
|
40 | 40 |
|
41 | 41 | static class State implements Serializable {
|
42 |
| - private static final long serialVersionUID = 1L; |
| 42 | + private static final long serialVersionUID = 2L; |
| 43 | + final FileSignature.Promised pathToExe; |
| 44 | + final List<String> arguments; |
43 | 45 |
|
44 |
| - final FileSignature pathToExe; |
| 46 | + State(FileSignature.Promised pathToExe, List<String> arguments) { |
| 47 | + this.pathToExe = pathToExe; |
| 48 | + this.arguments = arguments; |
| 49 | + } |
| 50 | + |
| 51 | + Runtime toRuntime() { |
| 52 | + return new Runtime(pathToExe.get().getOnlyFile(), arguments); |
| 53 | + } |
| 54 | + } |
45 | 55 |
|
| 56 | + static class Runtime implements Serializable { |
| 57 | + private static final long serialVersionUID = 2L; |
| 58 | + final File pathToExe; |
46 | 59 | final List<String> arguments;
|
47 | 60 |
|
48 |
| - State(FileSignature pathToExe, List<String> arguments) { |
| 61 | + Runtime(File pathToExe, List<String> arguments) { |
49 | 62 | this.pathToExe = pathToExe;
|
50 | 63 | this.arguments = arguments;
|
51 | 64 | }
|
52 | 65 |
|
53 | 66 | String format(ProcessRunner runner, String input) throws IOException, InterruptedException {
|
54 | 67 | List<String> argumentsWithPathToExe = new ArrayList<>();
|
55 |
| - argumentsWithPathToExe.add(pathToExe.getOnlyFile().getAbsolutePath()); |
| 68 | + argumentsWithPathToExe.add(pathToExe.getAbsolutePath()); |
56 | 69 | if (arguments != null) {
|
57 | 70 | argumentsWithPathToExe.addAll(arguments);
|
58 | 71 | }
|
|
0 commit comments