You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@any23.apache.org by jg...@apache.org on 2017/12/14 12:19:39 UTC
[1/2] any23 git commit: Solved issues in javadoc description.
Repository: any23
Updated Branches:
refs/heads/master bcd87e524 -> f44be91f9
Solved issues in javadoc description.
- replaces Map.Entry by dedicated small getters bean.
- other small changes
Signed-off-by:Jacek Grzebyta <gr...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/any23/repo
Commit: http://git-wip-us.apache.org/repos/asf/any23/commit/aefcce70
Tree: http://git-wip-us.apache.org/repos/asf/any23/tree/aefcce70
Diff: http://git-wip-us.apache.org/repos/asf/any23/diff/aefcce70
Branch: refs/heads/master
Commit: aefcce70abbc072723422b726fcc7efe6f1e3e22
Parents: bcd87e5
Author: Jacek Grzebyta <gr...@gmail.com>
Authored: Tue Dec 12 16:48:11 2017 +0000
Committer: Jacek Grzebyta <gr...@gmail.com>
Committed: Tue Dec 12 16:48:11 2017 +0000
----------------------------------------------------------------------
.../any23/extractor/yaml/ElementsProcessor.java | 66 +++++++++++++-------
.../any23/extractor/yaml/YAMLExtractor.java | 13 ++--
.../java/org/apache/any23/rdf/RDFUtils.java | 15 ++---
.../extractor/yaml/ElementsProcessorTest.java | 27 ++++----
4 files changed, 71 insertions(+), 50 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/any23/blob/aefcce70/core/src/main/java/org/apache/any23/extractor/yaml/ElementsProcessor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/any23/extractor/yaml/ElementsProcessor.java b/core/src/main/java/org/apache/any23/extractor/yaml/ElementsProcessor.java
index 2d95c86..bacb90c 100644
--- a/core/src/main/java/org/apache/any23/extractor/yaml/ElementsProcessor.java
+++ b/core/src/main/java/org/apache/any23/extractor/yaml/ElementsProcessor.java
@@ -17,7 +17,6 @@
package org.apache.any23.extractor.yaml;
import com.google.common.collect.Sets;
-import java.util.AbstractMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
@@ -38,7 +37,7 @@ import org.eclipse.rdf4j.model.vocabulary.RDF;
import org.eclipse.rdf4j.model.vocabulary.RDFS;
/**
- * Converts Object into RDF graph encoded to {@link Map.Entry}. Where key is a
+ * Converts Object into RDF graph encoded to {@link ModelHolder}. Where key is a
* graph root node and value is a graph itself inside a {@link Model}.
*
* This parser performs conversion for three main types:
@@ -59,12 +58,35 @@ public class ElementsProcessor {
private static final ElementsProcessor _ep = new ElementsProcessor();
- private Map.Entry<Value, Model> asMapEntry(Value v, Model m) {
- return new AbstractMap.SimpleEntry(v, m);
+ /**
+ * A model holder describes the two required parameters which makes a model useful
+ * in further processing: a root node and model itself.
+ */
+ public class ModelHolder {
+ private final Value root;
+ private final Model model;
+
+ public Value getRoot() {
+ return root;
+ }
+
+ public Model getModel() {
+ return model;
+ }
+
+ public ModelHolder(Value root, Model model) {
+ this.root = root;
+ this.model = model;
+ }
+ }
+
+
+ private ModelHolder asModelHolder(Value v, Model m) {
+ return new ModelHolder(v,m);
}
/**
- * Converts a data structure to {@link Map.Entry}. where value
+ * Converts a data structure to {@link ModelHolder}. where value
* is a root node of the data structure and model is a content of the RDF
* graph.
*
@@ -76,9 +98,9 @@ public class ElementsProcessor {
* @param t Object (or data structure) converting to RDF graph
* @param rootNode root node of the graph. If not given then blank node is
* created.
- * @return
+ * @return instance of {@link ModelHolder},
*/
- public Map.Entry<Value,Model> asModel(IRI namespace, final Object t, Value rootNode) {
+ public ModelHolder asModel(IRI namespace, final Object t, Value rootNode) {
if (t == null) {
return null;
}
@@ -88,9 +110,9 @@ public class ElementsProcessor {
} else if (t instanceof Map) {
return processMap(namespace, (Map) t, rootNode);
} else if (t instanceof String) {
- return asMapEntry(RDFUtils.makeIRI(t.toString()), modelFactory.createEmptyModel());
+ return asModelHolder(RDFUtils.makeIRI(t.toString()), modelFactory.createEmptyModel());
} else {
- return asMapEntry(Literals.createLiteral(vf, t), modelFactory.createEmptyModel());
+ return asModelHolder(Literals.createLiteral(vf, t), modelFactory.createEmptyModel());
}
}
@@ -102,9 +124,9 @@ public class ElementsProcessor {
* @param ns
* @param object
* @param parentNode
- * @return
+ * @return instance of {@link ModelHolder}.
*/
- protected Map.Entry<Value, Model> processMap(IRI ns, Map<String, Object> object, Value parentNode) {
+ protected ModelHolder processMap(IRI ns, Map<String, Object> object, Value parentNode) {
// check if map is empty
if (object.isEmpty()) {
return null;
@@ -135,25 +157,25 @@ public class ElementsProcessor {
model.add(vf.createStatement(predicate, RDF.TYPE, RDF.PREDICATE));
model.add(vf.createStatement(predicate, RDFS.LABEL, RDFUtils.literal(k)));
Value subGraphRoot = RDFUtils.makeIRI();
- Map.Entry<Value, Model> valInst = asModel(ns, object.get(k), subGraphRoot);
+ ModelHolder valInst = asModel(ns, object.get(k), subGraphRoot);
// if asModel returns null than
if (valInst != null) {
/*
Subgraph root node is added always. If subgraph is null that root node is Literal.
Otherwise submodel in added to the current model.
*/
- model.add(vf.createStatement((Resource) nodeURI, (IRI) predicate, valInst.getKey()));
- if (valInst.getValue() != null) {
- model.addAll(valInst.getValue());
+ model.add(vf.createStatement((Resource) nodeURI, (IRI) predicate, valInst.root));
+ if (valInst.model != null) {
+ model.addAll(valInst.model);
}
}
});
- return asMapEntry(nodeURI, model);
+ return asModelHolder(nodeURI, model);
}
@SuppressWarnings("UnusedAssignment")
- protected Map.Entry<Value, Model> processList(IRI ns, List<Object> object) {
+ protected ModelHolder processList(IRI ns, List<Object> object) {
if (object.isEmpty() || object.stream().noneMatch((i) -> {
return i != null;
@@ -167,14 +189,14 @@ public class ElementsProcessor {
Resource prevNode = null;
Model finalModel = modelFactory.createEmptyModel();
for (int i=0; i < objectSize; i++) {
- Map.Entry<Value, Model> node = asModel(ns, object.get(i), RDFUtils.bnode());
+ ModelHolder node = asModel(ns, object.get(i), RDFUtils.bnode());
BNode currentNode = RDFUtils.bnode();
if (i == 0) {
listRoot = currentNode;
}
- finalModel.add(currentNode, RDF.FIRST, node.getKey(), (Resource[]) null);
+ finalModel.add(currentNode, RDF.FIRST, node.root, (Resource[]) null);
if (prevNode != null) {
finalModel.add(prevNode, RDF.REST, currentNode, (Resource[]) null);
@@ -184,15 +206,15 @@ public class ElementsProcessor {
finalModel.add(currentNode, RDF.REST, RDF.NIL, (Resource[]) null);
}
- if(node.getValue() != null) {
- finalModel.addAll(node.getValue());
+ if(node.model != null) {
+ finalModel.addAll(node.model);
}
prevNode = currentNode;
}
finalModel.add((Resource) listRoot, RDF.TYPE, RDF.LIST, (Resource[]) null);
- return asMapEntry(listRoot, finalModel);
+ return asModelHolder(listRoot, finalModel);
}
// hide constructor
http://git-wip-us.apache.org/repos/asf/any23/blob/aefcce70/core/src/main/java/org/apache/any23/extractor/yaml/YAMLExtractor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/any23/extractor/yaml/YAMLExtractor.java b/core/src/main/java/org/apache/any23/extractor/yaml/YAMLExtractor.java
index 00df8a4..1bbf698 100644
--- a/core/src/main/java/org/apache/any23/extractor/yaml/YAMLExtractor.java
+++ b/core/src/main/java/org/apache/any23/extractor/yaml/YAMLExtractor.java
@@ -18,7 +18,6 @@ package org.apache.any23.extractor.yaml;
import java.io.IOException;
import java.io.InputStream;
-import java.util.Map;
import org.apache.any23.extractor.ExtractionContext;
import org.apache.any23.extractor.ExtractionException;
import org.apache.any23.extractor.ExtractionParameters;
@@ -29,8 +28,6 @@ import org.apache.any23.rdf.RDFUtils;
import org.apache.any23.vocab.YAML;
import org.eclipse.rdf4j.model.Resource;
import org.eclipse.rdf4j.model.IRI;
-import org.eclipse.rdf4j.model.Model;
-import org.eclipse.rdf4j.model.Value;
import org.eclipse.rdf4j.model.vocabulary.RDF;
import org.eclipse.rdf4j.model.vocabulary.RDFS;
import org.slf4j.Logger;
@@ -77,19 +74,19 @@ public class YAMLExtractor implements Extractor.ContentExtractor {
Resource pageNode = RDFUtils.makeIRI("document", documentIRI, true);
out.writeTriple(documentRoot, vocab.contains, pageNode);
out.writeTriple(pageNode, RDF.TYPE, vocab.document);
- Map.Entry<Value, Model> rootNode = ep.asModel(documentIRI, p, pageNode);
+ ElementsProcessor.ModelHolder rootNode = ep.asModel(documentIRI, p, pageNode);
if (rootNode == null) {
continue;
}
- if (!rootNode.getKey().equals(pageNode)) {
- out.writeTriple(pageNode, vocab.contains, rootNode.getKey());
+ if (!rootNode.getRoot().equals(pageNode)) {
+ out.writeTriple(pageNode, vocab.contains, rootNode.getRoot());
}
- log.debug("Subgraph root node: {}", rootNode.getKey().stringValue());
+ log.debug("Subgraph root node: {}", rootNode.getRoot().stringValue());
- rootNode.getValue().forEach((s) ->{
+ rootNode.getModel().forEach((s) ->{
out.writeTriple(s.getSubject(), s.getPredicate(), s.getObject());
});
http://git-wip-us.apache.org/repos/asf/any23/blob/aefcce70/core/src/main/java/org/apache/any23/rdf/RDFUtils.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/any23/rdf/RDFUtils.java b/core/src/main/java/org/apache/any23/rdf/RDFUtils.java
index 2d6b697..b8f143b 100644
--- a/core/src/main/java/org/apache/any23/rdf/RDFUtils.java
+++ b/core/src/main/java/org/apache/any23/rdf/RDFUtils.java
@@ -577,7 +577,7 @@ public class RDFUtils {
/**
* {@link #makeIRI(java.lang.String, org.eclipse.rdf4j.model.IRI, boolean) }.
* @param docUri
- * @return
+ * @return instance of {@link Resource}.
*/
public static Resource makeIRI(IRI docUri) {
return makeIRI("node", docUri);
@@ -587,7 +587,7 @@ public class RDFUtils {
* {@link #makeIRI(java.lang.String, org.eclipse.rdf4j.model.IRI, boolean) }.
* @param type
* @param docIRI
- * @return
+ * @return instance of {@link Resource}.
*/
public static Resource makeIRI(String type, IRI docIRI) {
return makeIRI(type, docIRI, false);
@@ -596,11 +596,12 @@ public class RDFUtils {
/**
* Creates implementation of {@link Resource} from given arguments: <i>type</i> and <i>docIRI</i>.
*
+ * <b>NB:</b> The Java Naming Conventions is described by <a href='http://www.geeksforgeeks.org/java-naming-conventions/'>GeeksForGeeks</a>.
+ *
* @param type This argument is converted following Java naming conventions with {@link StringUtils#implementJavaNaming(java.lang.String) }.
* @param docIRI It is a namespace. If it ends with '/' character than stays unchanged otherwise the hash character '#' is added to the end.
* @param addId If argument is <b>TRUE</b> than the node identifier is added to the end formated <tt>'_{int}'</tt>.
- * @return {@link Resource} implementation
- * @see <a href="http://www.geeksforgeeks.org/java-naming-conventions/">Java Naming Conventions [from GeeksForGeeks]</a>.
+ * @return instance of {@link Resource}.
*/
public static Resource makeIRI(String type, IRI docIRI, boolean addId) {
@@ -629,11 +630,11 @@ public class RDFUtils {
/**
* Convert string to either IRI or Literal.
*
- * If string value expresses valid IRI than IRI is created. Otherwise method
- * creates simple literal xsd:string.
+ * If string value expresses valid IRI than {@link IRI} is created. Otherwise method
+ * creates simple {@link Literal} xsd:string.
*
* @param inString
- * @return
+ * @return either {@link IRI} or {@link Literal}.
*/
public static Value makeIRI(String inString) {
if (RDFUtils.isAbsoluteIRI(inString)) {
http://git-wip-us.apache.org/repos/asf/any23/blob/aefcce70/core/src/test/java/org/apache/any23/extractor/yaml/ElementsProcessorTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/any23/extractor/yaml/ElementsProcessorTest.java b/core/src/test/java/org/apache/any23/extractor/yaml/ElementsProcessorTest.java
index 5533b4b..d670916 100644
--- a/core/src/test/java/org/apache/any23/extractor/yaml/ElementsProcessorTest.java
+++ b/core/src/test/java/org/apache/any23/extractor/yaml/ElementsProcessorTest.java
@@ -23,6 +23,7 @@ import java.util.List;
import java.util.Map;
import org.eclipse.rdf4j.model.Literal;
import org.eclipse.rdf4j.model.Model;
+import org.eclipse.rdf4j.model.Resource;
import org.eclipse.rdf4j.model.Value;
import org.eclipse.rdf4j.model.vocabulary.RDF;
import org.eclipse.rdf4j.rio.RDFFormat;
@@ -51,13 +52,13 @@ public class ElementsProcessorTest {
}
};
- Map.Entry<Value, Model> toTest = ep.processMap(ep.vf.createIRI("http://example.org/"),
+ ElementsProcessor.ModelHolder toTest = ep.processMap(ep.vf.createIRI("http://example.org/"),
simpleMap,
ep.vf.createIRI("http://example.org/node1"));
- Assert.assertEquals("http://example.org/node1", toTest.getKey().stringValue()); // if parent node is not blank than returns it as key
- Assert.assertTrue(toTest.getValue().size() > 0);
- log.debug("Model: \n{}\n", dumpModel(toTest.getValue(), RDFFormat.TURTLE));
+ Assert.assertEquals("http://example.org/node1", toTest.getRoot().stringValue()); // if parent node is not blank than returns it as key
+ Assert.assertTrue(toTest.getModel().size() > 0);
+ log.debug("Model: \n{}\n", dumpModel(toTest.getModel(), RDFFormat.TURTLE));
}
@Test
@@ -71,13 +72,13 @@ public class ElementsProcessorTest {
}
};
- Map.Entry<Value, Model> toTest = ep.processList(ep.vf.createIRI("http://example.org/data"), simpleList);
+ ElementsProcessor.ModelHolder toTest = ep.processList(ep.vf.createIRI("http://example.org/data"), simpleList);
Assert.assertNotNull(toTest);
- Assert.assertTrue(toTest.getValue().contains(null, RDF.FIRST, ep.vf.createLiteral("Ala"), null));
- Assert.assertTrue(toTest.getValue().contains(null, RDF.FIRST, ep.vf.createLiteral(6), null));
- Assert.assertTrue(toTest.getValue().contains(null, RDF.FIRST, ep.vf.createLiteral("ma"), null));
- Assert.assertTrue(toTest.getValue().contains(null, RDF.FIRST, ep.vf.createLiteral("k".getBytes()[0]), null));
- log.debug("Model: \n{}\n", dumpModel(toTest.getValue(), RDFFormat.TURTLE));
+ Assert.assertTrue(toTest.getModel().contains(null, RDF.FIRST, ep.vf.createLiteral("Ala"), (Resource[]) null));
+ Assert.assertTrue(toTest.getModel().contains(null, RDF.FIRST, ep.vf.createLiteral(6), (Resource[]) null));
+ Assert.assertTrue(toTest.getModel().contains(null, RDF.FIRST, ep.vf.createLiteral("ma"), (Resource[]) null));
+ Assert.assertTrue(toTest.getModel().contains(null, RDF.FIRST, ep.vf.createLiteral("k".getBytes()[0]), (Resource[]) null));
+ log.debug("Model: \n{}\n", dumpModel(toTest.getModel(), RDFFormat.TURTLE));
}
@Test
@@ -92,9 +93,9 @@ public class ElementsProcessorTest {
};
simpleList.forEach((i) -> {
- Map.Entry<Value, Model> out = ep.asModel(ep.vf.createIRI("urn:test/"), i, null);
- Assert.assertTrue(out.getKey() instanceof Literal);
- Assert.assertTrue(out.getValue().isEmpty());
+ ElementsProcessor.ModelHolder out = ep.asModel(ep.vf.createIRI("urn:test/"), i, null);
+ Assert.assertTrue(out.getRoot() instanceof Literal);
+ Assert.assertTrue(out.getModel().isEmpty());
});
}
[2/2] any23 git commit: Merge remote-tracking branch
'origin/ANY23-312-b'
Posted by jg...@apache.org.
Merge remote-tracking branch 'origin/ANY23-312-b'
Project: http://git-wip-us.apache.org/repos/asf/any23/repo
Commit: http://git-wip-us.apache.org/repos/asf/any23/commit/f44be91f
Tree: http://git-wip-us.apache.org/repos/asf/any23/tree/f44be91f
Diff: http://git-wip-us.apache.org/repos/asf/any23/diff/f44be91f
Branch: refs/heads/master
Commit: f44be91f930bf035d3356720a67e0f92397e9f5b
Parents: bcd87e5 aefcce7
Author: Jacek Grzebyta <gr...@gmail.com>
Authored: Thu Dec 14 12:16:13 2017 +0000
Committer: Jacek Grzebyta <gr...@gmail.com>
Committed: Thu Dec 14 12:16:13 2017 +0000
----------------------------------------------------------------------
.../any23/extractor/yaml/ElementsProcessor.java | 66 +++++++++++++-------
.../any23/extractor/yaml/YAMLExtractor.java | 13 ++--
.../java/org/apache/any23/rdf/RDFUtils.java | 15 ++---
.../extractor/yaml/ElementsProcessorTest.java | 27 ++++----
4 files changed, 71 insertions(+), 50 deletions(-)
----------------------------------------------------------------------