[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] alph/org/nongnu/alph impl/ScrollBlockManager.ja...
From: |
Tuomas J. Lukka |
Subject: |
[Gzz-commits] alph/org/nongnu/alph impl/ScrollBlockManager.ja... |
Date: |
Sun, 06 Apr 2003 06:56:00 -0400 |
CVSROOT: /cvsroot/alph
Module name: alph
Changes by: Tuomas J. Lukka <address@hidden> 03/04/06 06:55:59
Modified files:
org/nongnu/alph/impl: ScrollBlockManager.java
org/nongnu/alph/xml: SpanReader.java SpanSerializer.java
serialization.test
Log message:
Make serialization work with urn5 spans
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/alph/alph/org/nongnu/alph/impl/ScrollBlockManager.java.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/alph/alph/org/nongnu/alph/xml/SpanReader.java.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/alph/alph/org/nongnu/alph/xml/SpanSerializer.java.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/alph/alph/org/nongnu/alph/xml/serialization.test.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
Patches:
Index: alph/org/nongnu/alph/impl/ScrollBlockManager.java
diff -u alph/org/nongnu/alph/impl/ScrollBlockManager.java:1.2
alph/org/nongnu/alph/impl/ScrollBlockManager.java:1.3
--- alph/org/nongnu/alph/impl/ScrollBlockManager.java:1.2 Sun Apr 6
04:24:06 2003
+++ alph/org/nongnu/alph/impl/ScrollBlockManager.java Sun Apr 6 06:55:59 2003
@@ -40,7 +40,7 @@
*/
public class ScrollBlockManager {
-String rcsid = "$Id: ScrollBlockManager.java,v 1.2 2003/04/06 08:24:06 tjl Exp
$";
+String rcsid = "$Id: ScrollBlockManager.java,v 1.3 2003/04/06 10:55:59 tjl Exp
$";
public static boolean dbg = false;
final static void p(String s) { if(dbg) System.out.println(s); }
final static void pa(String s) { System.out.println(s); }
@@ -191,7 +191,7 @@
}
- static class SimpleTextSpan extends Span1DBase
+ static public class SimpleTextSpan extends Span1DBase
implements TextSpan, java.io.Serializable {
SimpleTextSpan(TextScrollBlock sb, int offs0, int offs1) {
super((MediaserverScrollBlock)sb, offs0, offs1);
Index: alph/org/nongnu/alph/xml/SpanReader.java
diff -u alph/org/nongnu/alph/xml/SpanReader.java:1.3
alph/org/nongnu/alph/xml/SpanReader.java:1.4
--- alph/org/nongnu/alph/xml/SpanReader.java:1.3 Sun Apr 6 01:56:08 2003
+++ alph/org/nongnu/alph/xml/SpanReader.java Sun Apr 6 06:55:59 2003
@@ -40,6 +40,11 @@
int e = Integer.parseInt(attributes.getValue("e"));
spans.add(((TextScrollBlock)(scrollBlockFactory.getScrollBlock(b)))
. getSpan(s, e));
+ } else if(qName.equals("uts")) {
+ String b = attributes.getValue("b");
+ int o = Integer.parseInt(attributes.getValue("o"));
+ String t = attributes.getValue("t");
+ spans.add(new org.nongnu.alph.impl.URN5TextSpan(b, o, t));
} else {
throw new Error("Unknown element '"+localName+"'");
}
Index: alph/org/nongnu/alph/xml/SpanSerializer.java
diff -u alph/org/nongnu/alph/xml/SpanSerializer.java:1.3
alph/org/nongnu/alph/xml/SpanSerializer.java:1.4
--- alph/org/nongnu/alph/xml/SpanSerializer.java:1.3 Sun Apr 6 01:56:08 2003
+++ alph/org/nongnu/alph/xml/SpanSerializer.java Sun Apr 6 06:55:59 2003
@@ -10,14 +10,35 @@
public class SpanSerializer {
+ public static String escapeXML(String s) {
+ StringBuffer buf = new StringBuffer();
+ for(int i=0; i<s.length(); i++) {
+ switch(s.charAt(i)) {
+ case '&': buf.append("&"); break;
+ case '<': buf.append("<"); break;
+ case '>': buf.append(">"); break;
+ case '\'': buf.append("'"); break;
+ case '\"': buf.append("""); break;
+ default:
+ buf.append(s.charAt(i)); break;
+ }
+ }
+ return buf.toString();
+ }
+
public String namespace;
public String span2xml(Span s0) {
- if(s0 instanceof TextSpan) {
+ if(s0 instanceof org.nongnu.alph.impl.URN5TextSpan) {
+ org.nongnu.alph.impl.URN5TextSpan t =
(org.nongnu.alph.impl.URN5TextSpan)s0;
+ return "<uts b=\""+t.getScrollId()+
+ "\" o=\""+t.offset()+
+ "\" t=\""+escapeXML(t.getText())+"\"/>";
+ } else if(s0 instanceof TextSpan) {
TextSpan s = (TextSpan)s0;
return "<" + (namespace == null ? "" :
namespace+":") +
- "ts b=\""+s.getScrollBlock().getID()+
+ "ts b=\""+s.getScrollId()+
"\" s=\""+s.offset()+
"\" e=\""+(s.offset()+s.length())+"\"/>";
} else {
Index: alph/org/nongnu/alph/xml/serialization.test
diff -u alph/org/nongnu/alph/xml/serialization.test:1.4
alph/org/nongnu/alph/xml/serialization.test:1.5
--- alph/org/nongnu/alph/xml/serialization.test:1.4 Sun Apr 6 01:56:08 2003
+++ alph/org/nongnu/alph/xml/serialization.test Sun Apr 6 06:55:59 2003
@@ -17,8 +17,10 @@
return self.s
def length(self):
return self.e-self.s
- def getScrollBlock(self):
- return self.sb
+ def getScrollId(self):
+ return self.sb.getID()
+ def toString(self):
+ return "[Fake span]"
class Sb(alph.TextScrollBlock):
def __init__(self, id):
@@ -84,4 +86,15 @@
list = r.getSpans()
failUnlessEqual(list.size(), 2)
+def testURN5():
+ """See that reading and writing URN-5 spans works
+ """
+ r = SpanReader()
+ str = """<uts b="Q" o="5" t="foo&bar"/>"""
+ parseString(str, r)
+ sp = r.getSpans()[0]
+ failUnlessEqual(sp.getScrollId(), "Q")
+ failUnlessEqual(sp.offset(), 5)
+ failUnlessEqual(sp.getText(), "foo&bar")
+ failUnlessEqual(SpanSerializer().span2xml(sp), str)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gzz-commits] alph/org/nongnu/alph impl/ScrollBlockManager.ja...,
Tuomas J. Lukka <=