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 2018/06/12 11:59:11 UTC
[2/5] jena git commit: Fix test bug: use reset prefixes
Fix test bug: use reset prefixes
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/55ba0e80
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/55ba0e80
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/55ba0e80
Branch: refs/heads/master
Commit: 55ba0e807b6ebd4f89b16ae6c621e226b1452e38
Parents: 2377f47
Author: Andy Seaborne <an...@apache.org>
Authored: Sat Jun 9 15:09:40 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Mon Jun 11 14:35:08 2018 +0100
----------------------------------------------------------------------
.../jena/sparql/graph/PrefixMappingAdapter.java | 99 ++++++++++++++++++++
.../jena/sparql/graph/PrefixMappingBase.java | 26 +++--
.../jena/sparql/graph/PrefixMappingMem.java | 11 ++-
.../jena/sparql/graph/PrefixMappingOver.java | 97 -------------------
.../jena/sparql/graph/PrefixMappingSink.java | 4 +-
.../jena/sparql/graph/PrefixMappingZero.java | 4 +-
.../graph/TestPrefixMappingPrefixMap.java | 4 +-
.../jena/tdb/graph/TestPrefixMappingTDB.java | 4 +-
8 files changed, 132 insertions(+), 117 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/55ba0e80/jena-arq/src/main/java/org/apache/jena/sparql/graph/PrefixMappingAdapter.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/graph/PrefixMappingAdapter.java b/jena-arq/src/main/java/org/apache/jena/sparql/graph/PrefixMappingAdapter.java
new file mode 100644
index 0000000..f48c6b5
--- /dev/null
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/graph/PrefixMappingAdapter.java
@@ -0,0 +1,99 @@
+/*
+ * 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.graph;
+
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Objects;
+import java.util.function.BiConsumer;
+
+import org.apache.jena.iri.IRI;
+import org.apache.jena.riot.system.PrefixMap;
+import org.apache.jena.shared.PrefixMapping;
+
+/** Provided {@link PrefixMapping} for a {@link PrefixMap}. */
+public class PrefixMappingAdapter extends PrefixMappingBase {
+
+ private final PrefixMap pmap;
+
+ public PrefixMappingAdapter(PrefixMap pmap) {
+ this.pmap = pmap;
+ }
+
+ @Override
+ protected void add(String prefix, String uri) {
+ pmap.add(prefix, uri);
+ }
+
+ @Override
+ protected void remove(String prefix) {
+ pmap.delete(prefix);
+ }
+
+ @Override
+ protected void clear() {
+ pmap.clear();
+ }
+
+ @Override
+ protected boolean isEmpty() {
+ return pmap.isEmpty();
+ }
+
+ @Override
+ protected int size() {
+ return pmap.size();
+ }
+
+ @Override
+ protected String prefixToUri(String prefix) {
+ IRI iri = pmap.getMapping().get(prefix);
+ if ( iri == null )
+ return null;
+ return iri.toString();
+ }
+
+ @Override
+ protected String uriToPrefix(String uri) {
+ return pmap.getMapping().entrySet().stream()
+ .filter(e->Objects.equals(uri, e.getValue().toString()))
+ .map(Entry::getKey)
+ .findFirst()
+ .orElse(null);
+ }
+
+ @Override
+ protected Map<String, String> asMap() {
+ return pmap.getMappingCopyStr();
+ }
+
+ @Override
+ protected Map<String, String> asMapCopy() {
+ return pmap.getMappingCopyStr();
+ }
+
+ @Override
+ protected void apply(BiConsumer<String, String> action) {
+ BiConsumer<String, IRI> a = (p, iri)->action.accept(p, iri.toString());
+ pmap.forEach(a);
+ }
+
+
+
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/55ba0e80/jena-arq/src/main/java/org/apache/jena/sparql/graph/PrefixMappingBase.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/graph/PrefixMappingBase.java b/jena-arq/src/main/java/org/apache/jena/sparql/graph/PrefixMappingBase.java
index a9e1e7c..8c927c6 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/graph/PrefixMappingBase.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/graph/PrefixMappingBase.java
@@ -33,15 +33,13 @@ import org.apache.jena.util.SplitIRI;
* {@code PrefixMappingImpl}) and implements the contract of {@link PrefixMapping},
* providing the key algorithm and delegating storage to the subclasses.
* <p>
- * Reverse mapping, looking up a URI to find a prefix is complex. There may be several
- * possibilities. Applications should not reliy on every implementat being consistent,
- * espeically when writing data when there has to be a choice on on prefix to use to
- * shorten a URI.
- *
+ * Reverse mapping, looking up a URI to find a prefix is complex because there may be several
+ * possibilities. Applications should not rely on every implementation being consistent
+ * when there is a choice of which prefix to use to shorten a URI.
*/
public abstract class PrefixMappingBase implements PrefixMapping {
/* Reverse mappings.
- * The strict contract of PrefixMapping requires a separate reversemapping to be storoed and manipuated
+ * The strict contract of PrefixMapping requires a separate reverse mapping to be stored and manipulated,
* which in turn adds complexity to the storage implementations.
* However, applications removing prefixes is unusual so we end up with a lot of complexity with little value.
*
@@ -92,8 +90,8 @@ public abstract class PrefixMappingBase implements PrefixMapping {
/** Return as a map. This map is only used within this class.
* It can be as efficient as possible.
- * It will not be modifed.
- * It wil not be retuned to a caller of {@code PrefixMappingBase}.
+ * It will not be modified.
+ * It will not be returned to a caller of {@code PrefixMappingBase}.
*/
abstract protected Map<String, String> asMap();
@@ -107,7 +105,7 @@ public abstract class PrefixMappingBase implements PrefixMapping {
abstract protected void apply(BiConsumer<String, String> action);
/**
- * This part of the subclass API and may be overriden if an implementation can do
+ * This part of the subclass API and may be overridden if an implementation can do
* better This general implementation is based on asMap() which may be a copy or may
* be a view of the storage directly.
*/
@@ -122,7 +120,7 @@ public abstract class PrefixMappingBase implements PrefixMapping {
@Override
public PrefixMapping setNsPrefix(String prefix, String uri) {
- checkLegal(prefix);
+ checkLegalPrefix(prefix);
add(prefix, uri);
return this;
}
@@ -150,7 +148,7 @@ public abstract class PrefixMappingBase implements PrefixMapping {
* <p>
* See also {@link #qnameFor}.
*/
- private void checkLegal(String prefix) {
+ public static void checkLegalPrefix(String prefix) {
if ( prefix == null )
throw new PrefixMapping.IllegalPrefixException("null for prefix");
if ( prefix.length() > 0 && !XMLChar.isValidNCName(prefix) )
@@ -177,13 +175,13 @@ public abstract class PrefixMappingBase implements PrefixMapping {
/* Not javadoc.
This is the unusual contract as defined by the interface:
- Update this PrefixMapping with the bindings in <code>map</code>, only
- adding those (p, u) pairs for which neither p nor u appears in this mapping.
+ Update this PrefixMapping with the bindings in <code>map</code>, only
+ adding those (p, u) pairs for which neither p nor u appears in this mapping.
*/
@Override
public PrefixMapping withDefaultMappings(PrefixMapping pmap) {
if ( pmap instanceof PrefixMappingBase ) {
- // Direct. No intemediate Map<> object created,
+ // Direct. No intermediate Map<> object created,
PrefixMappingBase pmap2 = (PrefixMappingBase)pmap;
pmap2.apply(this::addWith);
return this;
http://git-wip-us.apache.org/repos/asf/jena/blob/55ba0e80/jena-arq/src/main/java/org/apache/jena/sparql/graph/PrefixMappingMem.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/graph/PrefixMappingMem.java b/jena-arq/src/main/java/org/apache/jena/sparql/graph/PrefixMappingMem.java
index e4a8e0e..07c6809 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/graph/PrefixMappingMem.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/graph/PrefixMappingMem.java
@@ -24,7 +24,16 @@ import java.util.Objects;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.BiConsumer;
-/** In-memory pair of maps */
+import org.apache.jena.shared.PrefixMapping;
+import org.apache.jena.shared.impl.PrefixMappingImpl;
+
+/**
+ * A {@link PrefixMapping} implemented as a pair of in-memory maps.
+ *
+ * @implNote
+ * {@link PrefixMappingImpl} is the long time implementation.
+ * This class should be exactly the same within the {@link PrefixMappingBase} framework.
+ */
public class PrefixMappingMem extends PrefixMappingBase {
private Map<String, String> prefixToUri = new ConcurrentHashMap<>();
http://git-wip-us.apache.org/repos/asf/jena/blob/55ba0e80/jena-arq/src/main/java/org/apache/jena/sparql/graph/PrefixMappingOver.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/graph/PrefixMappingOver.java b/jena-arq/src/main/java/org/apache/jena/sparql/graph/PrefixMappingOver.java
deleted file mode 100644
index c933d04..0000000
--- a/jena-arq/src/main/java/org/apache/jena/sparql/graph/PrefixMappingOver.java
+++ /dev/null
@@ -1,97 +0,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.graph;
-
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Objects;
-import java.util.function.BiConsumer;
-
-import org.apache.jena.iri.IRI;
-import org.apache.jena.riot.system.PrefixMap;
-
-public class PrefixMappingOver extends PrefixMappingBase {
-
- private final PrefixMap pmap;
-
- public PrefixMappingOver(PrefixMap pmap) {
- this.pmap = pmap;
- }
-
- @Override
- protected void add(String prefix, String uri) {
- pmap.add(prefix, uri);
- }
-
- @Override
- protected void remove(String prefix) {
- pmap.delete(prefix);
- }
-
- @Override
- protected void clear() {
- pmap.clear();
- }
-
- @Override
- protected boolean isEmpty() {
- return pmap.isEmpty();
- }
-
- @Override
- protected int size() {
- return pmap.size();
- }
-
- @Override
- protected String prefixToUri(String prefix) {
- IRI iri = pmap.getMapping().get(prefix);
- if ( iri == null )
- return null;
- return iri.toString();
- }
-
- @Override
- protected String uriToPrefix(String uri) {
- return pmap.getMapping().entrySet().stream()
- .filter(e->Objects.equals(uri, e.getValue().toString()))
- .map(Entry::getKey)
- .findFirst()
- .orElse(null);
- }
-
- @Override
- protected Map<String, String> asMap() {
- return pmap.getMappingCopyStr();
- }
-
- @Override
- protected Map<String, String> asMapCopy() {
- return pmap.getMappingCopyStr();
- }
-
- @Override
- protected void apply(BiConsumer<String, String> action) {
- BiConsumer<String, IRI> a = (p, iri)->action.accept(p, iri.toString());
- pmap.forEach(a);
- }
-
-
-
-}
http://git-wip-us.apache.org/repos/asf/jena/blob/55ba0e80/jena-arq/src/main/java/org/apache/jena/sparql/graph/PrefixMappingSink.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/graph/PrefixMappingSink.java b/jena-arq/src/main/java/org/apache/jena/sparql/graph/PrefixMappingSink.java
index 03dfb2b..b23a10d 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/graph/PrefixMappingSink.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/graph/PrefixMappingSink.java
@@ -24,7 +24,9 @@ import java.util.Map.Entry;
import java.util.Optional;
import java.util.function.BiConsumer;
-/** Sink PrefixMapping. Accepts changes but does not retain state. */
+import org.apache.jena.shared.PrefixMapping;
+
+/** Sink {@link PrefixMapping}. Accepts changes but does not retain state. */
public class PrefixMappingSink extends PrefixMappingBase {
@Override
protected void add(String prefix, String uri) { }
http://git-wip-us.apache.org/repos/asf/jena/blob/55ba0e80/jena-arq/src/main/java/org/apache/jena/sparql/graph/PrefixMappingZero.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/graph/PrefixMappingZero.java b/jena-arq/src/main/java/org/apache/jena/sparql/graph/PrefixMappingZero.java
index 0953c4e..f329ff4 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/graph/PrefixMappingZero.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/graph/PrefixMappingZero.java
@@ -18,7 +18,9 @@
package org.apache.jena.sparql.graph;
-/** Immutable empty PrefixMapping. */
+import org.apache.jena.shared.PrefixMapping;
+
+/** Immutable empty {@link PrefixMapping}. */
public class PrefixMappingZero extends PrefixMappingSink {
@Override
http://git-wip-us.apache.org/repos/asf/jena/blob/55ba0e80/jena-arq/src/test/java/org/apache/jena/sparql/graph/TestPrefixMappingPrefixMap.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/graph/TestPrefixMappingPrefixMap.java b/jena-arq/src/test/java/org/apache/jena/sparql/graph/TestPrefixMappingPrefixMap.java
index 856e6f6..176fd3e4 100644
--- a/jena-arq/src/test/java/org/apache/jena/sparql/graph/TestPrefixMappingPrefixMap.java
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/graph/TestPrefixMappingPrefixMap.java
@@ -24,7 +24,7 @@ import org.apache.jena.riot.system.PrefixMap;
import org.apache.jena.riot.system.PrefixMapFactory;
import org.apache.jena.shared.AbstractTestPrefixMapping;
import org.apache.jena.shared.PrefixMapping;
-import org.apache.jena.sparql.graph.PrefixMappingOver;
+import org.apache.jena.sparql.graph.PrefixMappingAdapter;
/** Test a {@link PrefixMapping} backed by a {@link PrefixMap} */
public class TestPrefixMappingPrefixMap extends AbstractTestPrefixMapping {
@@ -36,7 +36,7 @@ public class TestPrefixMappingPrefixMap extends AbstractTestPrefixMapping {
@Override
protected PrefixMapping getMapping() {
PrefixMap pmap = PrefixMapFactory.create();
- return new PrefixMappingOver(pmap);
+ return new PrefixMappingAdapter(pmap);
}
// PrefixMaps only keep the prefix -> URI direction mapping.
http://git-wip-us.apache.org/repos/asf/jena/blob/55ba0e80/jena-tdb/src/test/java/org/apache/jena/tdb/graph/TestPrefixMappingTDB.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/test/java/org/apache/jena/tdb/graph/TestPrefixMappingTDB.java b/jena-tdb/src/test/java/org/apache/jena/tdb/graph/TestPrefixMappingTDB.java
index e226421..de26fb2 100644
--- a/jena-tdb/src/test/java/org/apache/jena/tdb/graph/TestPrefixMappingTDB.java
+++ b/jena-tdb/src/test/java/org/apache/jena/tdb/graph/TestPrefixMappingTDB.java
@@ -111,7 +111,9 @@ public class TestPrefixMappingTDB extends AbstractTestPrefixMapping2
prefixes.close() ;
prefixes = createTesting(Location.create(dir), new DatasetControlMRSW()) ;
- assertEquals("http://foo/", pmap1.getNsPrefixURI("x")) ;
+ PrefixMapping pmap2 = prefixes.getPrefixMapping() ;
+ String uri = pmap2.getNsPrefixURI("x");
+ assertEquals("http://foo/", uri) ;
prefixes.close() ;
}