1 /** XelfiCompilerMain class
2 * @author: Filip Dvorak
6 package xelfi.compiler;
9 import java.util.Arrays;
10 import javax.tools.JavaCompiler;
11 import javax.tools.StandardJavaFileManager;
12 import javax.tools.ToolProvider;
15 class XelfiCompilerMain extends Object implements MainCompiler
17 /** Output from compiler is send here. */
18 protected XelfiCompilerOutput out;
20 XelfiCompilerMain(XelfiCompilerOutput o)
25 public void compileClass(File file)
28 if(CompilerOptions.getUseGparam())
32 args[1] = file.toString();
33 output("Compiling: " + args[0] + " " + args[1]);
38 args[0] = file.toString();
39 output("Compiling: " + args[0]);
41 JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
42 StandardJavaFileManager fm = compiler.getStandardFileManager(null, null, null);
44 compiler.getTask(new OutputStreamWriter(out), fm, null, Arrays.asList(args).subList(0, args.length - 1), null, fm.getJavaFileObjects(args[args.length - 1])).call();
48 } catch (IOException ex) {
55 public void error(String err)
57 out.topLevelError(err);
60 public void output(String msg)
62 out.topLevelOutput(msg);