Author: reto
Date: Mon Jan 12 19:46:26 2015
New Revision: 1651183
URL: http://svn.apache.org/r1651183
Log:
COMMONSSITE-80: simplified Graph / ImmutableGraph Structure, added getLock
method to Graph
Added:
commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/Graph.java
- copied, changed from r1646739,
commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/TripleCollection.java
commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/ImmutableGraph.java
- copied, changed from r1651181,
commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/Graph.java
Removed:
commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/MGraph.java
commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/TripleCollection.java
Modified:
commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/Iri.java
commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/event/AddEvent.java
commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/event/GraphEvent.java
commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/event/RemoveEvent.java
Copied:
commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/Graph.java (from
r1646739,
commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/TripleCollection.java)
URL:
http://svn.apache.org/viewvc/commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/Graph.java?p2=commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/Graph.java&p1=commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/TripleCollection.java&r1=1646739&r2=1651183&rev=1651183&view=diff
==============================================================================
---
commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/TripleCollection.java
(original)
+++ commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/Graph.java
Mon Jan 12 19:46:26 2015
@@ -20,6 +20,7 @@ package org.apache.commons.rdf;
import java.util.Collection;
import java.util.Iterator;
+import java.util.concurrent.locks.ReadWriteLock;
import org.apache.commons.rdf.event.FilterTriple;
import org.apache.commons.rdf.event.GraphListener;
@@ -33,7 +34,7 @@ import org.apache.commons.rdf.event.Grap
*
* @author reto
*/
-public interface TripleCollection extends Collection<Triple> {
+public interface Graph extends Collection<Triple> {
/**
* Filters triples given a pattern.
@@ -103,4 +104,42 @@ public interface TripleCollection extend
* @param listener The listener to be removed.
*/
public void removeGraphListener(GraphListener listener);
+
+ /**
+ * Returns true if <code>other</code> describes the same graph and will
+ * always describe the same graph as this instance, false otherwise.
+ * It returns true if this == other or if it
+ * is otherwise guaranteed that changes to one of the instances are
+ * immediately reflected in the other or if both graphs are immutable.
+ *
+ * @param other
+ * @return true if other == this
+ */
+ @Override
+ public boolean equals(Object other);
+
+ /**
+ * Returns an ImutableGraph describing the graph at the current point in
+ * time. if <code>this</code> is an instance of ImmutableGraph this can
+ * safely return <code>this</code>.
+ *
+ * @return the current time slice of the possibly mutable graph
represented by the instance.
+ */
+ public ImmutableGraph getImmutableGraph();
+
+ /**
+ * The lock provided by this methods allows to create read- and write-locks
+ * that span multiple method calls. Having a read locks prevents other
+ * threads from writing to this Graph, having a write-lock prevents other
+ * threads from reading and writing. Implementations would typically
+ * return a <code>java.util.concurrent.locks.ReentrantReadWriteLock</code>.
+ * Immutable instances (such as instances of <code>ImmutableGraph</code>)
+ * or instances used in transaction where concurrent acces of the same
+ * instance is not an issue may return a no-op ReadWriteLock (i.e. one
+ * which returned ReadLock and WriteLock instances of which the methods do
+ * not do anything)
+ *
+ * @return the lock of this Graph
+ */
+ ReadWriteLock getLock();
}
Copied:
commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/ImmutableGraph.java
(from r1651181,
commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/Graph.java)
URL:
http://svn.apache.org/viewvc/commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/ImmutableGraph.java?p2=commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/ImmutableGraph.java&p1=commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/Graph.java&r1=1651181&r2=1651183&rev=1651183&view=diff
==============================================================================
--- commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/Graph.java
(original)
+++
commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/ImmutableGraph.java
Mon Jan 12 19:46:26 2015
@@ -31,7 +31,7 @@ package org.apache.commons.rdf;
* @author reto
*
*/
-public interface Graph extends TripleCollection {
+public interface ImmutableGraph extends Graph {
/**
* Returns true if two graphs are isomorphic
Modified:
commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/Iri.java
URL:
http://svn.apache.org/viewvc/commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/Iri.java?rev=1651183&r1=1651182&r2=1651183&view=diff
==============================================================================
--- commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/Iri.java
(original)
+++ commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/Iri.java Mon
Jan 12 19:46:26 2015
@@ -74,7 +74,7 @@ public class Iri implements BlankNodeOrI
@Override
public String toString() {
- StringBuffer buffer = new StringBuffer();
+ StringBuilder buffer = new StringBuilder();
buffer.append('<');
buffer.append(unicodeString);
buffer.append('>');
Modified:
commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/event/AddEvent.java
URL:
http://svn.apache.org/viewvc/commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/event/AddEvent.java?rev=1651183&r1=1651182&r2=1651183&view=diff
==============================================================================
---
commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/event/AddEvent.java
(original)
+++
commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/event/AddEvent.java
Mon Jan 12 19:46:26 2015
@@ -19,7 +19,7 @@
package org.apache.commons.rdf.event;
import org.apache.commons.rdf.Triple;
-import org.apache.commons.rdf.TripleCollection;
+import org.apache.commons.rdf.Graph;
/**
* This class represent a addition event that occured on a
@@ -30,7 +30,7 @@ import org.apache.commons.rdf.TripleColl
public class AddEvent extends GraphEvent {
- public AddEvent(TripleCollection graph, Triple triple) {
+ public AddEvent(Graph graph, Triple triple) {
super(graph, triple);
}
Modified:
commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/event/GraphEvent.java
URL:
http://svn.apache.org/viewvc/commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/event/GraphEvent.java?rev=1651183&r1=1651182&r2=1651183&view=diff
==============================================================================
---
commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/event/GraphEvent.java
(original)
+++
commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/event/GraphEvent.java
Mon Jan 12 19:46:26 2015
@@ -19,7 +19,7 @@
package org.apache.commons.rdf.event;
import org.apache.commons.rdf.Triple;
-import org.apache.commons.rdf.TripleCollection;
+import org.apache.commons.rdf.Graph;
/**
* This class represent a modification event that occured on a
@@ -32,10 +32,10 @@ import org.apache.commons.rdf.TripleColl
*/
public class GraphEvent {
- private TripleCollection graph;
+ private Graph graph;
private Triple triple;
- protected GraphEvent(TripleCollection graph, Triple triple) {
+ protected GraphEvent(Graph graph, Triple triple) {
this.graph = graph;
this.triple = triple;
}
@@ -44,7 +44,7 @@ public class GraphEvent {
* Returns the <code>TripleCollection</code> that was modified in the
event.
* @return the graph
*/
- public TripleCollection getGraph() {
+ public Graph getGraph() {
return graph;
}
Modified:
commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/event/RemoveEvent.java
URL:
http://svn.apache.org/viewvc/commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/event/RemoveEvent.java?rev=1651183&r1=1651182&r2=1651183&view=diff
==============================================================================
---
commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/event/RemoveEvent.java
(original)
+++
commons/sandbox/rdf/trunk/src/main/java/org/apache/commons/rdf/event/RemoveEvent.java
Mon Jan 12 19:46:26 2015
@@ -19,7 +19,7 @@
package org.apache.commons.rdf.event;
import org.apache.commons.rdf.Triple;
-import org.apache.commons.rdf.TripleCollection;
+import org.apache.commons.rdf.Graph;
/**
* This class represent a removal event that occured on a
@@ -30,7 +30,7 @@ import org.apache.commons.rdf.TripleColl
public class RemoveEvent extends GraphEvent {
- public RemoveEvent(TripleCollection graph, Triple triple) {
+ public RemoveEvent(Graph graph, Triple triple) {
super(graph, triple);
}