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/07 12:28:11 UTC

[08/17] any23 git commit: Ref ANY23-312

Ref ANY23-312

- ElementProcessor: fix issue in map validation
                    returns always empty model if parsed to literal
- YamlExtractor: fix issue with yaml containing only literals
- update unit tests


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/246af9b3
Tree: http://git-wip-us.apache.org/repos/asf/any23/tree/246af9b3
Diff: http://git-wip-us.apache.org/repos/asf/any23/diff/246af9b3

Branch: refs/heads/master
Commit: 246af9b3d038046579add68b23598f9d9f8be14b
Parents: 657912b
Author: Jacek Grzebyta <gr...@gmail.com>
Authored: Mon Oct 23 14:55:55 2017 +0100
Committer: Jacek Grzebyta <gr...@gmail.com>
Committed: Mon Oct 23 14:55:55 2017 +0100

----------------------------------------------------------------------
 .../any23/extractor/yaml/ElementsProcessor.java | 21 ++++++++++++++------
 .../any23/extractor/yaml/YAMLExtractor.java     |  8 ++++----
 .../any23/extractor/yaml/YAMLExtractorTest.java |  4 ++--
 .../apache/any23/extractor/yaml/simple-312.yml  |  2 +-
 4 files changed, 22 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/any23/blob/246af9b3/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 8fd0875..7d15576 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
@@ -15,8 +15,10 @@
  */
 package org.apache.any23.extractor.yaml;
 
+import com.google.common.collect.Sets;
 import java.util.AbstractMap;
 import java.util.Collections;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Stream;
@@ -69,7 +71,7 @@ public class ElementsProcessor {
      *
      * If requested object is simple object (i.e. is neither List or Map) than
      * method returns map entry of relevant instance of {@link Literal} as key
-     * and null as value.
+     * and empty model as value.
      *
      * @param namespace Namespace for predicates
      * @param t Object (or data structure) converting to RDF graph
@@ -87,22 +89,29 @@ 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()), null);
+            return asMapEntry(RDFUtils.makeIRI(t.toString()), modelFactory.createEmptyModel());
         } else {
-            return asMapEntry(Literals.createLiteral(vf, t), null);
+            return asMapEntry(Literals.createLiteral(vf, t), modelFactory.createEmptyModel());
         }
     }
 
     protected Map.Entry<Value, Model> processMap(IRI ns, Map<String, Object> object, Value rootNode) {
-        // check if map is empty of contains only null values
-        if (object.isEmpty() || (object.values().size() == 1 && object.values().contains(null))) {
+        // check if map is empty
+        if (object.isEmpty()) {
             return null;
         }
+        HashSet<Object> vals = Sets.newHashSet(object.values());
+        boolean isEmpty = false;
+        if (vals.size() == 1 && vals.contains(null)) {
+            isEmpty = true;
+        }
         assert ns != null : "Namespace value is null";
 
         Model model = modelFactory.createEmptyModel();
         Value nodeURI = rootNode == null ? RDFUtils.makeIRI() : rootNode;
-        model.add(vf.createStatement((Resource) nodeURI, RDF.TYPE, vocab.mapping));
+        if (!isEmpty) {
+            model.add(vf.createStatement((Resource) nodeURI, RDF.TYPE, vocab.mapping));
+        }
         object.keySet().forEach((k) -> {
             /* False prevents adding _<int> to the predicate.
             Thus the predicate pattern is:

http://git-wip-us.apache.org/repos/asf/any23/blob/246af9b3/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 7d8221f..7e03733 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
@@ -17,11 +17,7 @@ package org.apache.any23.extractor.yaml;
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
 import java.util.Map;
-import java.util.Optional;
 import org.apache.any23.extractor.ExtractionContext;
 import org.apache.any23.extractor.ExtractionException;
 import org.apache.any23.extractor.ExtractionParameters;
@@ -86,6 +82,10 @@ public class YAMLExtractor implements Extractor.ContentExtractor {
                 continue;
             }
             
+            if (!rootNode.getKey().equals(pageNode)) {
+                out.writeTriple(pageNode, vocab.contains, rootNode.getKey());
+            }
+            
             log.debug("Subgraph root node: {}", rootNode.getKey().stringValue());
             
             rootNode.getValue().forEach((s) ->{

http://git-wip-us.apache.org/repos/asf/any23/blob/246af9b3/core/src/test/java/org/apache/any23/extractor/yaml/YAMLExtractorTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/any23/extractor/yaml/YAMLExtractorTest.java b/core/src/test/java/org/apache/any23/extractor/yaml/YAMLExtractorTest.java
index 9f6d01e..2dc884c 100644
--- a/core/src/test/java/org/apache/any23/extractor/yaml/YAMLExtractorTest.java
+++ b/core/src/test/java/org/apache/any23/extractor/yaml/YAMLExtractorTest.java
@@ -61,7 +61,7 @@ public class YAMLExtractorTest extends AbstractExtractorTestCase {
     public void simpleFileLoading()
             throws Exception {
         assertExtract("/org/apache/any23/extractor/yaml/simple-load.yml");
-        log.debug(dumpModelToTurtle());
+        log.debug("\n{}",dumpModelToTurtle());
         assertModelNotEmpty();
 
     }
@@ -111,7 +111,7 @@ public class YAMLExtractorTest extends AbstractExtractorTestCase {
     @Test
     public void treeTest() throws Exception {
         assertExtract("/org/apache/any23/extractor/yaml/tree.yml");
-        log.debug(dumpModelToTurtle());
+        log.debug("\n{}",dumpModelToTurtle());
         assertModelNotEmpty();
         // validate part of the tree structure
         assertContainsModel(new Statement[]{

http://git-wip-us.apache.org/repos/asf/any23/blob/246af9b3/test-resources/src/test/resources/org/apache/any23/extractor/yaml/simple-312.yml
----------------------------------------------------------------------
diff --git a/test-resources/src/test/resources/org/apache/any23/extractor/yaml/simple-312.yml b/test-resources/src/test/resources/org/apache/any23/extractor/yaml/simple-312.yml
index ecf7768..5502558 100644
--- a/test-resources/src/test/resources/org/apache/any23/extractor/yaml/simple-312.yml
+++ b/test-resources/src/test/resources/org/apache/any23/extractor/yaml/simple-312.yml
@@ -1,4 +1,4 @@
 %YAML 1.2
 ---
 Some test
-is fast
\ No newline at end of file
+is fast