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