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(-)
----------------------------------------------------------------------