From 51f2dfc4a3c1066eeb723641783c82a9a0eaea21 Mon Sep 17 00:00:00 2001 From: Jeff Williams Date: Fri, 5 Jul 2013 08:44:54 -0700 Subject: [PATCH] store rhino nodes differently; remove unnecessary node properties (#2) --- src/org/jsdoc/AstBuilder.java | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/src/org/jsdoc/AstBuilder.java b/src/org/jsdoc/AstBuilder.java index 1c363f3351..398248dffd 100644 --- a/src/org/jsdoc/AstBuilder.java +++ b/src/org/jsdoc/AstBuilder.java @@ -31,8 +31,6 @@ public class AstBuilder { private static final String NODE_ID = HiddenProperties.NODE_ID.getPropertyName(); - private static final String RHINO_NODE = HiddenProperties.RHINO_NODE.getPropertyName(); - private static final String ROOT = HiddenProperties.ROOT.getPropertyName(); private static final String TYPE = Properties.TYPE.getPropertyName(); private static Context cx; @@ -40,6 +38,7 @@ public class AstBuilder private Parser parser; private NativeObject ast; + private Map rhinoNodes; private AstRoot root; private List seenComments; @@ -105,6 +104,7 @@ public void reset() { parser = null; ast = null; + rhinoNodes = new HashMap(); root = null; seenComments = new ArrayList(); } @@ -114,6 +114,11 @@ public NativeObject getAst() return ast; } + public Map getRhinoNodes() + { + return rhinoNodes; + } + public NativeObject build(String sourceCode, String sourceName) { // Reset the instance's state if necessary @@ -276,7 +281,8 @@ private NativeObject createNode(Entry info) Integer start; Integer end; - AstNode rhinoNode = (AstNode)info.get(RHINO_NODE); + String nodeId = (String)info.get("nodeId"); + AstNode rhinoNode = rhinoNodes.get(nodeId); NativeArray range = getRange(rhinoNode); info.put("range", range); @@ -286,12 +292,6 @@ private NativeObject createNode(Entry info) node = new JsDocNode(info); - if (this.ast == null && info.get(TYPE) == JsDocNode.PROGRAM) { - node.put(ROOT, node.getNativeObject()); - } else { - node.put(ROOT, this.ast); - } - return node.getNativeObject(); } @@ -329,11 +329,12 @@ private NativeObject processNode(AstNode rhinoNode) // rhinoNode.toSource()); NativeObject node = null; + String nodeId = getRhinoNodeId(rhinoNode); Entry info = new Entry(); NodeTypes type = NodeTypes.valueOf(rhinoNode.shortName()); - info.put(NODE_ID, getRhinoNodeId(rhinoNode)); - info.put(RHINO_NODE, rhinoNode); + info.put(NODE_ID, nodeId); + rhinoNodes.put(nodeId, rhinoNode); // surely there's a better way to do this... switch (type) { @@ -981,9 +982,7 @@ public String getPropertyName() enum HiddenProperties { - RHINO_NODE ("rhinoNode"), - NODE_ID ("nodeId"), - ROOT ("root"); + NODE_ID ("nodeId"); private String propertyName; @@ -1091,11 +1090,6 @@ public final void put(String key, Object value) node.put(key, node, value); } - public final JsDocNode getRoot() - { - return (JsDocNode)get(HiddenProperties.ROOT.getPropertyName()); - } - public final NativeObject getNativeObject() { return node;