@GwtIncompatible(value="Unnecessary") public abstract class AbstractCommandLineRunner<A extends Compiler,B extends CompilerOptions> extends Object
class MyCommandLineRunner extends
AbstractCommandLineRunner<MyCompiler, MyOptions> {
MyCommandLineRunner(String[] args) {
super(args);
}
@Override
protected MyOptions createOptions() {
MyOptions options = new MyOptions();
CompilerFlagTranslator.setOptionsFromFlags(options);
addMyCrazyCompilerPassThatOutputsAnExtraFile(options);
return options;
}
@Override
protected MyCompiler createCompiler() {
return new MyCompiler();
}
public static void main(String[] args) {
(new MyCommandLineRunner(args)).run();
}
}
| Modifier and Type | Class and Description |
|---|---|
protected static class |
AbstractCommandLineRunner.CommandLineConfig
Configurations for the command line configs.
|
protected static class |
AbstractCommandLineRunner.FlagEntry<T>
A pair from flag to its value.
|
static class |
AbstractCommandLineRunner.FlagUsageException
An exception thrown when command-line flags are used incorrectly.
|
static class |
AbstractCommandLineRunner.JsModuleSpec
Represents a specification for a js module.
|
protected static class |
AbstractCommandLineRunner.JsonFileSpec
Representation of a source file from an encoded json stream input
|
protected static class |
AbstractCommandLineRunner.JsSourceType
Flag types for js source files.
|
| Modifier and Type | Method and Description |
|---|---|
protected abstract void |
addWhitelistWarningsGuard(CompilerOptions options,
File whitelistFile) |
protected void |
checkModuleName(String name)
Validates the module name.
|
protected abstract A |
createCompiler()
Returns the instance of the Compiler to use when
run() is
called. |
protected List<SourceFile> |
createExterns(CompilerOptions options) |
protected List<SourceFile> |
createInputs(List<AbstractCommandLineRunner.FlagEntry<AbstractCommandLineRunner.JsSourceType>> files,
boolean allowStdIn,
List<AbstractCommandLineRunner.JsModuleSpec> jsModuleSpecs)
Creates inputs from a list of files.
|
protected List<SourceFile> |
createInputs(List<AbstractCommandLineRunner.FlagEntry<AbstractCommandLineRunner.JsSourceType>> files,
List<AbstractCommandLineRunner.JsonFileSpec> jsonFiles,
boolean allowStdIn,
List<AbstractCommandLineRunner.JsModuleSpec> jsModuleSpecs)
Creates inputs from a list of source files, zips and json files.
|
protected List<SourceFile> |
createInputs(List<AbstractCommandLineRunner.FlagEntry<AbstractCommandLineRunner.JsSourceType>> files,
List<AbstractCommandLineRunner.JsonFileSpec> jsonFiles,
List<AbstractCommandLineRunner.JsModuleSpec> jsModuleSpecs)
Creates inputs from a list of source files and json files.
|
protected abstract B |
createOptions()
Returns the instance of the Options to use when
run() is called. |
protected int |
doRun()
Parses command-line arguments and runs the compiler.
|
protected OutputStream |
filenameToOutputStream(String fileName)
Converts a file name into a Outputstream.
|
static List<SourceFile> |
getBuiltinExterns(CompilerOptions.Environment env) |
protected AbstractCommandLineRunner.CommandLineConfig |
getCommandLineConfig()
Get the command line config, so that it can be initialized.
|
protected A |
getCompiler() |
protected DiagnosticGroups |
getDiagnosticGroups()
The warning classes that are available from the command-line.
|
protected PrintStream |
getErrorPrintStream()
Returns the PrintStream for writing errors associated with this
AbstractCommandLineRunner.
|
protected boolean |
isInTestMode()
Returns whether we're in test mode.
|
List<AbstractCommandLineRunner.JsonFileSpec> |
parseJsonFilesFromInputStream() |
static List<JSError> |
removeDuplicateZipEntries(List<SourceFile> sourceFiles,
List<AbstractCommandLineRunner.JsModuleSpec> jsModuleSpecs)
Check that relative paths inside zip files are unique, since multiple files
with the same path inside different zips are considered duplicate inputs.
|
void |
run()
Runs the Compiler and calls System.exit() with the exit status of the
compiler.
|
protected void |
setRunOptions(CompilerOptions options)
Sets options based on the configurations set flags API.
|
protected static void |
setWarningGuardOptions(CompilerOptions options,
ArrayList<AbstractCommandLineRunner.FlagEntry<CheckLevel>> warningGuards,
DiagnosticGroups diagnosticGroups) |
protected boolean isInTestMode()
protected AbstractCommandLineRunner.CommandLineConfig getCommandLineConfig()
protected abstract A createCompiler()
run() is
called.protected abstract B createOptions()
run() is called.
createCompiler() is called before createOptions(), so getCompiler()
will not return null when createOptions() is called.protected DiagnosticGroups getDiagnosticGroups()
protected abstract void addWhitelistWarningsGuard(CompilerOptions options, File whitelistFile)
protected static void setWarningGuardOptions(CompilerOptions options, ArrayList<AbstractCommandLineRunner.FlagEntry<CheckLevel>> warningGuards, DiagnosticGroups diagnosticGroups)
protected void setRunOptions(CompilerOptions options) throws IOException
IOExceptionprotected final A getCompiler()
public static List<SourceFile> getBuiltinExterns(CompilerOptions.Environment env) throws IOException
IOExceptionpublic final void run()
protected PrintStream getErrorPrintStream()
public List<AbstractCommandLineRunner.JsonFileSpec> parseJsonFilesFromInputStream() throws IOException
IOExceptionprotected List<SourceFile> createInputs(List<AbstractCommandLineRunner.FlagEntry<AbstractCommandLineRunner.JsSourceType>> files, boolean allowStdIn, List<AbstractCommandLineRunner.JsModuleSpec> jsModuleSpecs) throws IOException
files - A list of flag entries indicates js and zip file names.allowStdIn - Whether '-' is allowed appear as a filename to represent
stdin. If true, '-' is only allowed to appear once.jsModuleSpecs - A list js module specs.IOExceptionprotected List<SourceFile> createInputs(List<AbstractCommandLineRunner.FlagEntry<AbstractCommandLineRunner.JsSourceType>> files, List<AbstractCommandLineRunner.JsonFileSpec> jsonFiles, List<AbstractCommandLineRunner.JsModuleSpec> jsModuleSpecs) throws IOException
files - A list of flag entries indicates js and zip file names.jsonFiles - A list of json encoded files.jsModuleSpecs - A list js module specs.IOExceptionpublic static List<JSError> removeDuplicateZipEntries(List<SourceFile> sourceFiles, List<AbstractCommandLineRunner.JsModuleSpec> jsModuleSpecs) throws IOException
sourceFiles may be modified if duplicates are removed.IOExceptionprotected List<SourceFile> createInputs(List<AbstractCommandLineRunner.FlagEntry<AbstractCommandLineRunner.JsSourceType>> files, List<AbstractCommandLineRunner.JsonFileSpec> jsonFiles, boolean allowStdIn, List<AbstractCommandLineRunner.JsModuleSpec> jsModuleSpecs) throws IOException
files - A list of flag entries indicates js and zip file namesjsonFiles - A list of json encoded files.allowStdIn - Whether '-' is allowed appear as a filename to represent
stdin. If true, '-' is only allowed to appear once.jsModuleSpecs - A list js module specs.IOExceptionprotected void checkModuleName(String name)
name - The module nameprotected int doRun()
throws IOException
IOExceptionprotected List<SourceFile> createExterns(CompilerOptions options) throws IOException
IOExceptionprotected OutputStream filenameToOutputStream(String fileName) throws IOException
IOExceptionCopyright © 2009-2016 Google. All Rights Reserved.