You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2018/08/13 23:45:25 UTC

groovy git commit: GROOVY-8748: CompileUnit could implement NodeMetaDataHandler to act as a "global" node for metadata (closes #783)

Repository: groovy
Updated Branches:
  refs/heads/master c9e9eddc4 -> 223366702


GROOVY-8748: CompileUnit could implement NodeMetaDataHandler to act as a "global" node for metadata (closes #783)


Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/22336670
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/22336670
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/22336670

Branch: refs/heads/master
Commit: 223366702a13ef369f216af2ba443670f42f02a1
Parents: c9e9edd
Author: Paul King <pa...@asert.com.au>
Authored: Mon Aug 13 09:24:24 2018 +1000
Committer: Paul King <pa...@asert.com.au>
Committed: Tue Aug 14 09:41:03 2018 +1000

----------------------------------------------------------------------
 .../java/org/codehaus/groovy/ast/CompileUnit.java   | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/22336670/src/main/java/org/codehaus/groovy/ast/CompileUnit.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/ast/CompileUnit.java b/src/main/java/org/codehaus/groovy/ast/CompileUnit.java
index ea0722c..a453bb1 100644
--- a/src/main/java/org/codehaus/groovy/ast/CompileUnit.java
+++ b/src/main/java/org/codehaus/groovy/ast/CompileUnit.java
@@ -23,6 +23,7 @@ import org.codehaus.groovy.control.CompilerConfiguration;
 import org.codehaus.groovy.control.SourceUnit;
 import org.codehaus.groovy.control.messages.SyntaxErrorMessage;
 import org.codehaus.groovy.syntax.SyntaxException;
+import org.codehaus.groovy.util.ListHashMap;
 
 import java.security.CodeSource;
 import java.util.ArrayList;
@@ -39,10 +40,8 @@ import java.util.Map;
  * <p>
  * It's attached to MethodNodes and ClassNodes and is used to find fully qualified names of classes,
  * resolve imports, and that sort of thing.
- *
- * @author <a href="mailto:james@coredevelopers.net">James Strachan </a>
  */
-public class CompileUnit {
+public class CompileUnit implements NodeMetaDataHandler {
 
     private final List<ModuleNode> modules = new ArrayList<ModuleNode>();
     private final Map<String, ClassNode> classes = new HashMap<String, ClassNode>();
@@ -52,6 +51,7 @@ public class CompileUnit {
     private final Map<String, ClassNode> classesToCompile = new HashMap<String, ClassNode>();
     private final Map<String, SourceUnit> classNameToSource = new HashMap<String, SourceUnit>();
     private final Map<String, InnerClassNode> generatedInnerClasses = new HashMap();
+    private Map metaDataMap = null;
 
     public CompileUnit(GroovyClassLoader classLoader, CompilerConfiguration config) {
         this(classLoader, null, config);
@@ -190,4 +190,14 @@ public class CompileUnit {
     public Map<String, InnerClassNode> getGeneratedInnerClasses() {
         return Collections.unmodifiableMap(generatedInnerClasses);
     }
+
+    @Override
+    public ListHashMap getMetaDataMap() {
+        return (ListHashMap) metaDataMap;
+    }
+
+    @Override
+    public void setMetaDataMap(Map<?, ?> metaDataMap) {
+        this.metaDataMap = metaDataMap;
+    }
 }