freemarker-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ddek...@apache.org
Subject [09/23] incubator-freemarker git commit: [unfinished] Getting rid of nestedBlock VS regulatedChildren
Date Tue, 15 Dec 2015 22:23:50 GMT
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/808ddadd/src/test/java/freemarker/core/ASTPrinter.java
----------------------------------------------------------------------
diff --git a/src/test/java/freemarker/core/ASTPrinter.java b/src/test/java/freemarker/core/ASTPrinter.java
index ace9818..fa907e8 100644
--- a/src/test/java/freemarker/core/ASTPrinter.java
+++ b/src/test/java/freemarker/core/ASTPrinter.java
@@ -260,9 +260,9 @@ public class ASTPrinter {
     }
 
     private static void validateAST(TemplateElement te) {
-        int ln = te.getRegulatedChildCount();
-        for (int i = 0; i < ln; i++) {
-            TemplateElement child = te.getRegulatedChild(i);
+        int childCount = te.getChildCount();
+        for (int i = 0; i < childCount; i++) {
+            TemplateElement child = te.getChild(i);
             TemplateElement parentElement = child.getParentElement();
             // As MixedContent.accept does nothing but return its regulatedChildren, it's
optimized out in the final
             // AST tree. While it will be present as a child, the parent element also will
have regularedChildren
@@ -283,46 +283,37 @@ public class ASTPrinter {
                         + "\nActual index: " + child.getIndex());
             }
         }
-        if (te instanceof MixedContent && te.getRegulatedChildCount() < 2) {
+        if (te instanceof MixedContent && te.getChildCount() < 2) {
             throw new InvalidASTException("Mixed content with child count less than 2 should
removed by optimizatoin, "
-                    + "but found one with " + te.getRegulatedChildCount() + " child(ren).");
+                    + "but found one with " + te.getChildCount() + " child(ren).");
         }
-        TemplateElement nestedBlock = te.getNestedBlock();
-        TemplateElement[] regulatedChildren = te.getRegulatedChildren();
-        if (nestedBlock != null) {
-            if (regulatedChildren == null) {
-                throw new InvalidASTException(
-                        "RegularChildren must be filled after postParseCleanup if there's
a nestedBlock."
-                        + "\nNode: " + te.dump(false));
-            }
-            if (nestedBlock instanceof MixedContent
-                    && (te.getRegulatedChildCount() != nestedBlock.getRegulatedChildCount()
-                    || regulatedChildren != nestedBlock.getRegulatedChildren())) {
-                throw new InvalidASTException(
-                        "MixedContent.regularChildren must be the same as its parent's regularChildren."
-                        + "\nNode: " + te.dump(false));
-            } else if (!(nestedBlock instanceof MixedContent) && te.getRegulatedChildCount()
!= 1) {
+        TemplateElement[] regulatedChildren = te.getChildBuffer();
+        if (regulatedChildren != null) {
+            if (childCount == 0) {
                 throw new InvalidASTException(
-                        "non-MixedContent-related regularChildren must be of lenght 1 where
there's a nestedBlock, "
-                        + "but was " + te.getRegulatedChildCount()
+                        "regularChildren must be null when regularChild is 0."
                         + "\nNode: " + te.dump(false));
             }
-        }
-        if (regulatedChildren != null) {
-            for (int i = 0; i < te.getRegulatedChildCount(); i++) {
+            for (int i = 0; i < te.getChildCount(); i++) {
                 if (regulatedChildren[i] == null) {
                     throw new InvalidASTException(
                             "regularChildren can't be null at index " + i
                             + "\nNode: " + te.dump(false));
                 }
             }
-            for (int i = te.getRegulatedChildCount(); i < regulatedChildren.length; i++)
{
+            for (int i = te.getChildCount(); i < regulatedChildren.length; i++) {
                 if (regulatedChildren[i] != null) {
                     throw new InvalidASTException(
                             "regularChildren can't be non-null at index " + i
                             + "\nNode: " + te.dump(false));
                 }
             }
+        } else {
+            if (childCount != 0) {
+                throw new InvalidASTException(
+                        "regularChildren mustn't be null when regularChild isn't 0."
+                        + "\nNode: " + te.dump(false));
+            }
         }
     }
 


Mime
View raw message