You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2016/05/14 14:03:33 UTC
[34/42] jena git commit: Merge commit 'refs/pull/143/head' of
github.com:apache/jena
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-arq/src/main/java/org/apache/jena/sparql/engine/index/LinearIndex.java
----------------------------------------------------------------------
diff --cc jena-arq/src/main/java/org/apache/jena/sparql/engine/index/LinearIndex.java
index c49ddaf,c49ddaf..56267bb
--- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/index/LinearIndex.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/index/LinearIndex.java
@@@ -1,112 -1,112 +1,112 @@@
--/**
-- * 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.sparql.engine.index;
--
--import java.util.ArrayList;
--import java.util.List;
--import java.util.Map;
--import java.util.Set;
--
--import org.apache.jena.graph.Node ;
--import org.apache.jena.sparql.algebra.Algebra ;
--import org.apache.jena.sparql.core.Var ;
--import org.apache.jena.sparql.engine.QueryIterator ;
--import org.apache.jena.sparql.engine.binding.Binding ;
--import org.apache.jena.sparql.engine.binding.BindingHashMap ;
--
--/**
-- * A slow "index" that looks for data by searching linearly through a set.
-- * Only used when the indexed data contains fewer bound variables than expected.
-- * Note that this class is only used for a MINUS operation that is removing data
-- * with potentially unbound values, and is therefore rarely used.
-- *
-- * TODO: If this index starts to be used more often then consider various options for
-- * indexing on the known bound variables.
-- * One possibility is for each variable (found in commonVars) to take
-- * the value of a var/value pair and TreeMap this to a set of Bindings that it occurs in.
-- * This would offer a reduced set to search, and set intersections may also work
-- * (intersections like this could be done on Binding reference equality rather than value).
-- * TreeMap is suggested here, since there would be commonVars.size() maps, which would take
-- * a lot of heap, particularly since performance of this class is only an issue when the
-- * data to search is significant.
-- */
--
--public class LinearIndex implements IndexTable {
-- // Contribution from P Gearon (@quoll)
-- final Set<Var> commonVars ;
-- List<Binding> table = new ArrayList<>() ;
--
-- public LinearIndex(Set<Var> commonVars, QueryIterator data)
-- {
-- this.commonVars = commonVars ;
-- while ( data.hasNext() )
-- table.add(data.next()) ;
-- data.close() ;
-- }
--
-- public LinearIndex(Set<Var> commonVars, QueryIterator data, Set<HashIndexTable.Key> loadedData, Map<Var,Integer> mappings)
-- {
-- this.commonVars = commonVars ;
-- for ( HashIndexTable.Key key: loadedData )
-- table.add(toBinding(key, mappings)) ;
--
-- while ( data.hasNext() )
-- table.add(data.next()) ;
-- data.close() ;
-- }
--
-- @Override
-- public boolean containsCompatibleWithSharedDomain(Binding bindingLeft)
-- {
-- if ( commonVars.size() == 0 )
-- return false ;
--
-- for ( Binding bindingRight: table )
-- {
-- if ( hasCommonVars(bindingLeft, bindingRight)
-- && Algebra.compatible(bindingLeft, bindingRight) )
-- return true ;
-- }
-- return false ;
-- }
--
-- private boolean hasCommonVars(Binding left, Binding right)
-- {
-- for ( Var v: commonVars )
-- {
-- if ( left.contains(v) && right.contains(v) )
-- return true ;
-- }
-- return false;
-- }
--
-- static Binding toBinding(HashIndexTable.Key key, Map<Var,Integer> mappings)
-- {
-- Node[] values = key.getNodes() ;
-- BindingHashMap b = new BindingHashMap() ;
-- for (Map.Entry<Var,Integer> mapping: mappings.entrySet())
-- {
-- Node value = values[mapping.getValue()] ;
-- if ( value != null )
-- b.add(mapping.getKey(), value) ;
-- }
-- return b ;
-- }
--}
--
++/**
++ * 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.sparql.engine.index;
++
++import java.util.ArrayList;
++import java.util.List;
++import java.util.Map;
++import java.util.Set;
++
++import org.apache.jena.graph.Node ;
++import org.apache.jena.sparql.algebra.Algebra ;
++import org.apache.jena.sparql.core.Var ;
++import org.apache.jena.sparql.engine.QueryIterator ;
++import org.apache.jena.sparql.engine.binding.Binding ;
++import org.apache.jena.sparql.engine.binding.BindingHashMap ;
++
++/**
++ * A slow "index" that looks for data by searching linearly through a set.
++ * Only used when the indexed data contains fewer bound variables than expected.
++ * Note that this class is only used for a MINUS operation that is removing data
++ * with potentially unbound values, and is therefore rarely used.
++ *
++ * TODO: If this index starts to be used more often then consider various options for
++ * indexing on the known bound variables.
++ * One possibility is for each variable (found in commonVars) to take
++ * the value of a var/value pair and TreeMap this to a set of Bindings that it occurs in.
++ * This would offer a reduced set to search, and set intersections may also work
++ * (intersections like this could be done on Binding reference equality rather than value).
++ * TreeMap is suggested here, since there would be commonVars.size() maps, which would take
++ * a lot of heap, particularly since performance of this class is only an issue when the
++ * data to search is significant.
++ */
++
++public class LinearIndex implements IndexTable {
++ // Contribution from P Gearon (@quoll)
++ final Set<Var> commonVars ;
++ List<Binding> table = new ArrayList<>() ;
++
++ public LinearIndex(Set<Var> commonVars, QueryIterator data)
++ {
++ this.commonVars = commonVars ;
++ while ( data.hasNext() )
++ table.add(data.next()) ;
++ data.close() ;
++ }
++
++ public LinearIndex(Set<Var> commonVars, QueryIterator data, Set<HashIndexTable.Key> loadedData, Map<Var,Integer> mappings)
++ {
++ this.commonVars = commonVars ;
++ for ( HashIndexTable.Key key: loadedData )
++ table.add(toBinding(key, mappings)) ;
++
++ while ( data.hasNext() )
++ table.add(data.next()) ;
++ data.close() ;
++ }
++
++ @Override
++ public boolean containsCompatibleWithSharedDomain(Binding bindingLeft)
++ {
++ if ( commonVars.size() == 0 )
++ return false ;
++
++ for ( Binding bindingRight: table )
++ {
++ if ( hasCommonVars(bindingLeft, bindingRight)
++ && Algebra.compatible(bindingLeft, bindingRight) )
++ return true ;
++ }
++ return false ;
++ }
++
++ private boolean hasCommonVars(Binding left, Binding right)
++ {
++ for ( Var v: commonVars )
++ {
++ if ( left.contains(v) && right.contains(v) )
++ return true ;
++ }
++ return false;
++ }
++
++ static Binding toBinding(HashIndexTable.Key key, Map<Var,Integer> mappings)
++ {
++ Node[] values = key.getNodes() ;
++ BindingHashMap b = new BindingHashMap() ;
++ for (Map.Entry<Var,Integer> mapping: mappings.entrySet())
++ {
++ Node value = values[mapping.getValue()] ;
++ if ( value != null )
++ b.add(mapping.getKey(), value) ;
++ }
++ return b ;
++ }
++}
++
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngine.java
----------------------------------------------------------------------
diff --cc jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngine.java
index 464f1c6,464f1c6..d8ef828
--- a/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngine.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngine.java
@@@ -1,43 -1,43 +1,43 @@@
--/*
-- * 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.sparql.modify;
--
--
--/**
-- * An UpdateEngine provides an interface to execute a SPARQL update request.
-- * An update engine is use-once; that is, it executes a single SPARQL Update request
-- * (there may be multiple operations in one request).
-- */
--public interface UpdateEngine
--{
-- /**
-- * Signal start of a request being executed
-- */
-- public void startRequest();
--
-- /**
-- * Signal end of a request being executed
-- */
-- public void finishRequest();
--
-- /**
-- * Returns an {@link UpdateSink} that accepts Update operations
-- */
-- public UpdateSink getUpdateSink();
--}
++/*
++ * 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.sparql.modify;
++
++
++/**
++ * An UpdateEngine provides an interface to execute a SPARQL update request.
++ * An update engine is use-once; that is, it executes a single SPARQL Update request
++ * (there may be multiple operations in one request).
++ */
++public interface UpdateEngine
++{
++ /**
++ * Signal start of a request being executed
++ */
++ public void startRequest();
++
++ /**
++ * Signal end of a request being executed
++ */
++ public void finishRequest();
++
++ /**
++ * Returns an {@link UpdateSink} that accepts Update operations
++ */
++ public UpdateSink getUpdateSink();
++}
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateRequestSink.java
----------------------------------------------------------------------
diff --cc jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateRequestSink.java
index 51fbe45,51fbe45..76f520e
--- a/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateRequestSink.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateRequestSink.java
@@@ -1,75 -1,75 +1,75 @@@
--/*
-- * 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.sparql.modify;
--
--import org.apache.jena.sparql.core.Prologue ;
--import org.apache.jena.sparql.modify.request.QuadDataAcc ;
--import org.apache.jena.sparql.modify.request.QuadDataAccSink ;
--import org.apache.jena.sparql.modify.request.UpdateDataDelete ;
--import org.apache.jena.sparql.modify.request.UpdateDataInsert ;
--import org.apache.jena.update.Update ;
--import org.apache.jena.update.UpdateRequest ;
--
--public class UpdateRequestSink implements UpdateSink
--{
-- final UpdateRequest updateRequest;
--
-- public UpdateRequestSink(UpdateRequest updateRequest)
-- {
-- this.updateRequest = updateRequest;
-- }
--
-- @Override
-- public void send(Update update)
-- {
-- updateRequest.add(update);
-- }
--
-- @Override
-- public void flush()
-- { }
--
-- @Override
-- public void close()
-- { }
--
-- @Override
-- public Prologue getPrologue()
-- {
-- return updateRequest;
-- }
--
-- @Override
-- public QuadDataAccSink createInsertDataSink()
-- {
-- QuadDataAcc quads = new QuadDataAcc();
-- send(new UpdateDataInsert(quads));
--
-- return quads;
-- }
--
-- @Override
-- public QuadDataAccSink createDeleteDataSink()
-- {
-- QuadDataAcc quads = new QuadDataAcc();
-- send(new UpdateDataDelete(quads));
--
-- return quads;
-- }
--}
++/*
++ * 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.sparql.modify;
++
++import org.apache.jena.sparql.core.Prologue ;
++import org.apache.jena.sparql.modify.request.QuadDataAcc ;
++import org.apache.jena.sparql.modify.request.QuadDataAccSink ;
++import org.apache.jena.sparql.modify.request.UpdateDataDelete ;
++import org.apache.jena.sparql.modify.request.UpdateDataInsert ;
++import org.apache.jena.update.Update ;
++import org.apache.jena.update.UpdateRequest ;
++
++public class UpdateRequestSink implements UpdateSink
++{
++ final UpdateRequest updateRequest;
++
++ public UpdateRequestSink(UpdateRequest updateRequest)
++ {
++ this.updateRequest = updateRequest;
++ }
++
++ @Override
++ public void send(Update update)
++ {
++ updateRequest.add(update);
++ }
++
++ @Override
++ public void flush()
++ { }
++
++ @Override
++ public void close()
++ { }
++
++ @Override
++ public Prologue getPrologue()
++ {
++ return updateRequest;
++ }
++
++ @Override
++ public QuadDataAccSink createInsertDataSink()
++ {
++ QuadDataAcc quads = new QuadDataAcc();
++ send(new UpdateDataInsert(quads));
++
++ return quads;
++ }
++
++ @Override
++ public QuadDataAccSink createDeleteDataSink()
++ {
++ QuadDataAcc quads = new QuadDataAcc();
++ send(new UpdateDataDelete(quads));
++
++ return quads;
++ }
++}
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateSink.java
----------------------------------------------------------------------
diff --cc jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateSink.java
index 3a36825,3a36825..41530b2
--- a/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateSink.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateSink.java
@@@ -1,41 -1,41 +1,41 @@@
--/*
-- * 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.sparql.modify;
--
--import org.apache.jena.atlas.lib.Sink ;
--import org.apache.jena.sparql.core.Prologue ;
--import org.apache.jena.sparql.modify.request.QuadDataAccSink ;
--import org.apache.jena.update.Update ;
--
--/**
-- * An {@link UpdateSink} is an object usually created by a container (such as a storage engine
-- * or an {@link org.apache.jena.update.UpdateRequest}) that can process or store a single SPARQL Update
-- * request which consists of one or more SPARQL Update operations.
-- */
--// TODO More documentation!
--public interface UpdateSink extends Sink<Update>
--{
-- public Prologue getPrologue();
--
-- // TODO make an interface for the quad sinks
-- public QuadDataAccSink createInsertDataSink();
--
-- public QuadDataAccSink createDeleteDataSink();
--
++/*
++ * 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.sparql.modify;
++
++import org.apache.jena.atlas.lib.Sink ;
++import org.apache.jena.sparql.core.Prologue ;
++import org.apache.jena.sparql.modify.request.QuadDataAccSink ;
++import org.apache.jena.update.Update ;
++
++/**
++ * An {@link UpdateSink} is an object usually created by a container (such as a storage engine
++ * or an {@link org.apache.jena.update.UpdateRequest}) that can process or store a single SPARQL Update
++ * request which consists of one or more SPARQL Update operations.
++ */
++// TODO More documentation!
++public interface UpdateSink extends Sink<Update>
++{
++ public Prologue getPrologue();
++
++ // TODO make an interface for the quad sinks
++ public QuadDataAccSink createInsertDataSink();
++
++ public QuadDataAccSink createDeleteDataSink();
++
}
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateVisitorSink.java
----------------------------------------------------------------------
diff --cc jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateVisitorSink.java
index 24a52bd,24a52bd..5b1a143
--- a/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateVisitorSink.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateVisitorSink.java
@@@ -1,68 -1,68 +1,68 @@@
--/*
-- * 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.sparql.modify;
--
--import org.apache.jena.sparql.core.Prologue ;
--import org.apache.jena.sparql.modify.request.QuadDataAccSink ;
--import org.apache.jena.sparql.modify.request.UpdateVisitor ;
--import org.apache.jena.update.Update ;
--
--public class UpdateVisitorSink implements UpdateSink
--{
-- private final Prologue prologue;
-- private final UpdateVisitor worker;
--
-- public UpdateVisitorSink(UpdateVisitor worker)
-- {
-- this.prologue = new Prologue();
-- this.worker = worker;
-- }
--
-- @Override
-- public Prologue getPrologue()
-- {
-- return prologue;
-- }
--
-- @Override
-- public void send(Update update)
-- {
-- update.visit(worker);
-- }
--
-- @Override
-- public QuadDataAccSink createInsertDataSink()
-- {
-- return new QuadDataAccSink(worker.createInsertDataSink());
-- }
--
-- @Override
-- public QuadDataAccSink createDeleteDataSink()
-- {
-- return new QuadDataAccSink(worker.createDeleteDataSink());
-- }
--
-- @Override
-- public void flush()
-- { }
--
-- @Override
-- public void close()
-- { }
--}
++/*
++ * 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.sparql.modify;
++
++import org.apache.jena.sparql.core.Prologue ;
++import org.apache.jena.sparql.modify.request.QuadDataAccSink ;
++import org.apache.jena.sparql.modify.request.UpdateVisitor ;
++import org.apache.jena.update.Update ;
++
++public class UpdateVisitorSink implements UpdateSink
++{
++ private final Prologue prologue;
++ private final UpdateVisitor worker;
++
++ public UpdateVisitorSink(UpdateVisitor worker)
++ {
++ this.prologue = new Prologue();
++ this.worker = worker;
++ }
++
++ @Override
++ public Prologue getPrologue()
++ {
++ return prologue;
++ }
++
++ @Override
++ public void send(Update update)
++ {
++ update.visit(worker);
++ }
++
++ @Override
++ public QuadDataAccSink createInsertDataSink()
++ {
++ return new QuadDataAccSink(worker.createInsertDataSink());
++ }
++
++ @Override
++ public QuadDataAccSink createDeleteDataSink()
++ {
++ return new QuadDataAccSink(worker.createDeleteDataSink());
++ }
++
++ @Override
++ public void flush()
++ { }
++
++ @Override
++ public void close()
++ { }
++}
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-arq/src/main/java/org/apache/jena/sparql/modify/UsingList.java
----------------------------------------------------------------------
diff --cc jena-arq/src/main/java/org/apache/jena/sparql/modify/UsingList.java
index c036685,c036685..05ef41d
--- a/jena-arq/src/main/java/org/apache/jena/sparql/modify/UsingList.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/modify/UsingList.java
@@@ -1,44 -1,44 +1,44 @@@
--/*
-- * 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.sparql.modify;
--
--import java.util.ArrayList;
--import java.util.Collection;
--import java.util.Collections;
--import java.util.List;
--
--import org.apache.jena.graph.Node ;
--
--public class UsingList
--{
-- public UsingList() { }
--
-- private List<Node> using = new ArrayList<>() ;
-- private List<Node> usingNamed = new ArrayList<>() ;
--
-- public void addUsing(Node node) { using.add(node) ; }
-- public void addAllUsing(Collection<Node> nodes) { using.addAll(nodes); }
-- public void addUsingNamed(Node node) { usingNamed.add(node) ; }
-- public void addAllUsingNamed(Collection<Node> nodes) { usingNamed.addAll(nodes); }
--
-- public List<Node> getUsing() { return Collections.unmodifiableList(using) ; }
-- public List<Node> getUsingNamed() { return Collections.unmodifiableList(usingNamed) ; }
--
-- public boolean usingIsPresent() { return using.size() > 0 || usingNamed.size() > 0 ; }
--}
++/*
++ * 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.sparql.modify;
++
++import java.util.ArrayList;
++import java.util.Collection;
++import java.util.Collections;
++import java.util.List;
++
++import org.apache.jena.graph.Node ;
++
++public class UsingList
++{
++ public UsingList() { }
++
++ private List<Node> using = new ArrayList<>() ;
++ private List<Node> usingNamed = new ArrayList<>() ;
++
++ public void addUsing(Node node) { using.add(node) ; }
++ public void addAllUsing(Collection<Node> nodes) { using.addAll(nodes); }
++ public void addUsingNamed(Node node) { usingNamed.add(node) ; }
++ public void addAllUsingNamed(Collection<Node> nodes) { usingNamed.addAll(nodes); }
++
++ public List<Node> getUsing() { return Collections.unmodifiableList(using) ; }
++ public List<Node> getUsingNamed() { return Collections.unmodifiableList(usingNamed) ; }
++
++ public boolean usingIsPresent() { return using.size() > 0 || usingNamed.size() > 0 ; }
++}
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-arq/src/main/java/org/apache/jena/sparql/modify/UsingUpdateSink.java
----------------------------------------------------------------------
diff --cc jena-arq/src/main/java/org/apache/jena/sparql/modify/UsingUpdateSink.java
index 4e9d8c5,4e9d8c5..9562f1e
--- a/jena-arq/src/main/java/org/apache/jena/sparql/modify/UsingUpdateSink.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/modify/UsingUpdateSink.java
@@@ -1,93 -1,93 +1,93 @@@
--/*
-- * 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.sparql.modify;
--
--import org.apache.jena.graph.Node ;
--import org.apache.jena.sparql.core.Prologue ;
--import org.apache.jena.sparql.modify.request.QuadDataAccSink ;
--import org.apache.jena.sparql.modify.request.UpdateWithUsing ;
--import org.apache.jena.update.Update ;
--import org.apache.jena.update.UpdateException ;
--
--/**
-- * Adds using clauses from the UsingList to UpdateWithUsing operations; will throw an UpdateException if the modify operation already contains a using clause.
-- */
--public class UsingUpdateSink implements UpdateSink
--{
-- private final UpdateSink sink;
-- private final UsingList usingList;
--
-- public UsingUpdateSink(UpdateSink sink, UsingList usingList)
-- {
-- this.sink = sink;
-- this.usingList = usingList;
-- }
--
-- @Override
-- public void send(Update update)
-- {
-- // ---- check USING/USING NAMED/WITH not used.
-- // ---- update request to have USING/USING NAMED
-- if ( null != usingList && usingList.usingIsPresent() )
-- {
-- if ( update instanceof UpdateWithUsing )
-- {
-- UpdateWithUsing upu = (UpdateWithUsing)update ;
-- if ( upu.getUsing().size() != 0 || upu.getUsingNamed().size() != 0 || upu.getWithIRI() != null )
-- throw new UpdateException("SPARQL Update: Protocol using-graph-uri or using-named-graph-uri present where update request has USING, USING NAMED or WITH") ;
-- for ( Node node : usingList.getUsing() )
-- upu.addUsing(node) ;
-- for ( Node node : usingList.getUsingNamed() )
-- upu.addUsingNamed(node) ;
-- }
-- }
--
-- sink.send(update);
-- }
--
-- @Override
-- public QuadDataAccSink createInsertDataSink()
-- {
-- return sink.createInsertDataSink();
-- }
--
-- @Override
-- public QuadDataAccSink createDeleteDataSink()
-- {
-- return sink.createDeleteDataSink();
-- }
--
-- @Override
-- public void flush()
-- {
-- sink.flush();
-- }
--
-- @Override
-- public void close()
-- {
-- sink.close();
-- }
--
-- @Override
-- public Prologue getPrologue()
-- {
-- return sink.getPrologue();
-- }
--}
++/*
++ * 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.sparql.modify;
++
++import org.apache.jena.graph.Node ;
++import org.apache.jena.sparql.core.Prologue ;
++import org.apache.jena.sparql.modify.request.QuadDataAccSink ;
++import org.apache.jena.sparql.modify.request.UpdateWithUsing ;
++import org.apache.jena.update.Update ;
++import org.apache.jena.update.UpdateException ;
++
++/**
++ * Adds using clauses from the UsingList to UpdateWithUsing operations; will throw an UpdateException if the modify operation already contains a using clause.
++ */
++public class UsingUpdateSink implements UpdateSink
++{
++ private final UpdateSink sink;
++ private final UsingList usingList;
++
++ public UsingUpdateSink(UpdateSink sink, UsingList usingList)
++ {
++ this.sink = sink;
++ this.usingList = usingList;
++ }
++
++ @Override
++ public void send(Update update)
++ {
++ // ---- check USING/USING NAMED/WITH not used.
++ // ---- update request to have USING/USING NAMED
++ if ( null != usingList && usingList.usingIsPresent() )
++ {
++ if ( update instanceof UpdateWithUsing )
++ {
++ UpdateWithUsing upu = (UpdateWithUsing)update ;
++ if ( upu.getUsing().size() != 0 || upu.getUsingNamed().size() != 0 || upu.getWithIRI() != null )
++ throw new UpdateException("SPARQL Update: Protocol using-graph-uri or using-named-graph-uri present where update request has USING, USING NAMED or WITH") ;
++ for ( Node node : usingList.getUsing() )
++ upu.addUsing(node) ;
++ for ( Node node : usingList.getUsingNamed() )
++ upu.addUsingNamed(node) ;
++ }
++ }
++
++ sink.send(update);
++ }
++
++ @Override
++ public QuadDataAccSink createInsertDataSink()
++ {
++ return sink.createInsertDataSink();
++ }
++
++ @Override
++ public QuadDataAccSink createDeleteDataSink()
++ {
++ return sink.createDeleteDataSink();
++ }
++
++ @Override
++ public void flush()
++ {
++ sink.flush();
++ }
++
++ @Override
++ public void close()
++ {
++ sink.close();
++ }
++
++ @Override
++ public Prologue getPrologue()
++ {
++ return sink.getPrologue();
++ }
++}
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-arq/src/main/java/org/apache/jena/sparql/modify/request/UpdateDataWriter.java
----------------------------------------------------------------------
diff --cc jena-arq/src/main/java/org/apache/jena/sparql/modify/request/UpdateDataWriter.java
index 379b5ca,379b5ca..99a6119
--- a/jena-arq/src/main/java/org/apache/jena/sparql/modify/request/UpdateDataWriter.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/modify/request/UpdateDataWriter.java
@@@ -1,57 -1,57 +1,57 @@@
--/*
-- * 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.sparql.modify.request;
--
--import org.apache.jena.atlas.io.IndentedWriter ;
--import org.apache.jena.riot.out.SinkQuadBracedOutput ;
--import org.apache.jena.sparql.serializer.SerializationContext ;
--
--public class UpdateDataWriter extends SinkQuadBracedOutput
--{
-- /**
-- * The mode an UpdateDataWriter is in.
-- */
-- public enum UpdateMode
-- {
-- INSERT,
-- DELETE,
-- }
--
-- private final UpdateMode mode;
--
-- public UpdateDataWriter(UpdateMode mode, IndentedWriter out, SerializationContext sCxt)
-- {
-- super(out, sCxt);
-- this.mode = mode;
-- }
--
-- public UpdateMode getMode()
-- {
-- return mode;
-- }
--
-- @Override
-- public void open()
-- {
-- out.ensureStartOfLine();
-- out.print(mode.toString());
-- out.print(" DATA ");
-- super.open();
-- }
--}
++/*
++ * 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.sparql.modify.request;
++
++import org.apache.jena.atlas.io.IndentedWriter ;
++import org.apache.jena.riot.out.SinkQuadBracedOutput ;
++import org.apache.jena.sparql.serializer.SerializationContext ;
++
++public class UpdateDataWriter extends SinkQuadBracedOutput
++{
++ /**
++ * The mode an UpdateDataWriter is in.
++ */
++ public enum UpdateMode
++ {
++ INSERT,
++ DELETE,
++ }
++
++ private final UpdateMode mode;
++
++ public UpdateDataWriter(UpdateMode mode, IndentedWriter out, SerializationContext sCxt)
++ {
++ super(out, sCxt);
++ this.mode = mode;
++ }
++
++ public UpdateMode getMode()
++ {
++ return mode;
++ }
++
++ @Override
++ public void open()
++ {
++ out.ensureStartOfLine();
++ out.print(mode.toString());
++ out.print(" DATA ");
++ super.open();
++ }
++}
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-arq/src/main/java/org/apache/jena/web/DatasetGraphAccessor.java
----------------------------------------------------------------------
diff --cc jena-arq/src/main/java/org/apache/jena/web/DatasetGraphAccessor.java
index c027318,c027318..74cbf4e
--- a/jena-arq/src/main/java/org/apache/jena/web/DatasetGraphAccessor.java
+++ b/jena-arq/src/main/java/org/apache/jena/web/DatasetGraphAccessor.java
@@@ -16,32 -16,32 +16,32 @@@
* limitations under the License.
*/
--package org.apache.jena.web;
--
++package org.apache.jena.web;
++
import org.apache.jena.graph.Graph ;
import org.apache.jena.graph.Node ;
--
--public interface DatasetGraphAccessor
--{
-- public Graph httpGet() ;
-- public Graph httpGet(Node graphName) ;
--
-- public boolean httpHead() ;
-- public boolean httpHead(Node graphName) ;
--
-- // Replace/create graph
-- public void httpPut(Graph data) ;
-- public void httpPut(Node graphName, Graph data) ;
--
-- // Remove graph
-- public void httpDelete() ;
-- public void httpDelete(Node graphName) ;
--
-- // Update graph
-- public void httpPost(Graph data) ;
-- public void httpPost(Node graphName, Graph data) ;
--
-- // Update graph
-- public void httpPatch(Graph data) ;
-- public void httpPatch(Node graphName, Graph data) ;
++
++public interface DatasetGraphAccessor
++{
++ public Graph httpGet() ;
++ public Graph httpGet(Node graphName) ;
++
++ public boolean httpHead() ;
++ public boolean httpHead(Node graphName) ;
++
++ // Replace/create graph
++ public void httpPut(Graph data) ;
++ public void httpPut(Node graphName, Graph data) ;
++
++ // Remove graph
++ public void httpDelete() ;
++ public void httpDelete(Node graphName) ;
++
++ // Update graph
++ public void httpPost(Graph data) ;
++ public void httpPost(Node graphName, Graph data) ;
++
++ // Update graph
++ public void httpPatch(Graph data) ;
++ public void httpPatch(Node graphName, Graph data) ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-arq/src/main/java/org/apache/jena/web/DatasetGraphAccessorBasic.java
----------------------------------------------------------------------
diff --cc jena-arq/src/main/java/org/apache/jena/web/DatasetGraphAccessorBasic.java
index ecba83e,ecba83e..2acf277
--- a/jena-arq/src/main/java/org/apache/jena/web/DatasetGraphAccessorBasic.java
+++ b/jena-arq/src/main/java/org/apache/jena/web/DatasetGraphAccessorBasic.java
@@@ -16,39 -16,39 +16,39 @@@
* limitations under the License.
*/
--package org.apache.jena.web;
--
--
++package org.apache.jena.web;
++
++
import org.apache.jena.graph.Graph ;
import org.apache.jena.graph.GraphUtil ;
import org.apache.jena.graph.Node ;
import org.apache.jena.sparql.core.DatasetGraph ;
--
--/**
-- * General implementation of operations for the SPARQL HTTP Update protocol
-- * over a DatasetGraph.
-- */
--public class DatasetGraphAccessorBasic implements DatasetGraphAccessor
--{
-- private DatasetGraph dataset ;
--
-- public DatasetGraphAccessorBasic(DatasetGraph dataset)
-- {
-- this.dataset = dataset ;
-- }
--
-- @Override
-- public Graph httpGet() { return dataset.getDefaultGraph() ; }
--
-- @Override
-- public Graph httpGet(Node graphName) { return dataset.getGraph(graphName) ; }
--
-- @Override
-- public boolean httpHead() { return true ; }
--
-- @Override
-- public boolean httpHead(Node graphName) { return dataset.containsGraph(graphName) ; }
--
++
++/**
++ * General implementation of operations for the SPARQL HTTP Update protocol
++ * over a DatasetGraph.
++ */
++public class DatasetGraphAccessorBasic implements DatasetGraphAccessor
++{
++ private DatasetGraph dataset ;
++
++ public DatasetGraphAccessorBasic(DatasetGraph dataset)
++ {
++ this.dataset = dataset ;
++ }
++
++ @Override
++ public Graph httpGet() { return dataset.getDefaultGraph() ; }
++
++ @Override
++ public Graph httpGet(Node graphName) { return dataset.getGraph(graphName) ; }
++
++ @Override
++ public boolean httpHead() { return true ; }
++
++ @Override
++ public boolean httpHead(Node graphName) { return dataset.containsGraph(graphName) ; }
++
@Override
public void httpPut(Graph data) {
putGraph(dataset.getDefaultGraph(), data) ;
@@@ -91,13 -91,13 +91,13 @@@
}
mergeGraph(ng, data) ;
}
--
-- @Override
-- public void httpPatch(Graph data) { httpPost(data) ; }
--
-- @Override
-- public void httpPatch(Node graphName, Graph data) { httpPost(graphName, data) ;}
--
++
++ @Override
++ public void httpPatch(Graph data) { httpPost(data) ; }
++
++ @Override
++ public void httpPatch(Node graphName, Graph data) { httpPost(graphName, data) ;}
++
private void putGraph(Graph destGraph, Graph data) {
clearGraph(destGraph) ;
mergeGraph(destGraph, data) ;
@@@ -110,6 -110,6 +110,6 @@@
private void mergeGraph(Graph graph, Graph data) {
GraphUtil.addInto(graph, data) ;
-- }
--
++ }
++
}
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-arq/src/test/java/org/apache/jena/query/TS_ParamString.java
----------------------------------------------------------------------
diff --cc jena-arq/src/test/java/org/apache/jena/query/TS_ParamString.java
index bba2a1a,bba2a1a..866d066
--- a/jena-arq/src/test/java/org/apache/jena/query/TS_ParamString.java
+++ b/jena-arq/src/test/java/org/apache/jena/query/TS_ParamString.java
@@@ -1,31 -1,31 +1,31 @@@
--/**
-- * 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.query;
--
--import org.junit.runner.RunWith ;
--import org.junit.runners.Suite ;
--
--@RunWith(Suite.class)
--@Suite.SuiteClasses( {
-- TestParameterizedSparqlString.class
--})
--
--public class TS_ParamString
--{ }
--
++/**
++ * 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.query;
++
++import org.junit.runner.RunWith ;
++import org.junit.runners.Suite ;
++
++@RunWith(Suite.class)
++@Suite.SuiteClasses( {
++ TestParameterizedSparqlString.class
++})
++
++public class TS_ParamString
++{ }
++