Repository: groovy
Updated Branches:
  refs/heads/master 9c7504c0b -> 2019d3cd3


Refine options for groovydoc


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

Branch: refs/heads/master
Commit: 2019d3cd37999cadfb0ba06f4f08371d2e62ab58
Parents: 9c7504c
Author: sunlan <[email protected]>
Authored: Sat Jun 10 08:27:46 2017 +0800
Committer: sunlan <[email protected]>
Committed: Sat Jun 10 08:28:09 2017 +0800

----------------------------------------------------------------------
 .../groovy/parser/antlr4/GroovydocManager.java  | 27 ++++++++++++++------
 1 file changed, 19 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/2019d3cd/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/GroovydocManager.java
----------------------------------------------------------------------
diff --git 
a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/GroovydocManager.java
 
b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/GroovydocManager.java
index 449b2e7..2fdef75 100644
--- 
a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/GroovydocManager.java
+++ 
b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/GroovydocManager.java
@@ -42,22 +42,33 @@ import static 
org.codehaus.groovy.runtime.DefaultGroovyMethods.asBoolean;
 public class GroovydocManager {
     public static final String DOC_COMMENT = "_DOC_COMMENT"; // keys for meta 
data
     private static final String DOC_COMMENT_PREFIX = "/**";
-    private static final String EXTRACT_DOC_COMMENT = 
"groovy.extract.doc.comment";
     private static final String TRUE_STR = "true";
-    private static final boolean EXTRACTING_DOC_COMMENT_ENABLED;
+
+    @Deprecated
+    private static final String EXTRACT_DOC_COMMENT = 
"groovy.extract.doc.comment"; // it will be removed in future releases and 
replaced with ATTACH_GROOVYDOC
+    private static final String ATTACH_GROOVYDOC = "groovy.attach.groovydoc";
+    private static final boolean ATTACHING_GROOVYDOC_ENABLED;
+    private static final String ATTACH_RUNTIME_GROOVYDOC = 
"groovy.attach.runtime.groovydoc";
+    private static final boolean ATTACHING_RUNTIME_GROOVYDOC_ENABLED;
     private static final String VALUE = "value";
     private static final String RUNTIME_GROOVYDOC_PATTERN = 
"(?s)/[*][*]\\s+(\\s+[*]\\s*)*@Groovydoc\\b.+?[*]/";
     private AstBuilder astBuilder;
 
     static {
-        boolean edce;
+        ATTACHING_GROOVYDOC_ENABLED = isFeatureEnabled(ATTACH_GROOVYDOC) || 
isFeatureEnabled(EXTRACT_DOC_COMMENT);
+        ATTACHING_RUNTIME_GROOVYDOC_ENABLED = 
isFeatureEnabled(ATTACH_RUNTIME_GROOVYDOC);
+    }
+
+    private static boolean isFeatureEnabled(String featureOpt) {
+        boolean result;
+
         try {
-            edce = TRUE_STR.equals(System.getProperty(EXTRACT_DOC_COMMENT));
+            result = TRUE_STR.equals(System.getProperty(featureOpt));
         } catch (Exception e) {
-            edce = false;
+            result = false;
         }
 
-        EXTRACTING_DOC_COMMENT_ENABLED = edce;
+        return result;
     }
 
     public GroovydocManager(AstBuilder astBuilder) {
@@ -86,7 +97,7 @@ public class GroovydocManager {
      * Attach doc comment to member node as meta data
      */
     private void attachDocCommentAsMetaData(ASTNode node, String 
docCommentNodeText) {
-        if (!EXTRACTING_DOC_COMMENT_ENABLED) {
+        if (!ATTACHING_GROOVYDOC_ENABLED) {
             return;
         }
 
@@ -101,7 +112,7 @@ public class GroovydocManager {
             return;
         }
 
-        if (!docCommentNodeText.matches(RUNTIME_GROOVYDOC_PATTERN)) {
+        if (!(ATTACHING_RUNTIME_GROOVYDOC_ENABLED || 
docCommentNodeText.matches(RUNTIME_GROOVYDOC_PATTERN))) {
             return;
         }
 

Reply via email to