You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@abdera.apache.org by jm...@apache.org on 2006/07/14 22:31:59 UTC

svn commit: r422030 - in /incubator/abdera/java/trunk: core/src/main/java/org/apache/abdera/parser/ParserOptions.java core/src/main/java/org/apache/abdera/util/AbstractParserOptions.java parser/src/main/java/org/apache/abdera/parser/stax/FOMBuilder.java

Author: jmsnell
Date: Fri Jul 14 13:31:58 2006
New Revision: 422030

URL: http://svn.apache.org/viewvc?rev=422030&view=rev
Log:
New parser options to tell the parser to ignore formatting whitespace, PIs, comments and Doctype declarations.

Modified:
    incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/parser/ParserOptions.java
    incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/util/AbstractParserOptions.java
    incubator/abdera/java/trunk/parser/src/main/java/org/apache/abdera/parser/stax/FOMBuilder.java

Modified: incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/parser/ParserOptions.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/parser/ParserOptions.java?rev=422030&r1=422029&r2=422030&view=diff
==============================================================================
--- incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/parser/ParserOptions.java (original)
+++ incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/parser/ParserOptions.java Fri Jul 14 13:31:58 2006
@@ -78,4 +78,13 @@
   boolean getAutodetectCharset();
   
   void setAutodetectCharset(boolean detect);
+  
+  void setIgnoreDoctype(boolean ignore);
+  void setIgnoreComments(boolean ignore);
+  void setIgnoreWhitespace(boolean ignore);
+  void setIgnoreProcessingInstructions(boolean ignore);
+  boolean getIgnoreDoctype();
+  boolean getIgnoreComments();
+  boolean getIgnoreWhitespace();
+  boolean getIgnoreProcessingInstructions();
 }

Modified: incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/util/AbstractParserOptions.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/util/AbstractParserOptions.java?rev=422030&r1=422029&r2=422030&view=diff
==============================================================================
--- incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/util/AbstractParserOptions.java (original)
+++ incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/util/AbstractParserOptions.java Fri Jul 14 13:31:58 2006
@@ -30,6 +30,10 @@
   protected ParseFilter parseFilter = null;
   protected TextFilter textFilter = null;
   protected boolean detect = true;
+  protected boolean ignoredtd = false;
+  protected boolean ignorecomments = false;
+  protected boolean ignorepi = false;
+  protected boolean ignorespace = false;
 
   protected abstract void initFactory();
   protected abstract void checkFactory(Factory factory);
@@ -73,5 +77,30 @@
   
   public void setAutodetectCharset(boolean detect) {
     this.detect = detect;
+  }
+  
+  public void setIgnoreDoctype(boolean ignore) {
+    this.ignoredtd = ignore;
+  }
+  public void setIgnoreComments(boolean ignore) {
+    this.ignorecomments = ignore;
+  }
+  public void setIgnoreWhitespace(boolean ignore) {
+    this.ignorespace = ignore;
+  }
+  public void setIgnoreProcessingInstructions(boolean ignore) {
+    this.ignorepi = ignore;
+  }
+  public boolean getIgnoreDoctype() {
+    return this.ignoredtd;
+  }
+  public boolean getIgnoreComments() {
+    return this.ignorecomments;
+  }
+  public boolean getIgnoreWhitespace() {
+    return this.ignorespace;
+  }
+  public boolean getIgnoreProcessingInstructions() {
+    return this.ignorepi;
   }
 }

Modified: incubator/abdera/java/trunk/parser/src/main/java/org/apache/abdera/parser/stax/FOMBuilder.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/parser/src/main/java/org/apache/abdera/parser/stax/FOMBuilder.java?rev=422030&r1=422029&r2=422030&view=diff
==============================================================================
--- incubator/abdera/java/trunk/parser/src/main/java/org/apache/abdera/parser/stax/FOMBuilder.java (original)
+++ incubator/abdera/java/trunk/parser/src/main/java/org/apache/abdera/parser/stax/FOMBuilder.java Fri Jul 14 13:31:58 2006
@@ -212,6 +212,7 @@
   
   private OMNode applyTextFilter(int type) {
     if (parserOptions != null) { 
+      if (parser.isWhiteSpace() && parserOptions.getIgnoreWhitespace()) return createOMText("",type);
       TextFilter filter = parserOptions.getTextFilter();
       if (filter != null) {
         String value = parser.getText();
@@ -291,16 +292,20 @@
                 ((OMContainerEx) this.document).setComplete(true);
                 break;
             case XMLStreamConstants.SPACE:
-                lastNode = createOMText(XMLStreamConstants.SPACE);
+                if (!parserOptions.getIgnoreWhitespace())
+                  lastNode = createOMText(XMLStreamConstants.SPACE);
                 break;
             case XMLStreamConstants.COMMENT:
-                createComment();
+                if (!parserOptions.getIgnoreComments())
+                  createComment();
                 break;
             case XMLStreamConstants.DTD:
-                createDTD();
+                if (!parserOptions.getIgnoreDoctype())
+                  createDTD();
                 break;
             case XMLStreamConstants.PROCESSING_INSTRUCTION:
-                createPI();
+                if (!parserOptions.getIgnoreProcessingInstructions())
+                  createPI();
                 break;
             case XMLStreamConstants.ENTITY_REFERENCE:
                 lastNode = createOMText(XMLStreamConstants.ENTITY_REFERENCE);