1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.cling.invoker;
20
21 import java.io.InputStream;
22 import java.io.OutputStream;
23 import java.nio.file.Path;
24 import java.util.List;
25 import java.util.Map;
26 import java.util.Optional;
27
28 import org.apache.maven.api.annotations.Nonnull;
29 import org.apache.maven.api.annotations.Nullable;
30 import org.apache.maven.api.cli.InvokerRequest;
31 import org.apache.maven.api.cli.Options;
32 import org.apache.maven.api.cli.ParserRequest;
33 import org.apache.maven.api.cli.extensions.CoreExtension;
34
35 import static java.util.Objects.requireNonNull;
36
37 public abstract class BaseInvokerRequest<T extends Options> implements InvokerRequest<T> {
38 private final ParserRequest parserRequest;
39 private final Path cwd;
40 private final Path installationDirectory;
41 private final Path userHomeDirectory;
42 private final Map<String, String> userProperties;
43 private final Map<String, String> systemProperties;
44 private final Path topDirectory;
45 private final Path rootDirectory;
46
47 private final InputStream in;
48 private final OutputStream out;
49 private final OutputStream err;
50 private final List<CoreExtension> coreExtensions;
51
52 @SuppressWarnings("ParameterNumber")
53 public BaseInvokerRequest(
54 @Nonnull ParserRequest parserRequest,
55 @Nonnull Path cwd,
56 @Nonnull Path installationDirectory,
57 @Nonnull Path userHomeDirectory,
58 @Nonnull Map<String, String> userProperties,
59 @Nonnull Map<String, String> systemProperties,
60 @Nonnull Path topDirectory,
61 @Nullable Path rootDirectory,
62 @Nullable InputStream in,
63 @Nullable OutputStream out,
64 @Nullable OutputStream err,
65 @Nullable List<CoreExtension> coreExtensions) {
66 this.parserRequest = requireNonNull(parserRequest);
67 this.cwd = requireNonNull(cwd);
68 this.installationDirectory = requireNonNull(installationDirectory);
69 this.userHomeDirectory = requireNonNull(userHomeDirectory);
70 this.userProperties = requireNonNull(userProperties);
71 this.systemProperties = requireNonNull(systemProperties);
72 this.topDirectory = requireNonNull(topDirectory);
73 this.rootDirectory = rootDirectory;
74
75 this.in = in;
76 this.out = out;
77 this.err = err;
78 this.coreExtensions = coreExtensions;
79 }
80
81 @Override
82 public ParserRequest parserRequest() {
83 return parserRequest;
84 }
85
86 @Override
87 public Path cwd() {
88 return cwd;
89 }
90
91 @Override
92 public Path installationDirectory() {
93 return installationDirectory;
94 }
95
96 @Override
97 public Path userHomeDirectory() {
98 return userHomeDirectory;
99 }
100
101 @Override
102 public Map<String, String> userProperties() {
103 return userProperties;
104 }
105
106 @Override
107 public Map<String, String> systemProperties() {
108 return systemProperties;
109 }
110
111 @Override
112 public Path topDirectory() {
113 return topDirectory;
114 }
115
116 @Override
117 public Optional<Path> rootDirectory() {
118 return Optional.ofNullable(rootDirectory);
119 }
120
121 @Override
122 public Optional<InputStream> in() {
123 return Optional.ofNullable(in);
124 }
125
126 @Override
127 public Optional<OutputStream> out() {
128 return Optional.ofNullable(out);
129 }
130
131 @Override
132 public Optional<OutputStream> err() {
133 return Optional.ofNullable(err);
134 }
135
136 @Override
137 public Optional<List<CoreExtension>> coreExtensions() {
138 return Optional.ofNullable(coreExtensions);
139 }
140 }