@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.FlagEntry<T>
A pair from flag to its value.
|
static class |
AbstractCommandLineRunner.FlagUsageException
An exception thrown when command-line flags are used incorrectly.
|
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<com.google.javascript.jscomp.AbstractCommandLineRunner.JsModuleSpec> jsModuleSpecs)
Creates inputs from a list of files.
|
protected List<SourceFile> |
createInputs(List<AbstractCommandLineRunner.FlagEntry<AbstractCommandLineRunner.JsSourceType>> files,
List<com.google.javascript.jscomp.AbstractCommandLineRunner.JsonFileSpec> jsonFiles,
boolean allowStdIn,
List<com.google.javascript.jscomp.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<com.google.javascript.jscomp.AbstractCommandLineRunner.JsonFileSpec> jsonFiles,
List<com.google.javascript.jscomp.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 com.google.javascript.jscomp.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<com.google.javascript.jscomp.AbstractCommandLineRunner.JsonFileSpec> |
parseJsonFilesFromInputStream() |
static List<JSError> |
removeDuplicateZipEntries(List<SourceFile> sourceFiles)
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 boolean isInTestMode()
protected com.google.javascript.jscomp.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 void setRunOptions(CompilerOptions options) throws IOException
IOException
protected final A getCompiler()
public static List<SourceFile> getBuiltinExterns(CompilerOptions.Environment env) throws IOException
IOException
public final void run()
protected PrintStream getErrorPrintStream()
public List<com.google.javascript.jscomp.AbstractCommandLineRunner.JsonFileSpec> parseJsonFilesFromInputStream() throws IOException
IOException
protected List<SourceFile> createInputs(List<AbstractCommandLineRunner.FlagEntry<AbstractCommandLineRunner.JsSourceType>> files, boolean allowStdIn, List<com.google.javascript.jscomp.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.IOException
protected List<SourceFile> createInputs(List<AbstractCommandLineRunner.FlagEntry<AbstractCommandLineRunner.JsSourceType>> files, List<com.google.javascript.jscomp.AbstractCommandLineRunner.JsonFileSpec> jsonFiles, List<com.google.javascript.jscomp.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.IOException
public static List<JSError> removeDuplicateZipEntries(List<SourceFile> sourceFiles) throws IOException
sourceFiles
may be modified if duplicates are removed.IOException
protected List<SourceFile> createInputs(List<AbstractCommandLineRunner.FlagEntry<AbstractCommandLineRunner.JsSourceType>> files, List<com.google.javascript.jscomp.AbstractCommandLineRunner.JsonFileSpec> jsonFiles, boolean allowStdIn, List<com.google.javascript.jscomp.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.IOException
protected void checkModuleName(String name)
name
- The module nameprotected int doRun() throws IOException
IOException
protected List<SourceFile> createExterns(CompilerOptions options) throws IOException
IOException
protected OutputStream filenameToOutputStream(String fileName) throws IOException
IOException
Copyright © 2009-2016 Google. All Rights Reserved.