Author: gvanmatre
Date: Sat Oct 21 19:01:32 2006
New Revision: 466613

URL: http://svn.apache.org/viewvc?view=rev&rev=466613
Log:
Added logic to better handle whitespace mixed with well-formed markup.

Modified:
    
shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/parser/builder/ElementBuilder.java
    
shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/parser/builder/JsfDefaultBuilder.java

Modified: 
shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/parser/builder/ElementBuilder.java
URL: 
http://svn.apache.org/viewvc/shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/parser/builder/ElementBuilder.java?view=diff&rev=466613&r1=466612&r2=466613
==============================================================================
--- 
shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/parser/builder/ElementBuilder.java
 (original)
+++ 
shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/parser/builder/ElementBuilder.java
 Sat Oct 21 19:01:32 2006
@@ -311,8 +311,10 @@
                     deleteList.add(child);
                 }
             } else {
-                // remove white space
-                deleteList.add(child);
+                if (child.isComment() || isNodeWhitespace(child)) {
+                    // remove white space
+                    deleteList.add(child);
+                }
             }
         }
 
@@ -417,5 +419,24 @@
 
     }
 
+
+    /**
+     * <p>Test the value of the node and returns <code>true</code> if 
+     * the value is only whitespace.</p>
+     *
+     * @param node markup node
+     * @return <code>true</code> if value of the node is only whitespace
+     */
+    protected boolean isNodeWhitespace(Node node) {
+        StringBuffer document = node.getToken().getDocument();
+        for (int i = node.getToken().getBeginOffset();
+             i < node.getToken().getEndOffset(); i++) {
+           char c = document.charAt(i);
+           if (!Character.isWhitespace(c)) {
+               return false;    
+           }
+        }
+        return true;
+    }
 
 }

Modified: 
shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/parser/builder/JsfDefaultBuilder.java
URL: 
http://svn.apache.org/viewvc/shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/parser/builder/JsfDefaultBuilder.java?view=diff&rev=466613&r1=466612&r2=466613
==============================================================================
--- 
shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/parser/builder/JsfDefaultBuilder.java
 (original)
+++ 
shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/parser/builder/JsfDefaultBuilder.java
 Sat Oct 21 19:01:32 2006
@@ -402,8 +402,10 @@
                 if (node.getName() != null && 
node.getName().equals("verbatim")) {
                     continue next;
                 }
-                // remove white space
-                deleteList.add(child);
+                if (child.isComment() || isNodeWhitespace(child)) {
+                    // remove white space
+                    deleteList.add(child);
+                }
             }
         }
 
@@ -446,5 +448,4 @@
 
         return jsfid.toString();
     }
-
 }


Reply via email to