Author: sallen
Date: Tue Nov 19 00:43:25 2013
New Revision: 1543254
URL: http://svn.apache.org/r1543254
Log:
jena-client Clean up and Javadoc
Removed:
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/UpdateDeleterWrapper.java
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/UpdateInserterWrapper.java
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/UpdateQuerierWrapper.java
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/util/
Modified:
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/Connection.java
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/ConnectionBase.java
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/QueryStatement.java
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/Repository.java
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/UpdateInserter.java
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/UpdaterBase.java
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/graph/DatasetGraphConnection.java
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/graph/DatasetGraphRepository.java
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/graph/DatasetGraphUpdateStatement.java
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/graph/DatasetGraphUpdater.java
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/http/HttpConnection.java
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/http/HttpRepository.java
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/http/UpdateRemote.java
Modified:
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/Connection.java
URL:
http://svn.apache.org/viewvc/jena/Experimental/jena-client/src/main/java/org/apache/jena/client/Connection.java?rev=1543254&r1=1543253&r2=1543254&view=diff
==============================================================================
---
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/Connection.java
(original)
+++
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/Connection.java
Tue Nov 19 00:43:25 2013
@@ -50,8 +50,31 @@ public interface Connection extends Tran
*/
boolean supportsTransactions();
+ /**
+ * Create a QueryStatement for the supplied Query object. Execution of
the query
+ * is not performed until an exec* method is called on the returned
QueryStatement.
+ *
+ * @param query the SPARQL query to initialize the QueryStatement with
+ * @return a QueryStatement based on the supplied query
+ */
QueryStatement createQueryStatement(Query query);
+
+ /**
+ * Create a QueryStatement for the supplied query string. Execution of
the query
+ * is not performed until an exec* method is called on the returned
QueryStatement.
+ *
+ * @param queryString a String representation of the SPARQL query to
initialize the QueryStatement with
+ * @return a QueryStatement based on the supplied query
+ */
QueryStatement createQueryStatement(String queryString);
+
+ /**
+ * Create a QueryStatement for the supplied ParameterizedSparqlString
object. Execution of the query
+ * is not performed until an exec* method is called on the returned
QueryStatement.
+ *
+ * @param paramQueryString the SPARQL query to initialize the
QueryStatement with
+ * @return a QueryStatement based on the supplied query
+ */
QueryStatement createQueryStatement(ParameterizedSparqlString
paramQueryString);
UpdateStatement createUpdateStatement(Update update);
Modified:
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/ConnectionBase.java
URL:
http://svn.apache.org/viewvc/jena/Experimental/jena-client/src/main/java/org/apache/jena/client/ConnectionBase.java?rev=1543254&r1=1543253&r2=1543254&view=diff
==============================================================================
---
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/ConnectionBase.java
(original)
+++
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/ConnectionBase.java
Tue Nov 19 00:43:25 2013
@@ -17,16 +17,16 @@
*/
package org.apache.jena.client;
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
-import java.lang.reflect.Proxy;
-
-import org.apache.jena.atlas.lib.Closeable;
-
-import com.hp.hpl.jena.query.ParameterizedSparqlString;
-import com.hp.hpl.jena.query.Query;
-import com.hp.hpl.jena.update.Update;
+import org.apache.jena.atlas.lib.Closeable ;
+import com.hp.hpl.jena.query.ParameterizedSparqlString ;
+import com.hp.hpl.jena.query.Query ;
+import com.hp.hpl.jena.update.Update ;
+
+/**
+ * Abstract class for Connection implementations, provides tracking of
Query/Update statement creation
+ * that prevents multiple operations from being executed at the same time.
+ */
public abstract class ConnectionBase implements Connection
{
protected final Repository repo;
@@ -52,7 +52,6 @@ public abstract class ConnectionBase imp
protected abstract UpdateStatement doCreateUpdateStatement(String
updateString);
protected abstract Updater doCreateStreamingUpdater();
- protected abstract boolean hasStreamingUpdater();
@Override
public Repository getRepository()
@@ -71,10 +70,6 @@ public abstract class ConnectionBase imp
@Override
public final Updater createStreamingUpdater()
{
- if (!hasStreamingUpdater())
- {
- throw new IllegalAccessError("This Connection does not support
retreiving a streaming Updater. You can check this with
hasStreamingUpdater()");
- }
checkOperationOngoing();
Updater toReturn = new UpdaterWrapper(doCreateStreamingUpdater())
{
@@ -155,7 +150,6 @@ public abstract class ConnectionBase imp
return toReturn;
}
- @SuppressWarnings("unused")
private UpdateStatement registerUpdateStatement(UpdateStatement us)
{
UpdateStatement toReturn = new UpdateStatementWrapper(us)
@@ -177,22 +171,22 @@ public abstract class ConnectionBase imp
}
- // Cool idea to avoid having to create *Wrapper classes. But it uses
reflection, which will be slower (by how much?)
- @SuppressWarnings({ "unchecked", "unused" })
- private <T> T getProxy(Class<T> intf, final T obj)
- {
- return (T) Proxy.newProxyInstance(obj.getClass().getClassLoader(), new
Class[] { intf }, new InvocationHandler()
- {
- public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable
- {
- Object toReturn = method.invoke(obj, args);
-
- if ("close".equals(method.getName()))
- {
- operator = null;
- }
- return toReturn;
- }
- });
- }
+// // Cool idea to avoid having to create *Wrapper classes. But it uses
reflection, which will be slower (by how much?)
+// @SuppressWarnings({ "unchecked" })
+// private <T> T getProxy(Class<T> intf, final T obj)
+// {
+// return (T) Proxy.newProxyInstance(obj.getClass().getClassLoader(),
new Class[] { intf }, new InvocationHandler()
+// {
+// public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable
+// {
+// Object toReturn = method.invoke(obj, args);
+//
+// if ("close".equals(method.getName()))
+// {
+// operator = null;
+// }
+// return toReturn;
+// }
+// });
+// }
}
Modified:
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/QueryStatement.java
URL:
http://svn.apache.org/viewvc/jena/Experimental/jena-client/src/main/java/org/apache/jena/client/QueryStatement.java?rev=1543254&r1=1543253&r2=1543254&view=diff
==============================================================================
---
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/QueryStatement.java
(original)
+++
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/QueryStatement.java
Tue Nov 19 00:43:25 2013
@@ -26,7 +26,12 @@ import com.hp.hpl.jena.rdf.model.Stateme
/**
- *
+ * Contains a query and a specific SPARQL connection, and provides methods for
executing
+ * that query against the connection.
+ * <p/>
+ * The query used to create this QueryStatement determines which {@literal
exec} method
+ * may be called. The query form must match the method you called (for
example,
+ * {@link #execAsk} will only work if the query was a SPARQL ASK query).
*
* @see Connection#createQueryStatement
* @see ResultSet
@@ -34,6 +39,12 @@ import com.hp.hpl.jena.rdf.model.Stateme
public interface QueryStatement extends SparqlStatement
{
/**
+ * Execute an ASK query.
+ * @return a <code>boolean</code> corresponding to the result of the ASK
query
+ */
+ boolean execAsk();
+
+ /**
* Execute a SELECT query.
*
* @return a ResultSet with the results of the select query.
@@ -78,8 +89,6 @@ public interface QueryStatement extends
*/
Iterator<Triple> execConstructTriples();
- /** Execute a DESCRIBE query */
-
/**
* Execute a DESCRIBE query, putting the statements into a newly created
memory model.
* @return an in-memory model containing the results of the DESCRIBE query
@@ -117,10 +126,4 @@ public interface QueryStatement extends
* by executing the DESCRIBE query.
*/
Iterator<Triple> execDescribeTriples();
-
- /**
- * Execute an ASK query.
- * @return a <code>boolean</code> corresponding to the result of the ASK
query
- */
- boolean execAsk();
}
Modified:
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/Repository.java
URL:
http://svn.apache.org/viewvc/jena/Experimental/jena-client/src/main/java/org/apache/jena/client/Repository.java?rev=1543254&r1=1543253&r2=1543254&view=diff
==============================================================================
---
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/Repository.java
(original)
+++
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/Repository.java
Tue Nov 19 00:43:25 2013
@@ -25,6 +25,11 @@ package org.apache.jena.client;
public interface Repository
{
// A limit on the number of connections? I guess based on the underlying
implementation. HTTP usually has a limit.
+ /**
+ * Creates and returns a new Connection to this repository.
+ *
+ * @return a new Connection to this repository
+ */
Connection getConnection();
}
Modified:
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/UpdateInserter.java
URL:
http://svn.apache.org/viewvc/jena/Experimental/jena-client/src/main/java/org/apache/jena/client/UpdateInserter.java?rev=1543254&r1=1543253&r2=1543254&view=diff
==============================================================================
---
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/UpdateInserter.java
(original)
+++
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/UpdateInserter.java
Tue Nov 19 00:43:25 2013
@@ -30,6 +30,9 @@ import com.hp.hpl.jena.graph.Triple;
import com.hp.hpl.jena.sparql.core.DatasetGraph;
import com.hp.hpl.jena.sparql.core.Quad;
+/**
+ * Represents a streamable SPARQL INSERT DATA operation.
+ */
public interface UpdateInserter extends Closeable
{
// Quads
Modified:
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/UpdaterBase.java
URL:
http://svn.apache.org/viewvc/jena/Experimental/jena-client/src/main/java/org/apache/jena/client/UpdaterBase.java?rev=1543254&r1=1543253&r2=1543254&view=diff
==============================================================================
---
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/UpdaterBase.java
(original)
+++
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/UpdaterBase.java
Tue Nov 19 00:43:25 2013
@@ -37,6 +37,11 @@ import com.hp.hpl.jena.sparql.core.Quad;
import com.hp.hpl.jena.update.Update;
import com.hp.hpl.jena.update.UpdateFactory;
+/**
+ * An abstract implementation of Updater that handles all of the convenience
methods,
+ * and only requires subclasses to implement three methods:
+ * {@link #doInsert(Iterator)}, {@link #doDelete(Iterator)}, and {@link
#doUpdate(Iterator)}.
+ */
public abstract class UpdaterBase implements Updater
{
Modified:
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/graph/DatasetGraphConnection.java
URL:
http://svn.apache.org/viewvc/jena/Experimental/jena-client/src/main/java/org/apache/jena/client/graph/DatasetGraphConnection.java?rev=1543254&r1=1543253&r2=1543254&view=diff
==============================================================================
---
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/graph/DatasetGraphConnection.java
(original)
+++
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/graph/DatasetGraphConnection.java
Tue Nov 19 00:43:25 2013
@@ -40,12 +40,6 @@ public class DatasetGraphConnection exte
}
@Override
- public boolean hasStreamingUpdater()
- {
- return true;
- }
-
- @Override
protected Updater doCreateStreamingUpdater()
{
DatasetGraphUpdater updater = new DatasetGraphUpdater(dsg);
Modified:
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/graph/DatasetGraphRepository.java
URL:
http://svn.apache.org/viewvc/jena/Experimental/jena-client/src/main/java/org/apache/jena/client/graph/DatasetGraphRepository.java?rev=1543254&r1=1543253&r2=1543254&view=diff
==============================================================================
---
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/graph/DatasetGraphRepository.java
(original)
+++
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/graph/DatasetGraphRepository.java
Tue Nov 19 00:43:25 2013
@@ -22,10 +22,18 @@ import org.apache.jena.client.Repository
import com.hp.hpl.jena.sparql.core.DatasetGraph;
+/**
+ * A Repository wrapped around a local DatasetGraph.
+ */
public class DatasetGraphRepository implements Repository
{
private final DatasetGraph dsg;
+ /**
+ * Construct a DatasetGraphRepository over the specified DatasetGraph.
+ *
+ * @param dsg the DatasetGraph on which to base this Repository
+ */
public DatasetGraphRepository(DatasetGraph dsg)
{
this.dsg = dsg;
Modified:
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/graph/DatasetGraphUpdateStatement.java
URL:
http://svn.apache.org/viewvc/jena/Experimental/jena-client/src/main/java/org/apache/jena/client/graph/DatasetGraphUpdateStatement.java?rev=1543254&r1=1543253&r2=1543254&view=diff
==============================================================================
---
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/graph/DatasetGraphUpdateStatement.java
(original)
+++
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/graph/DatasetGraphUpdateStatement.java
Tue Nov 19 00:43:25 2013
@@ -21,7 +21,7 @@ import org.apache.jena.client.UpdateStat
import com.hp.hpl.jena.update.Update;
-public class DatasetGraphUpdateStatement extends UpdateStatementBase
+class DatasetGraphUpdateStatement extends UpdateStatementBase
{
DatasetGraphUpdateStatement(String updateString, DatasetGraphConnection
connection)
{
Modified:
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/graph/DatasetGraphUpdater.java
URL:
http://svn.apache.org/viewvc/jena/Experimental/jena-client/src/main/java/org/apache/jena/client/graph/DatasetGraphUpdater.java?rev=1543254&r1=1543253&r2=1543254&view=diff
==============================================================================
---
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/graph/DatasetGraphUpdater.java
(original)
+++
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/graph/DatasetGraphUpdater.java
Tue Nov 19 00:43:25 2013
@@ -28,7 +28,7 @@ import com.hp.hpl.jena.update.UpdateActi
import com.hp.hpl.jena.update.UpdateRequest;
// TODO This is not atomic! But the underlying DatasetGraph isn't atomic
anyway...
-public class DatasetGraphUpdater extends UpdaterBase
+class DatasetGraphUpdater extends UpdaterBase
{
private final DatasetGraph dsg;
Modified:
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/http/HttpConnection.java
URL:
http://svn.apache.org/viewvc/jena/Experimental/jena-client/src/main/java/org/apache/jena/client/http/HttpConnection.java?rev=1543254&r1=1543253&r2=1543254&view=diff
==============================================================================
---
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/http/HttpConnection.java
(original)
+++
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/http/HttpConnection.java
Tue Nov 19 00:43:25 2013
@@ -90,14 +90,10 @@ public class HttpConnection extends Conn
}
@Override
- public boolean hasStreamingUpdater()
- {
- return true;
- }
-
- @Override
protected Updater doCreateStreamingUpdater()
{
+ if (null == updateEndpoint)
+ throw new IllegalStateException("Cannot create an Updater because
the update endpoint URL has not been set");
HttpUpdater updater = new HttpUpdater(updateEndpoint,
updateContentType);
updater.open();
return updater;
@@ -106,30 +102,40 @@ public class HttpConnection extends Conn
@Override
public QueryStatement doCreateQueryStatement(String queryString)
{
+ if (null == queryEndpoint)
+ throw new IllegalStateException("Cannot create a QueryStatement
because the query endpoint URL has not been set");
return new HttpQueryStatement(queryString, queryEndpoint, this,
selectContentType, modelContentType, askContentType);
}
@Override
public QueryStatement doCreateQueryStatement(Query query)
{
+ if (null == queryEndpoint)
+ throw new IllegalStateException("Cannot create a QueryStatement
because the query endpoint URL has not been set");
return new HttpQueryStatement(query, queryEndpoint, this,
selectContentType, modelContentType, askContentType);
}
@Override
public UpdateStatement doCreateUpdateStatement(String updateString)
{
+ if (null == updateEndpoint)
+ throw new IllegalStateException("Cannot create an UpdateStatement
because the update endpoint URL has not been set");
return new HttpUpdateStatement(updateString, this);
}
@Override
public UpdateStatement doCreateUpdateStatement(Update update)
{
+ if (null == updateEndpoint)
+ throw new IllegalStateException("Cannot create an UpdateStatement
because the update endpoint URL has not been set");
return new HttpUpdateStatement(update, this);
}
@Override
public UpdateStatement doCreateUpdateStatement(Iterable<? extends Update>
updates)
{
+ if (null == updateEndpoint)
+ throw new IllegalStateException("Cannot create an UpdateStatement
because the update endpoint URL has not been set");
return new HttpUpdateStatement(updates, this);
}
Modified:
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/http/HttpRepository.java
URL:
http://svn.apache.org/viewvc/jena/Experimental/jena-client/src/main/java/org/apache/jena/client/http/HttpRepository.java?rev=1543254&r1=1543253&r2=1543254&view=diff
==============================================================================
---
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/http/HttpRepository.java
(original)
+++
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/http/HttpRepository.java
Tue Nov 19 00:43:25 2013
@@ -20,12 +20,20 @@ package org.apache.jena.client.http;
import org.apache.jena.client.Connection;
import org.apache.jena.client.Repository;
+/**
+ * A Repository wrapped around a remote HTTP SPARQL endpoint.
+ */
public class HttpRepository implements Repository
{
private final String queryEndpoint;
private final String updateEndpoint;
-
+ /**
+ * Construct a HttpRepository over the specified HTTP SPARQL endpoint.
+ *
+ * @param queryEndpoint the SPARQL query endpoint URL; if null, then you
may not execute queries against the endpoint
+ * @param updateEndpoint the SPARQL update endpoint URL; if null, then you
may not execute updates against the endpoint
+ */
public HttpRepository(String queryEndpoint, String updateEndpoint)
{
this.queryEndpoint = queryEndpoint;
Modified:
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/http/UpdateRemote.java
URL:
http://svn.apache.org/viewvc/jena/Experimental/jena-client/src/main/java/org/apache/jena/client/http/UpdateRemote.java?rev=1543254&r1=1543253&r2=1543254&view=diff
==============================================================================
---
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/http/UpdateRemote.java
(original)
+++
jena/Experimental/jena-client/src/main/java/org/apache/jena/client/http/UpdateRemote.java
Tue Nov 19 00:43:25 2013
@@ -1,20 +1,20 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package org.apache.jena.client.http;
@@ -29,7 +29,6 @@ import org.apache.http.client.methods.Ht
import org.apache.http.entity.AbstractHttpEntity ;
import org.apache.http.entity.ByteArrayEntity ;
import org.apache.http.impl.client.DefaultHttpClient ;
-import org.apache.http.protocol.HTTP ;
import org.apache.jena.atlas.io.IndentedWriter ;
import org.apache.jena.riot.Lang ;
import org.apache.jena.riot.WebContent ;
@@ -38,7 +37,7 @@ import com.hp.hpl.jena.graph.Node ;
import com.hp.hpl.jena.graph.Triple ;
import com.hp.hpl.jena.sparql.core.Quad ;
import com.hp.hpl.jena.sparql.modify.request.Target ;
-import com.hp.hpl.jena.sparql.modify.request.UpdateDataWriter.UpdateMode;
+import com.hp.hpl.jena.sparql.modify.request.UpdateDataWriter.UpdateMode ;
import com.hp.hpl.jena.sparql.modify.request.UpdateDrop ;
import com.hp.hpl.jena.sparql.modify.request.UpdateWriter ;
import com.hp.hpl.jena.update.Update ;
@@ -109,7 +108,7 @@ class UpdateRemote
{
HttpPost httpPost = new HttpPost(serviceURL) ;
reqEntity.setContentType(WebContent.contentTypeSPARQLUpdate) ;
- reqEntity.setContentEncoding(HTTP.UTF_8) ;
+ reqEntity.setContentEncoding("UTF-8") ;
httpPost.setEntity(reqEntity) ;
HttpClient httpclient = new DefaultHttpClient() ;