Update of 
/var/cvs/contributions/CMSContainer/cmsc/utilities/src/java/com/finalist/cmsc/util
In directory 
james.mmbase.org:/tmp/cvs-serv16589/cmsc/utilities/src/java/com/finalist/cmsc/util

Modified Files:
        XmlUtil.java XsltUtil.java 
Log Message:
CMSC-1276 Improve extensibility of xsltportlet
ignore comments
support document source


See also: 
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer/cmsc/utilities/src/java/com/finalist/cmsc/util
See also: http://www.mmbase.org/jira/browse/CMSC-1276


Index: XmlUtil.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer/cmsc/utilities/src/java/com/finalist/cmsc/util/XmlUtil.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- XmlUtil.java        4 Feb 2009 16:18:09 -0000       1.3
+++ XmlUtil.java        25 Mar 2009 16:12:45 -0000      1.4
@@ -67,7 +67,7 @@
      * @param format The OutputFormat to use for the serialization
      * @return document as <code>String</code>.
      */
-    private static String serializeDocument(Document doc, Properties format) {
+    public static String serializeDocument(Document doc, Properties format) {
         CharArrayWriter caw = null;
                try {
                        caw = new CharArrayWriter();
@@ -166,9 +166,9 @@
 
     /**
      * create Output format for xml
-     * Be carefull, Textnodes will be fomormatted and indented too.
+     * Be careful, Textnodes will be formatted and indented too.
      * @param indent - indent xml
-     * @param omitComments - omit tcomments
+     * @param omitComments - omit comments
      * @param omitDocumentType - omit document type
      * @param omitXMLDeclaration - omit xml declaration
      * @return output format
@@ -421,9 +421,21 @@
     * @return DOM structure
     */
    public static Document toDocument(InputStream stream, boolean validate) {
+       return toDocument(stream, validate, true);
+    }
+    
+   /**
+    * Returns a W3C Document representation of the stream.
+    * @param stream The input stream with the xml to convert
+    * @param validate should the xml be validated
+    * @param ignoreComments specifies that this code will ignore comments.
+    * @return DOM structure
+    */
+   public static Document toDocument(InputStream stream, boolean validate, 
boolean ignoreComments) {
       try {
          DocumentBuilderFactory builderFactory = getFactory();
          builderFactory.setValidating(validate);
+         builderFactory.setIgnoringComments(ignoreComments);
          DocumentBuilder docBuilder = builderFactory.newDocumentBuilder();
          Document doc = docBuilder.parse(stream);
 


Index: XsltUtil.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer/cmsc/utilities/src/java/com/finalist/cmsc/util/XsltUtil.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- XsltUtil.java       9 Jun 2008 21:23:23 -0000       1.5
+++ XsltUtil.java       25 Mar 2009 16:12:45 -0000      1.6
@@ -7,9 +7,12 @@
 
 import javax.servlet.http.HttpServletResponse;
 import javax.xml.transform.*;
+import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
 import javax.xml.transform.stream.StreamSource;
 
+import org.w3c.dom.Document;
+
 /**
  * @author <a href="mailto:[email protected]";> Nico Klasens </A>
  */
@@ -30,6 +33,9 @@
    /** Source if of type File */
    private static final int SOURCE_FILE = 5;
 
+   /** Source if of type Document */
+   private static final int SOURCE_DOCUMENT = 6;
+
    /** Transformation factory */
    private TransformerFactory factory = null;
 
@@ -111,6 +117,11 @@
    private final Source createSource(Object source, int sourceType) throws 
IOException {
 
       switch (sourceType) {
+         case SOURCE_DOCUMENT: // '\006'
+            Document doc = (Document) source;
+            DOMSource domSource = new DOMSource(doc);
+            return domSource;
+
          case SOURCE_FILE: // '\005'
             File file = (File) source;
             StreamSource streamsource4 = new StreamSource(file);
@@ -203,6 +214,10 @@
       if (obj instanceof InputStream) {
          return SOURCE_INPUT_STREAM;
       }
+      if (obj instanceof Document) {
+         return SOURCE_DOCUMENT;
+      }
+
       return 0;
    }
 
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to