Update ElementProcessor - RDF-izer - make processor singleton - update unit tests Signed-off-by:Jacek Grzebyta <[email protected]>
Project: http://git-wip-us.apache.org/repos/asf/any23/repo Commit: http://git-wip-us.apache.org/repos/asf/any23/commit/f1b26dfd Tree: http://git-wip-us.apache.org/repos/asf/any23/tree/f1b26dfd Diff: http://git-wip-us.apache.org/repos/asf/any23/diff/f1b26dfd Branch: refs/heads/master Commit: f1b26dfdc634c7e70e762319b60c968935a5be93 Parents: 9f0cb63 Author: Jacek Grzebyta <[email protected]> Authored: Mon Oct 23 12:36:04 2017 +0100 Committer: Jacek Grzebyta <[email protected]> Committed: Mon Oct 23 12:36:04 2017 +0100 ---------------------------------------------------------------------- .../apache/any23/extractor/yaml/ElementsProcessor.java | 12 ++++++++++++ core/src/main/java/org/apache/any23/rdf/RDFUtils.java | 9 +++++++++ .../any23/extractor/yaml/ElementsProcessorTest.java | 6 ++---- 3 files changed, 23 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/any23/blob/f1b26dfd/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 58bc003..8fd0875 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 @@ -56,6 +56,8 @@ public class ElementsProcessor { private final YAML vocab = YAML.getInstance(); protected ValueFactory vf = SimpleValueFactory.getInstance(); + private static final ElementsProcessor _ep = new ElementsProcessor(); + private Map.Entry<Value, Model> asMapEntry(Value v, Model m) { return new AbstractMap.SimpleEntry(v, m); } @@ -84,6 +86,8 @@ public class ElementsProcessor { return processList(namespace, (List) t); } else if (t instanceof Map) { return processMap(namespace, (Map) t, rootNode); + } else if (t instanceof String) { + return asMapEntry(RDFUtils.makeIRI(t.toString()), null); } else { return asMapEntry(Literals.createLiteral(vf, t), null); } @@ -166,4 +170,12 @@ public class ElementsProcessor { outcome.getValue().add(vf.createStatement((Resource) outcome.getKey(), RDF.TYPE, RDF.LIST)); return outcome; } + + // hide constructor + private ElementsProcessor() { + } + + public static final ElementsProcessor getInstance() { + return _ep; + } } http://git-wip-us.apache.org/repos/asf/any23/blob/f1b26dfd/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 c1fbd54..1e6cbd4 100644 --- a/core/src/main/java/org/apache/any23/rdf/RDFUtils.java +++ b/core/src/main/java/org/apache/any23/rdf/RDFUtils.java @@ -626,6 +626,15 @@ public class RDFUtils { return node; } + /** + * Convert string to either IRI or Literal. + * + * If string value expresses valid IRI than IRI is created. Otherwise method + * creates simple literal xsd:string. + * + * @param inString + * @return + */ public static Value makeIRI(String inString) { if (RDFUtils.isAbsoluteIRI(inString)) { return RDFUtils.iri(inString); http://git-wip-us.apache.org/repos/asf/any23/blob/f1b26dfd/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 d800d9e..26899bb 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 @@ -37,7 +37,8 @@ import org.slf4j.LoggerFactory; */ public class ElementsProcessorTest { - private Logger log = LoggerFactory.getLogger(getClass()); + private final Logger log = LoggerFactory.getLogger(getClass()); + private static final ElementsProcessor ep = ElementsProcessor.getInstance(); @Test public void processMap() throws Exception { @@ -49,7 +50,6 @@ public class ElementsProcessorTest { } }; - ElementsProcessor ep = new ElementsProcessor(); Map.Entry<Value, Model> toTest = ep.processMap(ep.vf.createIRI("http://example.org/"), simpleMap, ep.vf.createIRI("http://example.org/node1")); @@ -70,7 +70,6 @@ public class ElementsProcessorTest { } }; - ElementsProcessor ep = new ElementsProcessor(); Map.Entry<Value, Model> 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)); @@ -90,7 +89,6 @@ public class ElementsProcessorTest { add("k".getBytes()[0]); } }; - ElementsProcessor ep = new ElementsProcessor(); simpleList.forEach((i) -> { Map.Entry<Value, Model> out = ep.asModel(ep.vf.createIRI("urn:test/"), i, null);
