[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] fenfire/org/fenfire/swamp ConstGraph.java Graph...
From: |
Tuomas J. Lukka |
Subject: |
[Gzz-commits] fenfire/org/fenfire/swamp ConstGraph.java Graph... |
Date: |
Mon, 14 Apr 2003 08:21:21 -0400 |
CVSROOT: /cvsroot/fenfire
Module name: fenfire
Changes by: Tuomas J. Lukka <address@hidden> 03/04/14 08:21:20
Modified files:
org/fenfire/swamp: ConstGraph.java Graph.java graphtest.py
makeswamp.py observablegraphtest.py
org/fenfire/swamp/impl: AbstractConstGraph.java
AbstractGraph.java HashGraph.java
StdObservedConstGraph.java
StdObservedGraph.java
Log message:
Code generation for swamp. Sorry about generated files in CVS for now...
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/swamp/ConstGraph.java.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/swamp/Graph.java.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/swamp/graphtest.py.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/swamp/makeswamp.py.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/swamp/observablegraphtest.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/swamp/impl/AbstractConstGraph.java.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/swamp/impl/AbstractGraph.java.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/swamp/impl/HashGraph.java.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/swamp/impl/StdObservedConstGraph.java.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/swamp/impl/StdObservedGraph.java.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
Patches:
Index: fenfire/org/fenfire/swamp/ConstGraph.java
diff -u fenfire/org/fenfire/swamp/ConstGraph.java:1.2
fenfire/org/fenfire/swamp/ConstGraph.java:1.3
--- fenfire/org/fenfire/swamp/ConstGraph.java:1.2 Sun Apr 13 03:49:05 2003
+++ fenfire/org/fenfire/swamp/ConstGraph.java Mon Apr 14 08:21:20 2003
@@ -1,18 +1,36 @@
-// (c) Tuomas J. Lukka
+// AUTOGENERATED By makeswamp.py - DO NOT EDIT.
package org.fenfire.swamp;
import java.util.Iterator;
import org.fenfire.Obs;
+/** A non-modifiable RDF graph.
+ */
public interface ConstGraph {
- ConstGraph getObservedConstGraph(Obs o);
+ ConstGraph getObservedConstGraph(org.fenfire.Obs o);
+ void close();
- Object find1_11X(Object subject, Object predicate);
- Iterator findN_11X_Iter(Object subject, Object predicate);
- Object find1_11X(Object subject, Object predicate, Obs o);
- Iterator findN_11X_Iter(Object subject, Object predicate, Obs o);
+ Object find1_11X(Object e0,Object e1) ;
+Object find1_1X1(Object e0,Object e2) ;
+Object find1_X11(Object e1,Object e2) ;
+Object find1_1XA(Object e0) ;
+Object find1_XAA() ;
+Iterator findN_11X_Iter(Object e0,Object e1) ;
+Iterator findN_1X1_Iter(Object e0,Object e2) ;
+Iterator findN_X11_Iter(Object e1,Object e2) ;
+Iterator findN_1XA_Iter(Object e0) ;
+Iterator findN_XAA_Iter() ;
- void close();
+ Object find1_11X(Object e0,Object e1,Obs obs) ;
+Object find1_1X1(Object e0,Object e2,Obs obs) ;
+Object find1_X11(Object e1,Object e2,Obs obs) ;
+Object find1_1XA(Object e0,Obs obs) ;
+Object find1_XAA(Obs obs) ;
+Iterator findN_11X_Iter(Object e0,Object e1,Obs obs) ;
+Iterator findN_1X1_Iter(Object e0,Object e2,Obs obs) ;
+Iterator findN_X11_Iter(Object e1,Object e2,Obs obs) ;
+Iterator findN_1XA_Iter(Object e0,Obs obs) ;
+Iterator findN_XAA_Iter(Obs obs) ;
}
Index: fenfire/org/fenfire/swamp/Graph.java
diff -u fenfire/org/fenfire/swamp/Graph.java:1.3
fenfire/org/fenfire/swamp/Graph.java:1.4
--- fenfire/org/fenfire/swamp/Graph.java:1.3 Sun Apr 13 03:49:05 2003
+++ fenfire/org/fenfire/swamp/Graph.java Mon Apr 14 08:21:20 2003
@@ -1,13 +1,19 @@
-// (c) Tuomas J. Lukka
+// AUTOGENERATED By makeswamp.py - DO NOT EDIT.
package org.fenfire.swamp;
+import java.util.Iterator;
+import org.fenfire.Obs;
/** A modifiable RDF graph.
*/
public interface Graph extends ConstGraph {
Graph getObservedGraph(org.fenfire.Obs o);
void set1_11X(Object subject, Object predicate, Object object);
-// void rm_1XX(Object subject);
- void rm_11X(Object subject, Object predicate);
- void rm_111(Object subject, Object predicate, Object object);
+
+ void rm_111(Object e0,Object e1,Object e2) ;
+void rm_11A(Object e0,Object e1) ;
+void rm_1AA(Object e0) ;
+
+
}
+
Index: fenfire/org/fenfire/swamp/graphtest.py
diff -u fenfire/org/fenfire/swamp/graphtest.py:1.2
fenfire/org/fenfire/swamp/graphtest.py:1.3
--- fenfire/org/fenfire/swamp/graphtest.py:1.2 Sat Apr 12 06:39:12 2003
+++ fenfire/org/fenfire/swamp/graphtest.py Mon Apr 14 08:21:20 2003
@@ -25,12 +25,12 @@
# Remove a different triple
graph.rm_111(node[0], node[1], node[3])
- graph.rm_11X(node[1], node[0])
+ graph.rm_11A(node[1], node[0])
assert graph.find1_11X(node[0], node[1]) == node[2]
# Remove the original triple
- graph.rm_11X(node[0], node[1])
+ graph.rm_11A(node[0], node[1])
Index: fenfire/org/fenfire/swamp/impl/AbstractConstGraph.java
diff -u fenfire/org/fenfire/swamp/impl/AbstractConstGraph.java:1.1
fenfire/org/fenfire/swamp/impl/AbstractConstGraph.java:1.2
--- fenfire/org/fenfire/swamp/impl/AbstractConstGraph.java:1.1 Sun Apr 13
03:49:05 2003
+++ fenfire/org/fenfire/swamp/impl/AbstractConstGraph.java Mon Apr 14
08:21:20 2003
@@ -1,4 +1,4 @@
-// (c) Tuomas J. Lukka
+// AUTOGENERATED By makeswamp.py - DO NOT EDIT.
package org.fenfire.swamp.impl;
import org.fenfire.Obs;
@@ -11,11 +11,37 @@
return new StdObservedConstGraph(this, obs);
}
public void close() { }
- public Object find1_11X(Object subject, Object predicate) {
- return find1_11X(subject, predicate, null);
- }
- public Iterator findN_11X_Iter(Object subject, Object predicate) {
- return findN_11X_Iter(subject, predicate, null);
- }
+
+ public Object find1_11X(Object e0,Object e1) {
+ return this.find1_11X(e0,e1,null);
+}
+public Object find1_1X1(Object e0,Object e2) {
+ return this.find1_1X1(e0,e2,null);
+}
+public Object find1_X11(Object e1,Object e2) {
+ return this.find1_X11(e1,e2,null);
+}
+public Object find1_1XA(Object e0) {
+ return this.find1_1XA(e0,null);
+}
+public Object find1_XAA() {
+ return this.find1_XAA(null);
+}
+public Iterator findN_11X_Iter(Object e0,Object e1) {
+ return this.findN_11X_Iter(e0,e1,null);
+}
+public Iterator findN_1X1_Iter(Object e0,Object e2) {
+ return this.findN_1X1_Iter(e0,e2,null);
+}
+public Iterator findN_X11_Iter(Object e1,Object e2) {
+ return this.findN_X11_Iter(e1,e2,null);
+}
+public Iterator findN_1XA_Iter(Object e0) {
+ return this.findN_1XA_Iter(e0,null);
+}
+public Iterator findN_XAA_Iter() {
+ return this.findN_XAA_Iter(null);
+}
+
}
Index: fenfire/org/fenfire/swamp/impl/AbstractGraph.java
diff -u fenfire/org/fenfire/swamp/impl/AbstractGraph.java:1.1
fenfire/org/fenfire/swamp/impl/AbstractGraph.java:1.2
--- fenfire/org/fenfire/swamp/impl/AbstractGraph.java:1.1 Sun Apr 13
03:49:05 2003
+++ fenfire/org/fenfire/swamp/impl/AbstractGraph.java Mon Apr 14 08:21:20 2003
@@ -4,10 +4,27 @@
import org.fenfire.Obs;
import org.fenfire.swamp.*;
import java.util.Iterator;
+import java.util.ArrayList;
abstract public class AbstractGraph extends AbstractConstGraph implements
Graph {
public Graph getObservedGraph(org.fenfire.Obs o) {
return new StdObservedGraph(this, o);
+ }
+
+ public void rm_11A(Object e0,Object e1) {
+ Iterator i = findN_11X_Iter(e0, e1);
+ ArrayList l = new ArrayList();
+ while(i.hasNext())
+ l.add(i.next());
+ for(i = l.iterator(); i.hasNext();)
+ rm_111(e0, e1, i.next());
+ }
+ public void rm_1AA(Object e0) {
+ while(true) {
+ Iterator i = findN_1XA_Iter(e0);
+ if(!i.hasNext()) return;
+ rm_11A(e0, i.next());
+ }
}
}
Index: fenfire/org/fenfire/swamp/impl/HashGraph.java
diff -u fenfire/org/fenfire/swamp/impl/HashGraph.java:1.4
fenfire/org/fenfire/swamp/impl/HashGraph.java:1.5
--- fenfire/org/fenfire/swamp/impl/HashGraph.java:1.4 Sun Apr 13 03:49:05 2003
+++ fenfire/org/fenfire/swamp/impl/HashGraph.java Mon Apr 14 08:21:20 2003
@@ -1,114 +1,228 @@
-// (c) Tuomas J. Lukka
+// AUTOGENERATED By makeswamp.py - DO NOT EDIT.
-package org.fenfire.swamp.impl;
-import org.fenfire.Obs;
-import org.fenfire.swamp.*;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.ArrayList;
-import java.util.Iterator;
-
-/** An RDF Graph implemented by HashMaps.
- * Relatively inefficient but a basic implementation
- * that can be used as a reference.
- */
-public class HashGraph extends AbstractGraph {
-
- /** Map: key = subject, value = (Map: key=predicate, value =
- * (Set: r/l)).
+ package org.fenfire.swamp.impl;
+ import org.fenfire.Obs;
+ import org.fenfire.swamp.*;
+
+ import java.util.HashMap;
+ import java.util.Set;
+ import java.util.HashSet;
+ import java.util.ArrayList;
+ import java.util.Iterator;
+
+ /** An RDF Graph implemented by HashMaps.
+ * Relatively inefficient but a basic implementation
+ * that can be used as a reference.
*/
- private HashMap spo = new HashMap();
-
-
- private HashSet emptySet = new HashSet();
+ public class HashGraph extends AbstractGraph {
- private StdObserver observer = new StdObserver();
+ private HashMap ind_012 = new HashMap();
+private HashMap ind_021 = new HashMap();
+private HashMap ind_120 = new HashMap();
+
+
+ private HashSet emptySet = new HashSet();
+ private StdObserver observer = new StdObserver();
+
+ private final void rm_ind(HashMap ind, Object o1, Object o2, Object o3)
{
+ HashMap m2 = (HashMap)ind.get(o1);
+ if(m2 == null) return;
+ HashSet m3 = (HashSet)m2.get(o2);
+ if(m3 == null) return;
+ m3.remove(o3);
+ }
- private HashSet get_HHS(boolean create, HashMap m,
- Object o1, Object o2) {
- HashMap m2 = (HashMap)m.get(o1);
- if(m2 == null) {
- if(create) {
+ private final void add_ind(HashMap ind, Object o1, Object o2, Object
o3) {
+ HashMap m2 = (HashMap)ind.get(o1);
+ if(m2 == null) {
m2 = new HashMap();
- m.put(o1, m2);
- } else {
- return null;
+ ind.put(o1, m2);
}
- }
- HashSet s = (HashSet)m2.get(o2);
- if(s == null) {
- if(create) {
+ HashSet s = (HashSet)m2.get(o2);
+ if(s == null) {
s = new HashSet();
m2.put(o2, s);
- } else {
- return null;
}
+ s.add(o3);
}
- return s;
- }
- public Object find1_11X(Object subject, Object predicate, Obs obs) {
- observer.addObs(subject, predicate, observer.WILDCARD, obs);
- HashSet s = get_HHS(false, spo, subject, predicate);
- if(s == null) return null;
- int size = s.size();
- if(size == 0) return null;
- if(size != 1) throw new NotUniqueError(subject, predicate, null);
- // urgh...
- return s.iterator().next();
- }
+ public void set1_11X(Object subject, Object predicate, Object object) {
+ rm_11A(subject, predicate);
+ add(subject, predicate, object);
+ }
- public Iterator findN_11X_Iter(Object subject, Object predicate, Obs obs) {
- observer.addObs(subject, predicate, observer.WILDCARD, obs);
- HashSet s = get_HHS(false, spo, subject, predicate);
- if(s == null)
- return emptySet.iterator();
- int size = s.size();
- return s.iterator();
- }
+ //////////////////
+ // Finds
+
+ public Object find1_11X(Object e0,Object e1,Obs obs) {
+if(obs != null) observer.addObs(e0, e1, observer.WILDCARD, obs);
+
+ HashMap hash1 = (HashMap) ind_012.get(e0);
+ if(hash1 == null) return null;
+
+ HashSet hash2 = (HashSet) hash1.get(e1);
+ if(hash2 == null) return null;
+
+ HashSet resSet = hash2;
+
+ if(resSet.size() == 0) return null;
+ if(resSet.size() == 1) return resSet.iterator().next();
+ throw new NotUniqueError(e0,e1,null);
+ }
+public Object find1_1X1(Object e0,Object e2,Obs obs) {
+if(obs != null) observer.addObs(e0, observer.WILDCARD, e2, obs);
- // --------------------------------
- // Methods which modify the structure by calling the single-triple
- // methods below.
- //
+ HashMap hash1 = (HashMap) ind_021.get(e0);
+ if(hash1 == null) return null;
+
+ HashSet hash2 = (HashSet) hash1.get(e2);
+ if(hash2 == null) return null;
+
+ HashSet resSet = hash2;
+
+ if(resSet.size() == 0) return null;
+ if(resSet.size() == 1) return resSet.iterator().next();
+ throw new NotUniqueError(e0,null,e2);
+ }
+public Object find1_X11(Object e1,Object e2,Obs obs) {
+if(obs != null) observer.addObs(observer.WILDCARD, e1, e2, obs);
- public void set1_11X(Object subject, Object predicate, Object object) {
- rm_11X(subject, predicate);
+ HashMap hash1 = (HashMap) ind_120.get(e1);
+ if(hash1 == null) return null;
+
+ HashSet hash2 = (HashSet) hash1.get(e2);
+ if(hash2 == null) return null;
+
+ HashSet resSet = hash2;
+
+ if(resSet.size() == 0) return null;
+ if(resSet.size() == 1) return resSet.iterator().next();
+ throw new NotUniqueError(null,e1,e2);
+ }
- add(subject, predicate, object);
- }
+public Object find1_1XA(Object e0,Obs obs) {
+if(obs != null) observer.addObs(e0, observer.WILDCARD, observer.WILDCARD, obs);
- public void rm_11X(Object subject, Object predicate) {
- HashSet s = get_HHS(false, spo, subject, predicate);
- if(s == null) return;
- ArrayList l = new ArrayList(s);
- for(Iterator i = l.iterator(); i.hasNext(); )
- rm_111(subject, predicate, i.next());
- }
+ HashMap hash1 = (HashMap) ind_012.get(e0);
+ if(hash1 == null) return null;
+
+ Set resSet = hash1.keySet();
+
+ if(resSet.size() == 0) return null;
+ if(resSet.size() == 1) return resSet.iterator().next();
+ throw new NotUniqueError(e0,null,null);
+ }
+public Object find1_XAA(Obs obs) {
+if(obs != null) observer.addObs(observer.WILDCARD, observer.WILDCARD,
observer.WILDCARD, obs);
- // --------------------------------
- // Methods which actually modify the structure
- //
-
- public void rm_111(Object subject, Object predicate, Object object) {
- HashSet s = get_HHS(false, spo, subject, predicate);
- if(s == null) return;
- s.remove(object);
- observer.triggerObs(subject, predicate, object);
- }
+ Set resSet = ind_012.keySet();
+
+ if(resSet.size() == 0) return null;
+ if(resSet.size() == 1) return resSet.iterator().next();
+ throw new NotUniqueError(null,null,null);
+ }
- public void add(Object subject, Object predicate, Object object) {
- get_HHS(true, spo, subject, predicate).add(object);
- observer.triggerObs(subject, predicate, object);
- }
+public Iterator findN_11X_Iter(Object e0,Object e1,Obs obs) {
+if(obs != null) observer.addObs(e0, e1, observer.WILDCARD, obs);
+
+ HashMap hash1 = (HashMap) ind_012.get(e0);
+ if(hash1 == null) return emptySet.iterator();
+
+ HashSet hash2 = (HashSet) hash1.get(e1);
+ if(hash2 == null) return emptySet.iterator();
+
+ HashSet resSet = hash2;
+ return resSet.iterator();
+}
+public Iterator findN_1X1_Iter(Object e0,Object e2,Obs obs) {
+if(obs != null) observer.addObs(e0, observer.WILDCARD, e2, obs);
+
+ HashMap hash1 = (HashMap) ind_021.get(e0);
+ if(hash1 == null) return emptySet.iterator();
+
+ HashSet hash2 = (HashSet) hash1.get(e2);
+ if(hash2 == null) return emptySet.iterator();
+
+ HashSet resSet = hash2;
+ return resSet.iterator();
+}
+
+public Iterator findN_X11_Iter(Object e1,Object e2,Obs obs) {
+if(obs != null) observer.addObs(observer.WILDCARD, e1, e2, obs);
+
+ HashMap hash1 = (HashMap) ind_120.get(e1);
+ if(hash1 == null) return emptySet.iterator();
+
+ HashSet hash2 = (HashSet) hash1.get(e2);
+ if(hash2 == null) return emptySet.iterator();
+
+ HashSet resSet = hash2;
+ return resSet.iterator();
}
+public Iterator findN_1XA_Iter(Object e0,Obs obs) {
+if(obs != null) observer.addObs(e0, observer.WILDCARD, observer.WILDCARD, obs);
+
+ HashMap hash1 = (HashMap) ind_012.get(e0);
+ if(hash1 == null) return emptySet.iterator();
+
+ Set resSet = hash1.keySet();
+ return resSet.iterator();
+}
+
+public Iterator findN_XAA_Iter(Obs obs) {
+if(obs != null) observer.addObs(observer.WILDCARD, observer.WILDCARD,
observer.WILDCARD, obs);
+
+ Set resSet = ind_012.keySet();
+ return resSet.iterator();
+}
+
+
+
+
+ // --------------------------------
+ // Methods which modify the structure by calling the single-triple
+ // methods below.
+ //
+
+
+ // --------------------------------
+ // Methods which actually modify the structure
+ //
+
+ public void rm_111(Object e0, Object e1, Object e2) {
+
+ rm_ind(ind_012, e0, e1, e2);
+
+ rm_ind(ind_021, e0, e2, e1);
+
+ rm_ind(ind_120, e1, e2, e0);
+
+
+ observer.triggerObs(e0, e1, e2);
+ }
+
+ public void add(Object e0, Object e1, Object e2) {
+
+ add_ind(ind_012, e0, e1, e2);
+
+ add_ind(ind_021, e0, e2, e1);
+
+ add_ind(ind_120, e1, e2, e0);
+
+
+ observer.triggerObs(e0, e1, e2);
+ }
+
+ }
+
+
+
\ No newline at end of file
Index: fenfire/org/fenfire/swamp/impl/StdObservedConstGraph.java
diff -u fenfire/org/fenfire/swamp/impl/StdObservedConstGraph.java:1.1
fenfire/org/fenfire/swamp/impl/StdObservedConstGraph.java:1.2
--- fenfire/org/fenfire/swamp/impl/StdObservedConstGraph.java:1.1 Sun Apr
13 03:49:05 2003
+++ fenfire/org/fenfire/swamp/impl/StdObservedConstGraph.java Mon Apr 14
08:21:20 2003
@@ -1,4 +1,4 @@
-// (c) Tuomas J. Lukka
+// AUTOGENERATED By makeswamp.py - DO NOT EDIT.
package org.fenfire.swamp.impl;
import org.fenfire.Obs;
@@ -24,18 +24,69 @@
public void close() { }
- public Object find1_11X(Object subject, Object predicate) {
- return constgraph.find1_11X(subject, predicate, obs);
+ public Object find1_11X(Object e0,Object e1) {
+ return constgraph.find1_11X(e0,e1,obs);
+}
+public Object find1_1X1(Object e0,Object e2) {
+ return constgraph.find1_1X1(e0,e2,obs);
+}
+public Object find1_X11(Object e1,Object e2) {
+ return constgraph.find1_X11(e1,e2,obs);
+}
+public Object find1_1XA(Object e0) {
+ return constgraph.find1_1XA(e0,obs);
+}
+public Object find1_XAA() {
+ return constgraph.find1_XAA(obs);
+}
+public Iterator findN_11X_Iter(Object e0,Object e1) {
+ return constgraph.findN_11X_Iter(e0,e1,obs);
+}
+public Iterator findN_1X1_Iter(Object e0,Object e2) {
+ return constgraph.findN_1X1_Iter(e0,e2,obs);
+}
+public Iterator findN_X11_Iter(Object e1,Object e2) {
+ return constgraph.findN_X11_Iter(e1,e2,obs);
+}
+public Iterator findN_1XA_Iter(Object e0) {
+ return constgraph.findN_1XA_Iter(e0,obs);
+}
+public Iterator findN_XAA_Iter() {
+ return constgraph.findN_XAA_Iter(obs);
+}
+
+ public Object find1_11X(Object e0,Object e1,Obs obs) {
+ throw new Error("DoubleObs");
}
- public Iterator findN_11X_Iter(Object subject, Object predicate) {
- return constgraph.findN_11X_Iter(subject, predicate, obs);
+public Object find1_1X1(Object e0,Object e2,Obs obs) {
+ throw new Error("DoubleObs");
}
- public Object find1_11X(Object subject, Object predicate, Obs o) {
- throw new Error("No double observations yet");
+public Object find1_X11(Object e1,Object e2,Obs obs) {
+ throw new Error("DoubleObs");
}
- public Iterator findN_11X_Iter(Object subject, Object predicate, Obs o) {
- throw new Error("No double observations yet");
+public Object find1_1XA(Object e0,Obs obs) {
+ throw new Error("DoubleObs");
}
+public Object find1_XAA(Obs obs) {
+ throw new Error("DoubleObs");
+ }
+public Iterator findN_11X_Iter(Object e0,Object e1,Obs obs) {
+ throw new Error("DoubleObs");
+ }
+public Iterator findN_1X1_Iter(Object e0,Object e2,Obs obs) {
+ throw new Error("DoubleObs");
+ }
+public Iterator findN_X11_Iter(Object e1,Object e2,Obs obs) {
+ throw new Error("DoubleObs");
+ }
+public Iterator findN_1XA_Iter(Object e0,Obs obs) {
+ throw new Error("DoubleObs");
+ }
+public Iterator findN_XAA_Iter(Obs obs) {
+ throw new Error("DoubleObs");
+ }
+
}
+
Index: fenfire/org/fenfire/swamp/impl/StdObservedGraph.java
diff -u fenfire/org/fenfire/swamp/impl/StdObservedGraph.java:1.2
fenfire/org/fenfire/swamp/impl/StdObservedGraph.java:1.3
--- fenfire/org/fenfire/swamp/impl/StdObservedGraph.java:1.2 Sun Apr 13
03:49:05 2003
+++ fenfire/org/fenfire/swamp/impl/StdObservedGraph.java Mon Apr 14
08:21:20 2003
@@ -1,4 +1,4 @@
-// (c) Tuomas J. Lukka
+// AUTOGENERATED By makeswamp.py - DO NOT EDIT.
package org.fenfire.swamp.impl;
import org.fenfire.Obs;
@@ -13,15 +13,19 @@
this.graph = graph;
this.obs = obs;
}
-
public void set1_11X(Object subject, Object predicate, Object object) {
graph.set1_11X(subject, predicate, object);
}
- public void rm_11X(Object subject, Object predicate) {
- graph.rm_11X(subject, predicate);
- }
- public void rm_111(Object subject, Object predicate, Object object) {
- graph.rm_111(subject, predicate, object);
- }
+
+ public void rm_111(Object e0,Object e1,Object e2) {
+ graph.rm_111(e0,e1,e2);
+}
+public void rm_11A(Object e0,Object e1) {
+ graph.rm_11A(e0,e1);
+}
+public void rm_1AA(Object e0) {
+ graph.rm_1AA(e0);
+}
}
+
Index: fenfire/org/fenfire/swamp/makeswamp.py
diff -u fenfire/org/fenfire/swamp/makeswamp.py:1.2
fenfire/org/fenfire/swamp/makeswamp.py:1.3
--- fenfire/org/fenfire/swamp/makeswamp.py:1.2 Mon Apr 14 06:25:37 2003
+++ fenfire/org/fenfire/swamp/makeswamp.py Mon Apr 14 08:21:20 2003
@@ -73,7 +73,7 @@
pars = []
pars.extend(["Object "+i for i in g["Params"]])
if obs:
- pars.append("Obs o")
+ pars.append("Obs obs")
return (g["FRet"] + " "+g["FName"]+"("+
",".join(pars) +
") ")
@@ -81,17 +81,22 @@
def decl(g, obs=0):
return proto(g, obs) + ";\n"
-def callObs(g, whatToCall, obs = None):
+def callObs(g, whatToCall, obs = None, ret = 1):
ps = []
ps.extend(g["Params"])
if obs:
ps.append(obs)
- return (proto(g) +
- "{ \n\t"+whatToCall+"."+
+ if ret:
+ retu = "return "
+ else:
+ retu = ""
+ print g, ret, retu
+ return ("public "+proto(g) +
+ "{\n\t "+retu+" "+whatToCall+"."+
g["FName"]+"("+",".join(ps) + ");\n}\n")
def noDoubleObs(g):
- return proto(g, 1) + """{
+ return "public "+proto(g, 1) + """{
throw new Error("DoubleObs");
}"""+"\n"
@@ -106,20 +111,24 @@
callObs(g, "constgraph", "obs") for g in constgraph])
const_obs_nodouble = "".join([ noDoubleObs(g) for g in constgraph])
-graph_callother = "".join([ callObs(g, "graph") for g in graph ])
+graph_callother = "".join([ callObs(g, "graph", ret=0) for g in graph ])
def mkFile(a,b):
- print a
- print "// AUTOGENERATED By makeswamp.py - DO NOT EDIT."
- print b,"\n\n====================\n\n"
+ f = open(a,"w")
+ f.write("// AUTOGENERATED By makeswamp.py - DO NOT EDIT.\n")
+ f.write(b)
+ f.close()
-mkFile("org/fenfire/swamp/ConstGraph.nava", """
+mkFile("org/fenfire/swamp/ConstGraph.java", """
package org.fenfire.swamp;
+import java.util.Iterator;
+import org.fenfire.Obs;
/** A non-modifiable RDF graph.
*/
-public interface Graph extends ConstGraph {
+public interface ConstGraph {
ConstGraph getObservedConstGraph(org.fenfire.Obs o);
+ void close();
%(nonobs_findprotos)s
%(obs_findprotos)s
@@ -128,14 +137,15 @@
""" % locals())
-mkFile("org/fenfire/swamp/Graph.nava", """
+mkFile("org/fenfire/swamp/Graph.java", """
package org.fenfire.swamp;
+import java.util.Iterator;
+import org.fenfire.Obs;
/** A modifiable RDF graph.
*/
public interface Graph extends ConstGraph {
Graph getObservedGraph(org.fenfire.Obs o);
- void close();
void set1_11X(Object subject, Object predicate, Object object);
%(nonobs_modprotos)s
@@ -144,7 +154,12 @@
""" % locals())
-mkFile("org/fenfire/swamp/impl/AbstractConstGraph.nava", """
+mkFile("org/fenfire/swamp/impl/AbstractConstGraph.java", """
+package org.fenfire.swamp.impl;
+import org.fenfire.Obs;
+import org.fenfire.swamp.*;
+import java.util.Iterator;
+
abstract public class AbstractConstGraph implements ConstGraph {
public ConstGraph getObservedConstGraph(Obs obs) {
@@ -157,7 +172,7 @@
}
""" % locals())
-mkFile("org/fenfire/swamp/impl/StdObservedConstGraph.nava", """
+mkFile("org/fenfire/swamp/impl/StdObservedConstGraph.java", """
package org.fenfire.swamp.impl;
import org.fenfire.Obs;
import org.fenfire.swamp.*;
@@ -190,7 +205,7 @@
""" % locals())
-mkFile("org/fenfire/swamp/impl/StdObservedConstGraph.nava", """
+mkFile("org/fenfire/swamp/impl/StdObservedGraph.java", """
package org.fenfire.swamp.impl;
import org.fenfire.Obs;
import org.fenfire.swamp.*;
@@ -204,7 +219,7 @@
this.graph = graph;
this.obs = obs;
}
- void set1_11X(Object subject, Object predicate, Object object) {
+ public void set1_11X(Object subject, Object predicate, Object object) {
graph.set1_11X(subject, predicate, object);
}
@@ -229,8 +244,7 @@
for name in hashNames])
def makeFind(g):
- code = ""
- code += proto(g, 1) + "{\n";
+ code = "public "+ proto(g, 1) + "{\n";
def ow(i, wild):
if g["Pattern"][i] == "1": return "e"+str(i)
else: return wild
@@ -283,7 +297,7 @@
elif p == "X":
if i < 2:
code += """
- HashSet resSet = %(curHash)s.keySet();
+ Set resSet = %(curHash)s.keySet();
""" % locals()
else:
code += """
@@ -299,7 +313,7 @@
else:
code += """
if(resSet.size() == 0) return null;
- if(resSet.size() == 1) return resSet().iterator().next();
+ if(resSet.size() == 1) return resSet.iterator().next();
throw new NotUniqueError(%(notUniqueParams)s);
""" % locals()
code = code.replace("RETURN_NONE", "return null; ")
@@ -311,6 +325,7 @@
finds = "".join([makeFind(g) for g in constgraph])
+
rm_triple = ""
add_triple = ""
for ind in range(0, len(hashIndices)):
@@ -325,12 +340,13 @@
add_ind(%(name)s, e%(s0)s, e%(s1)s, e%(s2)s);
""" % locals()
- mkFile("org/fenfire/swamp/impl/HashGraph.nava", """
+ mkFile("org/fenfire/swamp/impl/HashGraph.java", """
package org.fenfire.swamp.impl;
import org.fenfire.Obs;
import org.fenfire.swamp.*;
import java.util.HashMap;
+ import java.util.Set;
import java.util.HashSet;
import java.util.ArrayList;
import java.util.Iterator;
@@ -349,7 +365,7 @@
private final void rm_ind(HashMap ind, Object o1, Object o2, Object o3)
{
HashMap m2 = (HashMap)ind.get(o1);
if(m2 == null) return;
- HashSet m3 = (HashMap)m2.get(o2);
+ HashSet m3 = (HashSet)m2.get(o2);
if(m3 == null) return;
m3.remove(o3);
}
@@ -357,27 +373,19 @@
private final void add_ind(HashMap ind, Object o1, Object o2, Object
o3) {
HashMap m2 = (HashMap)ind.get(o1);
if(m2 == null) {
- if(create) {
- m2 = new HashMap();
- m.put(o1, m2);
- } else {
- return null;
- }
+ m2 = new HashMap();
+ ind.put(o1, m2);
}
HashSet s = (HashSet)m2.get(o2);
if(s == null) {
- if(create) {
- s = new HashSet();
- m2.put(o2, s);
- } else {
- return null;
- }
+ s = new HashSet();
+ m2.put(o2, s);
}
s.add(o3);
}
public void set1_11X(Object subject, Object predicate, Object object) {
- rm_11X(subject, predicate);
+ rm_11A(subject, predicate);
add(subject, predicate, object);
}
@@ -393,15 +401,6 @@
// Methods which modify the structure by calling the single-triple
// methods below.
//
-
-
- public void rm_11X(Object subject, Object predicate) {
- HashSet s = get_HHS(false, spo, subject, predicate);
- if(s == null) return;
- ArrayList l = new ArrayList(s);
- for(Iterator i = l.iterator(); i.hasNext(); )
- rm_111(subject, predicate, i.next());
- }
// --------------------------------
Index: fenfire/org/fenfire/swamp/observablegraphtest.py
diff -u fenfire/org/fenfire/swamp/observablegraphtest.py:1.1
fenfire/org/fenfire/swamp/observablegraphtest.py:1.2
--- fenfire/org/fenfire/swamp/observablegraphtest.py:1.1 Sat Apr 12
06:39:12 2003
+++ fenfire/org/fenfire/swamp/observablegraphtest.py Mon Apr 14 08:21:20 2003
@@ -30,7 +30,7 @@
assert o2.t == 1
assert graph.find1_11X(node[0], node[1]) == node[2]
- graph.rm_11X(node[0], node[1])
+ graph.rm_11A(node[0], node[1])
assert o1.t == 1
assert o2.t == 1
@@ -42,7 +42,7 @@
assert graph.find1_11X(node[0], node[1], o1) == node[2]
assert graph.find1_11X(node[0], node[1], o2) == node[2]
- graph.rm_11X(node[0], node[1])
+ graph.rm_11A(node[0], node[1])
assert o1.t == 2
assert o2.t == 2
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gzz-commits] fenfire/org/fenfire/swamp ConstGraph.java Graph...,
Tuomas J. Lukka <=