Move doMain method to CLICompiler.

This commit is contained in:
pTalanov
2012-04-26 16:07:46 +04:00
parent cdfa0678cf
commit f9d87cbf4b
4 changed files with 29 additions and 23 deletions
@@ -19,11 +19,13 @@ package org.jetbrains.jet.cli.common;
import com.sampullara.cli.Args;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.cli.common.messages.MessageRenderer;
import org.jetbrains.jet.cli.jvm.compiler.CompileEnvironmentException;
import java.io.PrintStream;
import java.util.List;
import static org.jetbrains.jet.cli.common.ExitCode.INTERNAL_ERROR;
import static org.jetbrains.jet.cli.common.ExitCode.OK;
/**
* @author Pavel Talanov
@@ -77,5 +79,22 @@ public abstract class CLICompiler<CLArgs extends CompilerArguments, CEConf exten
protected abstract CLArgs createArguments();
@NotNull
public abstract ExitCode exec(final PrintStream errStream, CLArgs arguments);
public abstract ExitCode exec(PrintStream errStream, CLArgs arguments);
/**
* Useful main for derived command line tools
*/
public static void doMain(@NotNull CLICompiler compiler, @NotNull String[] args) {
try {
ExitCode rc = compiler.exec(System.out, args);
if (rc != OK) {
System.err.println("exec() finished with " + rc + " return code");
System.exit(rc.getCode());
}
}
catch (CompileEnvironmentException e) {
System.err.println(e.getMessage());
System.exit(INTERNAL_ERROR.getCode());
}
}
}
@@ -31,7 +31,7 @@ public abstract class CompileEnvironmentConfig {
@NotNull
private final MessageCollector messageCollector;
@NotNull
private List<CompilerPlugin> compilerPlugins = Lists.newArrayList();
private final List<CompilerPlugin> compilerPlugins = Lists.newArrayList();
/**
* NOTE: It's very important to call dispose for every object of this class or there will be memory leaks.
@@ -25,7 +25,10 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.cli.common.CLICompiler;
import org.jetbrains.jet.cli.common.ExitCode;
import org.jetbrains.jet.cli.common.messages.*;
import org.jetbrains.jet.cli.jvm.compiler.*;
import org.jetbrains.jet.cli.jvm.compiler.CompileEnvironmentConfiguration;
import org.jetbrains.jet.cli.jvm.compiler.CompileEnvironmentUtil;
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment;
import org.jetbrains.jet.cli.jvm.compiler.KotlinToJVMBytecodeCompiler;
import org.jetbrains.jet.codegen.CompilationException;
import org.jetbrains.jet.lang.resolve.java.CompilerDependencies;
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
@@ -48,24 +51,6 @@ public class K2JVMCompiler extends CLICompiler<K2JVMCompilerArguments, CompileEn
doMain(new K2JVMCompiler(), args);
}
/**
* Useful main for derived command line tools
*/
public static void doMain(K2JVMCompiler compiler, String[] args) {
try {
ExitCode rc = compiler.exec(System.out, args);
if (rc != OK) {
System.err.println("exec() finished with " + rc + " return code");
System.exit(rc.getCode());
}
}
catch (CompileEnvironmentException e) {
System.err.println(e.getMessage());
System.exit(INTERNAL_ERROR.getCode());
}
}
/**
* Executes the compiler on the parsed arguments
*/