gzz-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gzz-commits] fenfire/org/fenfire/swamp/impl StdLiteral.java ...


From: Tuomas J. Lukka
Subject: [Gzz-commits] fenfire/org/fenfire/swamp/impl StdLiteral.java ...
Date: Tue, 15 Apr 2003 14:17:50 -0400

CVSROOT:        /cvsroot/fenfire
Module name:    fenfire
Changes by:     Tuomas J. Lukka <address@hidden>        03/04/15 14:17:50

Modified files:
        org/fenfire/swamp/impl: StdLiteral.java 
Added files:
        org/fenfire/swamp/impl: stdliteral.test 

Log message:
        Literals

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/swamp/impl/stdliteral.test?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/swamp/impl/StdLiteral.java.diff?tr1=1.1&tr2=1.2&r1=text&r2=text

Patches:
Index: fenfire/org/fenfire/swamp/impl/StdLiteral.java
diff -u fenfire/org/fenfire/swamp/impl/StdLiteral.java:1.1 
fenfire/org/fenfire/swamp/impl/StdLiteral.java:1.2
--- fenfire/org/fenfire/swamp/impl/StdLiteral.java:1.1  Sun Apr 13 03:49:05 2003
+++ fenfire/org/fenfire/swamp/impl/StdLiteral.java      Tue Apr 15 14:17:49 2003
@@ -2,18 +2,53 @@
 
 package org.fenfire.swamp.impl;
 import org.fenfire.swamp.*;
+import org.xml.sax.*;
+import org.xml.sax.helpers.*;
+import java.io.*;
 
 public class StdLiteral implements Literal {
-    String content;
+    String xmlcontent;
+    String txtcontent;
+
+    static javax.xml.parsers.SAXParser saxParser;
+    static {
+       try {
+           saxParser = 
javax.xml.parsers.SAXParserFactory.newInstance().newSAXParser();
+       } catch(Exception e) {
+           throw new Error(e);
+       }
+    }
+
     public StdLiteral(String c, boolean isXml) {
-       if(!isXml)
-           c = org.nongnu.alph.util.XMLUtil.escapeXML(c);
-       this.content = c;
+       if(c == null) throw new NullPointerException();
+       if(isXml)
+           this.xmlcontent = c;
+       else 
+           this.txtcontent = c;
     }
     public String getRawXMLString() {
-       return content;
+       if(xmlcontent == null)
+           xmlcontent = org.nongnu.alph.util.XMLUtil.escapeXML(txtcontent);
+       return xmlcontent;
     }
     public String getTextString() {
-       throw new Error("Not implemented");
+       if(txtcontent == null) {
+           final StringBuffer buf = new StringBuffer();
+           try {
+           saxParser.parse(
+               new StringBufferInputStream("<c>"+xmlcontent+"</c>"),
+               new DefaultHandler() {
+                   public void characters(char[] ch, int start, int length){
+                       buf.append(ch, start, length);
+                   }
+               }
+           );
+           } catch(Exception e) {
+               e.printStackTrace();
+               throw new Error("!!!!" + e);
+           }
+           txtcontent = buf.toString();
+       }
+       return txtcontent;
     }
 }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]