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); }