gzz-commits
[Top][All Lists]
Advanced

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

[Gzz-commits] alph org/nongnu/alph/xml/SpanReader.java org/no...


From: Tuomas J. Lukka
Subject: [Gzz-commits] alph org/nongnu/alph/xml/SpanReader.java org/no...
Date: Sun, 06 Apr 2003 01:56:08 -0500

CVSROOT:        /cvsroot/alph
Module name:    alph
Changes by:     Tuomas J. Lukka <address@hidden>        03/04/06 01:56:08

Modified files:
        org/nongnu/alph/xml: SpanReader.java SpanSerializer.java 
                             serialization.test 
Added files:
        .              : TODO 

Log message:
        Make span serialization work a little better, for fenfire content

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/alph/alph/TODO?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/alph/alph/org/nongnu/alph/xml/SpanReader.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/SpanSerializer.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/serialization.test.diff?tr1=1.3&tr2=1.4&r1=text&r2=text

Patches:
Index: alph/org/nongnu/alph/xml/SpanReader.java
diff -u alph/org/nongnu/alph/xml/SpanReader.java:1.2 
alph/org/nongnu/alph/xml/SpanReader.java:1.3
--- alph/org/nongnu/alph/xml/SpanReader.java:1.2        Wed Mar 26 05:17:54 2003
+++ alph/org/nongnu/alph/xml/SpanReader.java    Sun Apr  6 01:56:08 2003
@@ -8,6 +8,7 @@
 
 /** A simple span serializer / deserializer.
  * Just takes a sequence of spans and adds them to a list.
+ * To clear the list between readings, call clear().
  */
 
 public class SpanReader extends org.xml.sax.helpers.DefaultHandler  {
@@ -22,11 +23,17 @@
 
     private ArrayList spans = new ArrayList();
 
+    /** Empty this SpanReader for another read operation.
+     */
+    public void clear() { spans.clear(); }
+
     public List getSpans() { return spans; }
 
     public  void startElement(String uri, String localName, String qName, 
                            org.xml.sax.Attributes attributes)  {
        if(dbg) pa("Se: '"+uri+"' '"+localName+"' '"+qName+"'");
+       // Wrapper element
+       if(qName.equals("alph")) return;
        if(qName.equals("ts")) {
            String b = attributes.getValue("b");
            int s = Integer.parseInt(attributes.getValue("s"));
Index: alph/org/nongnu/alph/xml/SpanSerializer.java
diff -u alph/org/nongnu/alph/xml/SpanSerializer.java:1.2 
alph/org/nongnu/alph/xml/SpanSerializer.java:1.3
--- alph/org/nongnu/alph/xml/SpanSerializer.java:1.2    Wed Mar 26 05:17:54 2003
+++ alph/org/nongnu/alph/xml/SpanSerializer.java        Sun Apr  6 01:56:08 2003
@@ -2,6 +2,8 @@
 
 package org.nongnu.alph.xml;
 import org.nongnu.alph.*;
+import java.util.List;
+import java.util.Iterator;
 
 /** A simple span serializer / deserializer.
  */
@@ -30,7 +32,16 @@
     }
 
     public String get() {
-       return b.toString();
+       return "<alph>"+b.toString()+"</alph>";
+    }
+
+    static public String serialize(Enfilade1D enf) {
+       List l = enf.getList();
+       SpanSerializer ser = new SpanSerializer();
+       for(Iterator i = l.iterator(); i.hasNext(); ) {
+           ser.addSpan((Span)i.next());
+       }
+       return ser.get();
     }
 
 }
Index: alph/org/nongnu/alph/xml/serialization.test
diff -u alph/org/nongnu/alph/xml/serialization.test:1.3 
alph/org/nongnu/alph/xml/serialization.test:1.4
--- alph/org/nongnu/alph/xml/serialization.test:1.3     Wed Mar 26 05:21:11 2003
+++ alph/org/nongnu/alph/xml/serialization.test Sun Apr  6 01:56:08 2003
@@ -56,3 +56,32 @@
     failUnlessEqual(sp.e, 10)
 
     failUnlessEqual(SpanSerializer().span2xml(sp), str)
+
+def testMultiple():
+    """See that multiple span readings work right.
+    """
+    r = SpanReader()
+    r.scrollBlockFactory = Fact()
+    str = """<alph><ts b="X" s="5" e="10"/><ts b="Y" s="7" e="8"/></alph>"""
+    parseString(str, r)
+    list = r.getSpans()
+    failUnlessEqual(list.size(), 2)
+
+    failUnlessEqual(
+       SpanSerializer.serialize(
+           alph.impl.Enfilade1DImpl.Enfilade1DImplMaker().makeEnfilade(list)),
+       str
+    )
+
+
+    parseString(str, r)
+    list = r.getSpans()
+    failUnlessEqual(list.size(), 4)
+    r.clear()
+    list = r.getSpans()
+    failUnlessEqual(list.size(), 0)
+    parseString(str, r)
+    list = r.getSpans()
+    failUnlessEqual(list.size(), 2)
+
+




reply via email to

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