[Top][All Lists]
[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;
}
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gzz-commits] fenfire/org/fenfire/swamp/impl StdLiteral.java ...,
Tuomas J. Lukka <=