gzz-commits
[Top][All Lists]
Advanced

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

[Gzz-commits] fenfire/org/fenfire/util AlphContent.java


From: Matti Katila
Subject: [Gzz-commits] fenfire/org/fenfire/util AlphContent.java
Date: Wed, 26 Mar 2003 11:05:59 -0500

CVSROOT:        /cvsroot/fenfire
Module name:    fenfire
Changes by:     Matti Katila <address@hidden>   03/03/26 11:05:59

Modified files:
        org/fenfire/util: AlphContent.java 

Log message:
        sihisohi..

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/util/AlphContent.java.diff?tr1=1.1&tr2=1.2&r1=text&r2=text

Patches:
Index: fenfire/org/fenfire/util/AlphContent.java
diff -u fenfire/org/fenfire/util/AlphContent.java:1.1 
fenfire/org/fenfire/util/AlphContent.java:1.2
--- fenfire/org/fenfire/util/AlphContent.java:1.1       Wed Mar 26 07:33:47 2003
+++ fenfire/org/fenfire/util/AlphContent.java   Wed Mar 26 11:05:59 2003
@@ -1,4 +1,4 @@
-//(c): Matti J. Katila
+//(c): Matti J. Katila and Tuomas J. Lukka
 
 package org.fenfire.util;
 import org.fenfire.vocab.ALPH;
@@ -8,16 +8,47 @@
 import com.hp.hpl.mesa.rdf.jena.model.*;
 import com.hp.hpl.mesa.rdf.jena.common.*;
 
-
+import java.util.*;
 
 /** Help class to work with Alph
  */
 public class AlphContent {
-public static final String rcsid = "$Id: AlphContent.java,v 1.1 2003/03/26 
12:33:47 mudyc Exp $";
+public static final String rcsid = "$Id: AlphContent.java,v 1.2 2003/03/26 
16:05:59 mudyc Exp $";
     private static void pa(String s) { System.out.println("Alph: "+s); }
 
 
-    static public Span getSpan(Model model, RDFNode node) 
+    // Static helpers..
+
+
+    /** helper to determinate the type of span, i.e. PageSpan or TextSpan
+     * @return the first span in enfilade.
+     */
+    public Span getSpan(Model model, RDFNode node) 
+    { try {
+       Selector selector = new SelectorImpl((Resource)node, ALPH.content, 
(RDFNode) null);
+        StmtIterator iter = model.listStatements(selector);
+       if (iter.hasNext()) {
+           Statement stmt = iter.next();
+           //return stmt.getInt();
+           // XXX how do you get the span??
+         
+
+           
+
+           return null;
+       }
+       else throw new Error("No available resources!");
+
+    } catch (RDFException e) {
+       pa("Exception ocurred!: "+e);
+       throw new Error("Alph has an RDFException!");
+    }} 
+
+
+    /** helper to present text contents on screen
+     * Content MUST be TextSpan so check it put first.
+     */
+    public Span getString(Model model, RDFNode node) 
     { try {
        Selector selector = new SelectorImpl((Resource)node, ALPH.content, 
(RDFNode) null);
         StmtIterator iter = model.listStatements(selector);
@@ -35,5 +66,104 @@
        pa("Exception ocurred!: "+e);
        throw new Error("Alph has an RDFException!");
     }} 
+
+
+    /** stupid - just makes a text content 
+     */
+    public void setTextContent(Model model, RDFNode node, String text) 
+    { try {
+       // set node -> enfilade(text)
+       setText(node, text);
+       
+       // get enfilade
+       Enfilade1D enf = getEnfilade(node);
+       SpanSerializer sr = new SpanSerializer();
+
+       String xml = null;
+       Vector v = (Vector)enf.getList();
+       for (int i=0; i<v.size(); i++) {
+           xml = sr.span2xml((Span)v.get(i));
+           xml += " "; 
+       }
+
+       Literal lit = new LiteralImpl(xml);
+       model.add(new StatementImpl((Resource)node, ALPH.content, 
(RDFNode)lit));
+
+    } catch (RDFException e) {
+       pa("Exception ocurred!: "+e);
+       throw new Error("setTextContent got RDFException!");
+    }}
+
+
+
+
+    // Old VStreamer or something...
+
+    protected Map contents = new HashMap();
+    private SpanMaker spanMaker;
+    private Enfilade1D.Maker enfMaker;
+    //private XuIndexer xuIndex;
+
+    public AlphContent(SpanMaker spanMaker, Enfilade1D.Maker enfMaker) {
+       this.spanMaker = spanMaker;
+       this.enfMaker = enfMaker;
+    }
+
+
+    /** The innermost routine that uses the actual map.
+     * For keeping change lists etc, override this and getFromMap.
+     */
+    protected void setMap(RDFNode node, Enfilade1D enf) {
+       contents.put(node, enf);
+    }
+
+    public final Enfilade1D getEnfilade(RDFNode node) {
+       Enfilade1D enf = (Enfilade1D)contents.get(node);
+        if(enf == null) return enfMaker.makeEnfilade();
+        else return enf;
+    }
+
+    public final void setEnfilade(RDFNode node, Enfilade1D vstream) {
+       setMap(node, vstream);
+
+       // XXX
+       // node.createProperty(ALPH.content,  enf.toXml() );
+
+    }
+
+    public String getText(RDFNode node) {
+       Enfilade1D enf = getEnfilade(node);
+       if(enf == null) return "";
+       return enf.makeString();
+    }
+
+    public void setText(RDFNode node, String s) {
+       setEnfilade(node, enfMaker.makeEnfilade(spanMaker.makeTextSpan(s)));
+    }
+
+    public void insertText(RDFNode node, int ind, String s) {
+        Enfilade1D old = getEnfilade(node);
+
+        if(old != null) {
+            Enfilade1D enf = old.sub(0, ind);
+            enf = enf.plus(spanMaker.makeTextSpan(s));
+            enf = enf.plus(old.sub(ind));
+
+            setEnfilade(node, enf);
+        } else {
+            setText(node, s);
+        }
+    }
+
+    public void deleteText(RDFNode node, int begin, int end) {
+        Enfilade1D old = getEnfilade(node);
+
+        if(old != null) {
+            Enfilade1D enf = old.sub(0, begin);
+            enf = enf.plus(old.sub(end));
+
+            setEnfilade(node, enf);
+        }
+    }
 
 }




reply via email to

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