[Top][All Lists]
[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);
+ }
+ }
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gzz-commits] fenfire/org/fenfire/util AlphContent.java,
Matti Katila <=