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).
|
shouldTraverse
private 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)
CompilerPass
process
in interface CompilerPass
externs
- Top of external JS treeroot
- Top of JS treepublic java.lang.String getGeneratedExterns()
public void visit(NodeTraversal t, Node n, Node parent)
NodeTraversal.Callback
Visits 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.Callback
private void handleSymbolExportCall(Node parent)
private void handlePropertyExportCall(Node parent)
private void handleExportDefinition(NodeTraversal t, Node definitionNode)