final class ExternExportsPass extends NodeTraversal.AbstractPostOrderCallback implements CompilerPass
| Modifier and Type | Class and Description |
|---|---|
private class |
ExternExportsPass.Export |
private class |
ExternExportsPass.PropertyExport
A property export.
|
private class |
ExternExportsPass.SymbolExport
A symbol export.
|
| Modifier and Type | Field and Description |
|---|---|
private java.util.Set<java.lang.String> |
alreadyExportedPaths
A list of exported paths.
|
private AbstractCompiler |
compiler
The parent compiler.
|
private java.util.Map<java.lang.String,Node> |
definitionMap
A map of all assigns to their parent nodes.
|
private java.util.List<java.lang.String> |
exportPropertyFunctionNames
A list of function names used to export properties.
|
private java.util.List<ExternExportsPass.Export> |
exports
The exports found.
|
private java.util.List<java.lang.String> |
exportSymbolFunctionNames
A list of function names used to export symbols.
|
private Node |
externsRoot
The AST root which holds the externs generated.
|
private java.util.Map<java.lang.String,java.lang.String> |
mappedPaths
A mapping of internal paths to exported paths.
|
| Constructor and Description |
|---|
ExternExportsPass(AbstractCompiler compiler)
Creates an instance.
|
| Modifier and Type | Method and Description |
|---|---|
java.lang.String |
getGeneratedExterns()
Returns the generated externs.
|
private void |
handleExportDefinition(NodeTraversal t,
Node definitionNode) |
private void |
handlePropertyExportCall(Node parent) |
private void |
handleSymbolExportCall(Node parent) |
private void |
initExportMethods() |
void |
process(Node externs,
Node root)
Process the JS with root node root.
|
void |
visit(NodeTraversal t,
Node n,
Node parent)
Visits a node in postorder (after its children have been visited).
|
shouldTraverseprivate final java.util.List<ExternExportsPass.Export> exports
private final java.util.Map<java.lang.String,Node> definitionMap
private final AbstractCompiler compiler
private final Node externsRoot
private final java.util.Map<java.lang.String,java.lang.String> mappedPaths
private final java.util.Set<java.lang.String> alreadyExportedPaths
private java.util.List<java.lang.String> exportSymbolFunctionNames
private java.util.List<java.lang.String> exportPropertyFunctionNames
ExternExportsPass(AbstractCompiler compiler)
private void initExportMethods()
public void process(Node externs, Node root)
CompilerPassprocess in interface CompilerPassexterns - Top of external JS treeroot - Top of JS treepublic java.lang.String getGeneratedExterns()
public void visit(NodeTraversal t, Node n, Node parent)
NodeTraversal.CallbackVisits a node in postorder (after its children have been visited).
A node is visited only if all its parents should be traversed
(NodeTraversal.Callback.shouldTraverse(NodeTraversal, Node, Node)).
Implementations can have side effects (e.g. modifying the parse tree).
visit in interface NodeTraversal.Callbackprivate void handleSymbolExportCall(Node parent)
private void handlePropertyExportCall(Node parent)
private void handleExportDefinition(NodeTraversal t, Node definitionNode)