183 return new CompileCommand(command, md, compiler, this);
184 }
185
186 private Type(String fileName) {
187 this.fileName = fileName;
188 }
189 }
190
191 public static Builder getBuilder() {
192 return new Builder();
193 }
194
195 public static class Builder {
196 private final Set<String> vmopts = new LinkedHashSet<>();
197 private final Map<Type, StateBuilder<CompileCommand>> builders
198 = new HashMap<>();
199 private final JcmdStateBuilder jcmdStateBuilder;
200 private final List<JcmdCommand> jcmdCommands = new ArrayList<>();
201
202 public Builder() {
203 builders.put(Type.FILE, new CommandFileBuilder(Type.FILE.fileName));
204 builders.put(Type.OPTION, new CommandOptionsBuilder());
205 builders.put(Type.DIRECTIVE, new DirectiveBuilder(
206 Type.DIRECTIVE.fileName));
207 jcmdStateBuilder = new JcmdStateBuilder(Type.JCMD.fileName);
208 }
209
210 public void addFlag(String flag) {
211 vmopts.add(flag);
212 }
213
214 public void add(CompileCommand compileCommand) {
215 String[] vmOptions = compileCommand.command.vmOpts;
216 Collections.addAll(vmopts, vmOptions);
217 if (compileCommand.type == Type.JCMD) {
218 jcmdStateBuilder.add((JcmdCommand) compileCommand);
219 jcmdCommands.add((JcmdCommand) compileCommand);
220 } else {
221 StateBuilder<CompileCommand> builder = builders.get(
222 compileCommand.type);
|
183 return new CompileCommand(command, md, compiler, this);
184 }
185
186 private Type(String fileName) {
187 this.fileName = fileName;
188 }
189 }
190
191 public static Builder getBuilder() {
192 return new Builder();
193 }
194
195 public static class Builder {
196 private final Set<String> vmopts = new LinkedHashSet<>();
197 private final Map<Type, StateBuilder<CompileCommand>> builders
198 = new HashMap<>();
199 private final JcmdStateBuilder jcmdStateBuilder;
200 private final List<JcmdCommand> jcmdCommands = new ArrayList<>();
201
202 public Builder() {
203 addFlag("-Xmixed");
204 builders.put(Type.FILE, new CommandFileBuilder(Type.FILE.fileName));
205 builders.put(Type.OPTION, new CommandOptionsBuilder());
206 builders.put(Type.DIRECTIVE, new DirectiveBuilder(
207 Type.DIRECTIVE.fileName));
208 jcmdStateBuilder = new JcmdStateBuilder(Type.JCMD.fileName);
209 }
210
211 public void addFlag(String flag) {
212 vmopts.add(flag);
213 }
214
215 public void add(CompileCommand compileCommand) {
216 String[] vmOptions = compileCommand.command.vmOpts;
217 Collections.addAll(vmopts, vmOptions);
218 if (compileCommand.type == Type.JCMD) {
219 jcmdStateBuilder.add((JcmdCommand) compileCommand);
220 jcmdCommands.add((JcmdCommand) compileCommand);
221 } else {
222 StateBuilder<CompileCommand> builder = builders.get(
223 compileCommand.type);
|