You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by st...@apache.org on 2017/02/16 11:56:16 UTC

[01/12] commons-rdf git commit: COMMONSRDF-47 RDFSyntax as an interface

Repository: commons-rdf
Updated Branches:
  refs/heads/master f6ea05832 -> ef7f4442a


COMMONSRDF-47 RDFSyntax as an interface

OfficialRDFSyntax is the enum - which implements the interface

basically .mediaType -> .mediaType() etc


Project: http://git-wip-us.apache.org/repos/asf/commons-rdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-rdf/commit/ee725a5a
Tree: http://git-wip-us.apache.org/repos/asf/commons-rdf/tree/ee725a5a
Diff: http://git-wip-us.apache.org/repos/asf/commons-rdf/diff/ee725a5a

Branch: refs/heads/master
Commit: ee725a5aaf5d94c9ab5ff7f355bb5d0cb370bfa7
Parents: 34c9b42
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Oct 28 16:34:49 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Oct 28 16:35:52 2016 +0100

----------------------------------------------------------------------
 .../org/apache/commons/rdf/api/RDFSyntax.java   | 212 +++++++++++++------
 .../apache/commons/rdf/api/AbstractRDFTest.java |   1 -
 .../apache/commons/rdf/api/RDFSyntaxTest.java   |  32 +--
 .../org/apache/commons/rdf/jena/JenaRDF.java    |   2 +-
 .../simple/experimental/AbstractRDFParser.java  |   2 +-
 5 files changed, 165 insertions(+), 84 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/ee725a5a/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java b/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java
index 2637a96..e267157 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java
@@ -22,6 +22,124 @@ import java.util.Locale;
 import java.util.Optional;
 
 /**
+ * An RDF syntax, e.g. as used for parsing and writing RDF.
+ * <p>
+ * An RDF syntax is uniquely identified by its {@link #mediaType()}, and has a
+ * suggested {@link #fileExtension()}.
+ * <p>
+ * Some of the RDF syntaxes may {@link #supportsDataset()}, meaning they can
+ * represent {@link Quad}s.
+ * <p>
+ * An enumeration of the official RDF 1.1 syntaxes is available in 
+ * {@link OfficialRDFSyntax} - for convenience they are also accessible
+ * as constants here, e.g. <code>RDFSyntax.JSONLD</code>.
+ * 
+ */
+public interface RDFSyntax {
+ 
+    public static OfficialRDFSyntax JSONLD = OfficialRDFSyntax.JSONLD;
+    public static OfficialRDFSyntax TURTLE = OfficialRDFSyntax.TURTLE;
+    public static OfficialRDFSyntax NQUADS = OfficialRDFSyntax.NQUADS;
+    public static OfficialRDFSyntax NTRIPLES = OfficialRDFSyntax.NTRIPLES;
+    public static OfficialRDFSyntax RDFA_HTML = OfficialRDFSyntax.RDFA_HTML;
+    public static OfficialRDFSyntax RDFA_XHTML = OfficialRDFSyntax.RDFA_XHTML;
+    public static OfficialRDFSyntax RDFXML = OfficialRDFSyntax.RDFXML;
+    public static OfficialRDFSyntax TRIG = OfficialRDFSyntax.TRIG;
+    
+    /**
+     * A short name of the RDF Syntax.
+     * <p>
+     * The name typically corresponds to the {@link Enum#name()} of for
+     * {@link OfficialRDFSyntax}, e.g. <code>JSONLD</code>.
+     * 
+     * @return Short name for RDF syntax
+     */
+    public String name();
+
+    /**
+     * The title of the RDF Syntax.
+     * <p>
+     * This is generally the title of the corresponding standard, 
+     * e.g. <em>RDF 1.1 Turtle</em>.
+     * 
+     * @return Title of RDF Syntax
+     */
+    public String title();    
+    
+    /**
+     * The <a href="https://tools.ietf.org/html/rfc2046">IANA media type</a> for
+     * the RDF syntax.
+     * <p>
+     * The media type can be used as part of <code>Content-Type</code> and
+     * <code>Accept</code> for <em>content negotiation</em> in the
+     * <a href="https://tools.ietf.org/html/rfc7231#section-3.1.1.1">HTTP
+     * protocol</a>.
+     */
+    public String mediaType();
+
+    /**
+     * The <a href="https://tools.ietf.org/html/rfc2046">IANA-registered</a>
+     * file extension.
+     * <p>
+     * The file extension includes the leading period, e.g. <code>.jsonld</code>
+     */
+    public String fileExtension();
+
+    /**
+     * Indicate if this RDF syntax supports
+     * <a href="https://www.w3.org/TR/rdf11-concepts/#section-dataset">RDF
+     * Datasets</a>.
+     */
+    public boolean supportsDataset();
+
+
+    /**
+     * Return the RDFSyntax with the specified media type.
+     * <p>
+     * The <code>mediaType</code> is compared in lower case, therefore it might
+     * not be equal to the {@link RDFSyntax#mediaType} of the returned
+     * RDFSyntax.
+     * <p>
+     * For convenience matching of media types used in a
+     * <code>Content-Type</code> header, if the <code>mediaType</code> contains
+     * the characters <code>;</code>, <code>,</code> or white space, only the
+     * part of the string to the left of those characters are considered.
+     * 
+     * @param mediaType
+     *            The media type to match
+     * @return If {@link Optional#isPresent()}, the {@link RDFSyntax} which has
+     *         a matching {@link RDFSyntax#mediaType}, otherwise
+     *         {@link Optional#empty()} indicating that no matching syntax was
+     *         found.
+     */
+    public static Optional<RDFSyntax> byMediaType(String mediaType) {
+        final String type = mediaType.toLowerCase(Locale.ENGLISH).split("\\s*[;,]", 2)[0];
+        return Arrays.stream(OfficialRDFSyntax.values()).filter(t -> t.mediaType().equals(type))
+                .map(RDFSyntax.class::cast).findAny();
+    }
+
+    /**
+     * Return the RDFSyntax with the specified file extension.
+     * <p>
+     * The <code>fileExtension</code> is compared in lower case, therefore it
+     * might not be equal to the {@link RDFSyntax#fileExtension} of the returned
+     * RDFSyntax.
+     * 
+     * @param fileExtension
+     *            The fileExtension to match, starting with <code>.</code>
+     * @return If {@link Optional#isPresent()}, the {@link RDFSyntax} which has
+     *         a matching {@link RDFSyntax#fileExtension}, otherwise
+     *         {@link Optional#empty()} indicating that no matching file
+     *         extension was found.
+     */
+    public static Optional<RDFSyntax> byFileExtension(String fileExtension) {
+        final String ext = fileExtension.toLowerCase(Locale.ENGLISH);        
+        return Arrays.stream(OfficialRDFSyntax.values()).filter(t -> t.fileExtension().equals(ext))
+                .map(RDFSyntax.class::cast).findAny();
+    }    
+    
+
+/**
  * Enumeration of the RDF 1.1 serialization syntaxes.
  * <p>
  * This enumeration lists the W3C standardized RDF 1.1 syntaxes like
@@ -34,7 +152,7 @@ import java.util.Optional;
  *      1.1 Primer</a>
  * @see org.apache.commons.rdf.experimental.RDFParser
  */
-public enum RDFSyntax {
+  public enum OfficialRDFSyntax implements RDFSyntax {
 
     /**
      * JSON-LD 1.0
@@ -103,92 +221,56 @@ public enum RDFSyntax {
     TRIG("RDF 1.1 TriG", "application/trig", ".trig", true);
 
     /**
-     * The <a href="https://tools.ietf.org/html/rfc2046">IANA media type</a> for
-     * the RDF syntax.
-     * <p>
-     * The media type can be used as part of <code>Content-Type</code> and
-     * <code>Accept</code> for <em>content negotiation</em> in the
-     * <a href="https://tools.ietf.org/html/rfc7231#section-3.1.1.1">HTTP
-     * protocol</a>.
+     * Deprecated, use {@link #mediaType()}. 
      */
+    @Deprecated
     public final String mediaType;
 
     /**
-     * The <a href="https://tools.ietf.org/html/rfc2046">IANA-registered</a>
-     * file extension.
-     * <p>
-     * The file extension includes the leading period, e.g. <code>.jsonld</code>
+     * Deprecated, use {@link #fileExtension()}.
      */
+    @Deprecated
     public final String fileExtension;
 
     /**
-     * Indicate if this RDF syntax supports
-     * <a href="https://www.w3.org/TR/rdf11-concepts/#section-dataset">RDF
-     * Datasets</a>.
+     * Deprecated, use {@link #supportsDataset()}.
      */
+    @Deprecated
     public final boolean supportsDataset;
 
-    private final String name;
+    private final String title;
 
-    /**
-     * A human-readable name for the RDF syntax.
-     * <p>
-     * The name is equivalent to the the title of the corresponding W3C
-     * Specification.
-     */
     @Override
     public String toString() {
-        return name;
+        return title();
     }
 
-    private RDFSyntax(String name, String mediaType, String fileExtension, boolean supportsDataset) {
-        this.name = name;
+    private OfficialRDFSyntax(String title, String mediaType, String fileExtension, boolean supportsDataset) {
+        this.title = title;
         this.mediaType = mediaType;
         this.fileExtension = fileExtension;
         this.supportsDataset = supportsDataset;
     }
 
-    /**
-     * Return the RDFSyntax with the specified media type.
-     * <p>
-     * The <code>mediaType</code> is compared in lower case, therefore it might
-     * not be equal to the {@link RDFSyntax#mediaType} of the returned
-     * RDFSyntax.
-     * <p>
-     * For convenience matching of media types used in a
-     * <code>Content-Type</code> header, if the <code>mediaType</code> contains
-     * the characters <code>;</code>, <code>,</code> or white space, only the
-     * part of the string to the left of those characters are considered.
-     * 
-     * @param mediaType
-     *            The media type to match
-     * @return If {@link Optional#isPresent()}, the {@link RDFSyntax} which has
-     *         a matching {@link RDFSyntax#mediaType}, otherwise
-     *         {@link Optional#empty()} indicating that no matching syntax was
-     *         found.
-     */
-    public static Optional<RDFSyntax> byMediaType(String mediaType) {
-        final String type = mediaType.toLowerCase(Locale.ENGLISH).split("\\s*[;,]", 2)[0];
-        return Arrays.stream(RDFSyntax.values()).filter(t -> t.mediaType.equals(type)).findAny();
+    @Override
+    public String mediaType() {
+        return mediaType;
     }
 
-    /**
-     * Return the RDFSyntax with the specified file extension.
-     * <p>
-     * The <code>fileExtension</code> is compared in lower case, therefore it
-     * might not be equal to the {@link RDFSyntax#fileExtension} of the returned
-     * RDFSyntax.
-     * 
-     * @param fileExtension
-     *            The fileExtension to match, starting with <code>.</code>
-     * @return If {@link Optional#isPresent()}, the {@link RDFSyntax} which has
-     *         a matching {@link RDFSyntax#fileExtension}, otherwise
-     *         {@link Optional#empty()} indicating that no matching file
-     *         extension was found.
-     */
-    public static Optional<RDFSyntax> byFileExtension(String fileExtension) {
-        final String ext = fileExtension.toLowerCase(Locale.ENGLISH);
-        return Arrays.stream(RDFSyntax.values()).filter(t -> t.fileExtension.equals(ext)).findAny();
+    @Override
+    public String fileExtension() {
+        return fileExtension;
+    }
+
+    @Override
+    public boolean supportsDataset() {
+        return supportsDataset;
+    }
+    
+    @Override
+    public String title() {
+        return title;
     }
 
-}
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/ee725a5a/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTest.java
----------------------------------------------------------------------
diff --git a/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTest.java b/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTest.java
index e58ede6..bd3865a 100644
--- a/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTest.java
+++ b/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTest.java
@@ -24,7 +24,6 @@ import static org.junit.Assert.assertNotSame;
 
 import java.util.Objects;
 
-import org.junit.Assume;
 import org.junit.Before;
 import org.junit.Test;
 

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/ee725a5a/api/src/test/java/org/apache/commons/rdf/api/RDFSyntaxTest.java
----------------------------------------------------------------------
diff --git a/api/src/test/java/org/apache/commons/rdf/api/RDFSyntaxTest.java b/api/src/test/java/org/apache/commons/rdf/api/RDFSyntaxTest.java
index a1cb62e..335eb90 100644
--- a/api/src/test/java/org/apache/commons/rdf/api/RDFSyntaxTest.java
+++ b/api/src/test/java/org/apache/commons/rdf/api/RDFSyntaxTest.java
@@ -84,26 +84,26 @@ public class RDFSyntaxTest {
 
     @Test
     public void fileExtension() throws Exception {
-        assertEquals(".jsonld", RDFSyntax.JSONLD.fileExtension);
-        assertEquals(".nq", RDFSyntax.NQUADS.fileExtension);
-        assertEquals(".nt", RDFSyntax.NTRIPLES.fileExtension);
-        assertEquals(".html", RDFSyntax.RDFA_HTML.fileExtension);
-        assertEquals(".xhtml", RDFSyntax.RDFA_XHTML.fileExtension);
-        assertEquals(".rdf", RDFSyntax.RDFXML.fileExtension);
-        assertEquals(".trig", RDFSyntax.TRIG.fileExtension);
-        assertEquals(".ttl", RDFSyntax.TURTLE.fileExtension);
+        assertEquals(".jsonld", RDFSyntax.JSONLD.fileExtension());
+        assertEquals(".nq", RDFSyntax.NQUADS.fileExtension());
+        assertEquals(".nt", RDFSyntax.NTRIPLES.fileExtension());
+        assertEquals(".html", RDFSyntax.RDFA_HTML.fileExtension());
+        assertEquals(".xhtml", RDFSyntax.RDFA_XHTML.fileExtension());
+        assertEquals(".rdf", RDFSyntax.RDFXML.fileExtension());
+        assertEquals(".trig", RDFSyntax.TRIG.fileExtension());
+        assertEquals(".ttl", RDFSyntax.TURTLE.fileExtension());
     }
 
     @Test
     public void mediaType() throws Exception {
-        assertEquals("application/ld+json", RDFSyntax.JSONLD.mediaType);
-        assertEquals("application/n-quads", RDFSyntax.NQUADS.mediaType);
-        assertEquals("application/n-triples", RDFSyntax.NTRIPLES.mediaType);
-        assertEquals("text/html", RDFSyntax.RDFA_HTML.mediaType);
-        assertEquals("application/xhtml+xml", RDFSyntax.RDFA_XHTML.mediaType);
-        assertEquals("application/rdf+xml", RDFSyntax.RDFXML.mediaType);
-        assertEquals("application/trig", RDFSyntax.TRIG.mediaType);
-        assertEquals("text/turtle", RDFSyntax.TURTLE.mediaType);
+        assertEquals("application/ld+json", RDFSyntax.JSONLD.mediaType());
+        assertEquals("application/n-quads", RDFSyntax.NQUADS.mediaType());
+        assertEquals("application/n-triples", RDFSyntax.NTRIPLES.mediaType());
+        assertEquals("text/html", RDFSyntax.RDFA_HTML.mediaType());
+        assertEquals("application/xhtml+xml", RDFSyntax.RDFA_XHTML.mediaType());
+        assertEquals("application/rdf+xml", RDFSyntax.RDFXML.mediaType());
+        assertEquals("application/trig", RDFSyntax.TRIG.mediaType());
+        assertEquals("text/turtle", RDFSyntax.TURTLE.mediaType());
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/ee725a5a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDF.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDF.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDF.java
index b49656f..036e084 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDF.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDF.java
@@ -551,7 +551,7 @@ public final class JenaRDF implements RDF {
      * @return Matched {@link Lang}, otherwise {@link Optional#empty()}
      */
     public Optional<Lang> asJenaLang(RDFSyntax rdfSyntax) {
-        return Optional.ofNullable(RDFLanguages.contentTypeToLang(rdfSyntax.mediaType));
+        return Optional.ofNullable(RDFLanguages.contentTypeToLang(rdfSyntax.mediaType()));
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/ee725a5a/simple/src/main/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParser.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParser.java b/simple/src/main/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParser.java
index 584bff3..62fe79c 100644
--- a/simple/src/main/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParser.java
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParser.java
@@ -240,7 +240,7 @@ public abstract class AbstractRDFParser<T extends AbstractRDFParser<T>> implemen
     public T contentType(RDFSyntax rdfSyntax) throws IllegalArgumentException {
         AbstractRDFParser<T> c = clone();
         c.contentTypeSyntax = Optional.ofNullable(rdfSyntax);
-        c.contentType = c.contentTypeSyntax.map(syntax -> syntax.mediaType);
+        c.contentType = c.contentTypeSyntax.map(syntax -> syntax.mediaType());
         return c.asT();
     }
 


[09/12] commons-rdf git commit: COMMONSRDF-47: Add plural fileExtensions() mediaTypes()

Posted by st...@apache.org.
COMMONSRDF-47: Add plural fileExtensions() mediaTypes()

merged RDFa types for HTML and XHTML
byMediaType() and byFileExtension() now checks the set

Project: http://git-wip-us.apache.org/repos/asf/commons-rdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-rdf/commit/a574473c
Tree: http://git-wip-us.apache.org/repos/asf/commons-rdf/tree/a574473c
Diff: http://git-wip-us.apache.org/repos/asf/commons-rdf/diff/a574473c

Branch: refs/heads/master
Commit: a574473c04746c7d1e67ddf4a3a77de6dee32f5f
Parents: 701e47e
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Feb 10 16:53:58 2017 +0000
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Feb 10 16:53:58 2017 +0000

----------------------------------------------------------------------
 .../org/apache/commons/rdf/api/RDFSyntax.java   | 55 ++++++++++++++------
 .../apache/commons/rdf/api/W3CRDFSyntax.java    | 26 ++++++---
 .../apache/commons/rdf/api/RDFSyntaxTest.java   | 46 ++++++++++++----
 3 files changed, 92 insertions(+), 35 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/a574473c/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java b/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java
index 657fbc3..c82c0f5 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java
@@ -17,6 +17,7 @@
  */
 package org.apache.commons.rdf.api;
 
+import java.util.Collections;
 import java.util.Locale;
 import java.util.Optional;
 import java.util.Set;
@@ -72,20 +73,14 @@ public interface RDFSyntax {
     public static RDFSyntax NTRIPLES = W3CRDFSyntax.NTRIPLES;
 
     /**
-     * HTML+RDFa 1.1
+     * HTML+RDFa 1.1 and XHTML+RDFa 1.1 
      * 
      * @see <a href=
      *      "https://www.w3.org/TR/html-rdfa/">https://www.w3.org/TR/html-rdfa/</a>
-     */
-    public static RDFSyntax RDFA_HTML = W3CRDFSyntax.RDFA_HTML;
-
-    /**
-     * XHTML+RDFa 1.1
-     * 
      * @see <a href=
      *      "https://www.w3.org/TR/xhtml-rdfa/">https://www.w3.org/TR/xhtml-rdfa/</a>
      */
-    public static RDFSyntax RDFA_XHTML = W3CRDFSyntax.RDFA_XHTML;
+    public static RDFSyntax RDFA = W3CRDFSyntax.RDFA;
 
     /**
      * RDF 1.1 XML Syntax
@@ -134,6 +129,22 @@ public interface RDFSyntax {
     public String mediaType();
 
     /**
+     * Set of <a href="https://tools.ietf.org/html/rfc2046">IANA media types/a> that
+     * covers this RDF syntax, including any non-official media types. 
+     * <p>
+     * The media type can be used as part of <code>Content-Type</code> and
+     * <code>Accept</code> for <em>content negotiation</em> in the
+     * <a href="https://tools.ietf.org/html/rfc7231#section-3.1.1.1">HTTP
+     * protocol</a>.
+     * <p>
+     * The returned Set MUST include the value {@link #mediaType()}; this is the
+     * behaviour of the default implementation.
+     */
+    default public Set<String> mediaTypes() {
+        return Collections.singleton(mediaType());
+    }
+    
+    /**
      * The <a href="https://tools.ietf.org/html/rfc2046">IANA-registered</a>
      * file extension.
      * <p>
@@ -142,6 +153,18 @@ public interface RDFSyntax {
     public String fileExtension();
 
     /**
+     * Set of file extensions for this RDF syntax, including any non-official extensions.
+     * <p>
+     * The file extension includes the leading period, e.g. <code>.jsonld</code>
+     * <p>
+     * The returned Set MUST include the value from {@link #fileExtension()}; this is
+     * the behaviour of the default implementation.
+     */
+    default public Set<String> fileExtensions() {
+        return Collections.singleton(fileExtension());
+    }
+    
+    /**
      * Indicate if this RDF syntax supports
      * <a href="https://www.w3.org/TR/rdf11-concepts/#section-dataset">RDF
      * Datasets</a>.
@@ -211,9 +234,9 @@ public interface RDFSyntax {
     /**
      * Return the RDFSyntax with the specified media type.
      * <p>
-     * The <code>mediaType</code> is compared in lower case, therefore it might
-     * not be equal to the {@link RDFSyntax#mediaType} of the returned
-     * RDFSyntax.
+     * The <code>mediaType</code> is compared in lower case to all media types
+     * supported, therefore it might not be equal to the
+     * {@link RDFSyntax#mediaType} of the returned RDFSyntax.
      * <p>
      * If the media type specifies parameters, e.g.
      * <code>text/turtle; charset=ascii</code>, only the part of the string to
@@ -230,16 +253,16 @@ public interface RDFSyntax {
      */
     public static Optional<RDFSyntax> byMediaType(final String mediaType) {
         final String type = mediaType.toLowerCase(Locale.ROOT).split("\\s*;", 2)[0];
-        return w3cSyntaxes().stream().filter(t -> t.mediaType().equals(type))
+        return w3cSyntaxes().stream().filter(t -> t.mediaTypes().contains(type))
                 .findAny();
     }
 
     /**
      * Return the RDFSyntax with the specified file extension.
      * <p>
-     * The <code>fileExtension</code> is compared in lower case, therefore it
-     * might not be equal to the {@link RDFSyntax#fileExtension} of the returned
-     * RDFSyntax.
+     * The <code>fileExtension</code> is compared in lower case to all
+     * extensions supported, therefore it might not be equal to the
+     * {@link RDFSyntax#fileExtension} of the returned RDFSyntax.
      * <p>
      * This method support all syntaxes returned by {@link #w3cSyntaxes()}.
      * 
@@ -252,7 +275,7 @@ public interface RDFSyntax {
      */
     public static Optional<RDFSyntax> byFileExtension(final String fileExtension) {
         final String ext = fileExtension.toLowerCase(Locale.ROOT);        
-        return w3cSyntaxes().stream().filter(t -> t.fileExtension().equals(ext))
+        return w3cSyntaxes().stream().filter(t -> t.fileExtensions().contains(ext))
                 .findAny();
     }
     

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/a574473c/api/src/main/java/org/apache/commons/rdf/api/W3CRDFSyntax.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/W3CRDFSyntax.java b/api/src/main/java/org/apache/commons/rdf/api/W3CRDFSyntax.java
index 82b6692..6b88955 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/W3CRDFSyntax.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/W3CRDFSyntax.java
@@ -39,8 +39,7 @@ import java.util.Set;
  *      1.1 Primer</a>
  * @see org.apache.commons.rdf.experimental.RDFParser
  */
-final class W3CRDFSyntax implements RDFSyntax {
-
+class W3CRDFSyntax implements RDFSyntax {
     
     /**
      * IRI representing a <a href="https://www.w3.org/ns/formats/">W3C RDF
@@ -88,7 +87,7 @@ final class W3CRDFSyntax implements RDFSyntax {
     }
 
     
-    static final RDFSyntax JSONLD, TURTLE, NQUADS, NTRIPLES, RDFA_HTML, RDFA_XHTML, RDFXML, TRIG;
+    static final RDFSyntax JSONLD, TURTLE, NQUADS, NTRIPLES, RDFA, RDFXML, TRIG;
     static final Set<RDFSyntax> syntaxes;
     
     static {
@@ -97,13 +96,24 @@ final class W3CRDFSyntax implements RDFSyntax {
         TURTLE = new W3CRDFSyntax("Turtle", "RDF 1.1 Turtle", "text/turtle", ".ttl", false);
         NQUADS = new W3CRDFSyntax("N-Quads", "RDF 1.1 N-Quads", "application/n-quads", ".nq", true);
         NTRIPLES = new W3CRDFSyntax("N-Triples", "RDF 1.1 N-Triples", "application/n-triples", ".nt", false);
-        RDFA_HTML = new W3CRDFSyntax("RDFa", "HTML+RDFa 1.1", "text/html", ".html", false);
-        RDFA_XHTML = new W3CRDFSyntax("RDFa", "XHTML+RDFa 1.1", "application/xhtml+xml", ".xhtml", false);
         RDFXML = new W3CRDFSyntax("RDF_XML", "RDF 1.1 XML Syntax", "application/rdf+xml", ".rdf", false);
-        TRIG = new W3CRDFSyntax("TriG", "RDF 1.1 TriG", "application/trig", ".trig", true);
-
+        TRIG = new W3CRDFSyntax("TriG", "RDF 1.1 TriG", "application/trig", ".trig", true);        
+        RDFA = new W3CRDFSyntax("RDFa", "HTML+RDFa 1.1", "text/html", ".html", false) {
+            private Set<String> types = Collections.unmodifiableSet(new LinkedHashSet<>(
+                    Arrays.asList("text/html", "application/xhtml+xml")));
+            private Set<String> extensions = Collections.unmodifiableSet(new LinkedHashSet<>(
+                            Arrays.asList(".html", ".xhtml")));
+            @Override
+            public Set<String> mediaTypes() {
+                return types;
+            }
+            @Override
+            public Set<String> fileExtensions() {
+                return extensions;
+            }
+        };
         syntaxes = Collections.unmodifiableSet(new LinkedHashSet<>(
-                Arrays.asList(JSONLD, NQUADS, NTRIPLES, RDFA_HTML, RDFA_XHTML, RDFXML, TRIG, TURTLE)));
+                Arrays.asList(JSONLD, NQUADS, NTRIPLES, RDFA, RDFXML, TRIG, TURTLE)));
     }
     
     private final String title;

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/a574473c/api/src/test/java/org/apache/commons/rdf/api/RDFSyntaxTest.java
----------------------------------------------------------------------
diff --git a/api/src/test/java/org/apache/commons/rdf/api/RDFSyntaxTest.java b/api/src/test/java/org/apache/commons/rdf/api/RDFSyntaxTest.java
index 50b934f..5494147 100644
--- a/api/src/test/java/org/apache/commons/rdf/api/RDFSyntaxTest.java
+++ b/api/src/test/java/org/apache/commons/rdf/api/RDFSyntaxTest.java
@@ -30,8 +30,7 @@ public class RDFSyntaxTest {
         assertEquals(RDFSyntax.JSONLD, RDFSyntax.byFileExtension(".jsonld").get());
         assertEquals(RDFSyntax.NQUADS, RDFSyntax.byFileExtension(".nq").get());
         assertEquals(RDFSyntax.NTRIPLES, RDFSyntax.byFileExtension(".nt").get());
-        assertEquals(RDFSyntax.RDFA_HTML, RDFSyntax.byFileExtension(".html").get());
-        assertEquals(RDFSyntax.RDFA_XHTML, RDFSyntax.byFileExtension(".xhtml").get());
+        assertEquals(RDFSyntax.RDFA, RDFSyntax.byFileExtension(".html").get());
         assertEquals(RDFSyntax.RDFXML, RDFSyntax.byFileExtension(".rdf").get());
         assertEquals(RDFSyntax.TRIG, RDFSyntax.byFileExtension(".trig").get());
         assertEquals(RDFSyntax.TURTLE, RDFSyntax.byFileExtension(".ttl").get());
@@ -57,8 +56,8 @@ public class RDFSyntaxTest {
         assertEquals(RDFSyntax.JSONLD, RDFSyntax.byMediaType("application/ld+json").get());
         assertEquals(RDFSyntax.NQUADS, RDFSyntax.byMediaType("application/n-quads").get());
         assertEquals(RDFSyntax.NTRIPLES, RDFSyntax.byMediaType("application/n-triples").get());
-        assertEquals(RDFSyntax.RDFA_HTML, RDFSyntax.byMediaType("text/html").get());
-        assertEquals(RDFSyntax.RDFA_XHTML, RDFSyntax.byMediaType("application/xhtml+xml").get());
+        assertEquals(RDFSyntax.RDFA, RDFSyntax.byMediaType("text/html").get());
+        assertEquals(RDFSyntax.RDFA, RDFSyntax.byMediaType("application/xhtml+xml").get());
         assertEquals(RDFSyntax.RDFXML, RDFSyntax.byMediaType("application/rdf+xml").get());
         assertEquals(RDFSyntax.TRIG, RDFSyntax.byMediaType("application/trig").get());
         assertEquals(RDFSyntax.TURTLE, RDFSyntax.byMediaType("text/turtle").get());
@@ -89,34 +88,59 @@ public class RDFSyntaxTest {
         assertEquals(".jsonld", RDFSyntax.JSONLD.fileExtension());
         assertEquals(".nq", RDFSyntax.NQUADS.fileExtension());
         assertEquals(".nt", RDFSyntax.NTRIPLES.fileExtension());
-        assertEquals(".html", RDFSyntax.RDFA_HTML.fileExtension());
-        assertEquals(".xhtml", RDFSyntax.RDFA_XHTML.fileExtension());
+        assertEquals(".html", RDFSyntax.RDFA.fileExtension());
         assertEquals(".rdf", RDFSyntax.RDFXML.fileExtension());
         assertEquals(".trig", RDFSyntax.TRIG.fileExtension());
         assertEquals(".ttl", RDFSyntax.TURTLE.fileExtension());
     }
 
     @Test
+    public void fileExtensions() throws Exception {
+        assertTrue(RDFSyntax.JSONLD.fileExtensions().contains(".jsonld"));
+        assertTrue(RDFSyntax.NQUADS.fileExtensions().contains(".nq"));
+        assertTrue(RDFSyntax.NTRIPLES.fileExtensions().contains(".nt"));
+        assertTrue(RDFSyntax.RDFA.fileExtensions().contains(".html"));
+        assertTrue(RDFSyntax.RDFA.fileExtensions().contains(".xhtml"));
+        assertTrue(RDFSyntax.RDFXML.fileExtensions().contains(".rdf"));
+        assertTrue(RDFSyntax.TRIG.fileExtensions().contains(".trig"));
+        assertTrue(RDFSyntax.TURTLE.fileExtensions().contains(".ttl"));
+    }
+    
+    @Test
     public void mediaType() throws Exception {
         assertEquals("application/ld+json", RDFSyntax.JSONLD.mediaType());
         assertEquals("application/n-quads", RDFSyntax.NQUADS.mediaType());
         assertEquals("application/n-triples", RDFSyntax.NTRIPLES.mediaType());
-        assertEquals("text/html", RDFSyntax.RDFA_HTML.mediaType());
-        assertEquals("application/xhtml+xml", RDFSyntax.RDFA_XHTML.mediaType());
+        assertEquals("text/html", RDFSyntax.RDFA.mediaType());
         assertEquals("application/rdf+xml", RDFSyntax.RDFXML.mediaType());
         assertEquals("application/trig", RDFSyntax.TRIG.mediaType());
         assertEquals("text/turtle", RDFSyntax.TURTLE.mediaType());
     }
 
+
+    @Test
+    public void mediaTypes() throws Exception {
+        assertTrue(RDFSyntax.JSONLD.mediaTypes().contains("application/ld+json"));
+        assertTrue(RDFSyntax.NQUADS.mediaTypes().contains("application/n-quads"));
+        assertTrue(RDFSyntax.NTRIPLES.mediaTypes().contains("application/n-triples"));
+        assertTrue(RDFSyntax.RDFA.mediaTypes().contains("text/html"));
+        assertTrue(RDFSyntax.RDFA.mediaTypes().contains("application/xhtml+xml"));
+        assertTrue(RDFSyntax.RDFXML.mediaTypes().contains("application/rdf+xml"));
+        assertTrue(RDFSyntax.TRIG.mediaTypes().contains("application/trig"));
+        assertTrue(RDFSyntax.TURTLE.mediaTypes().contains("text/turtle"));
+    }
+    
     @Test
-    public void name() throws Exception {
+    public void string() throws Exception {
         assertEquals("JSON-LD 1.0", RDFSyntax.JSONLD.toString());
         assertEquals("RDF 1.1 Turtle", RDFSyntax.TURTLE.toString());
     }
 
     @Test
-    public void valueOf() throws Exception {
-        assertEquals(RDFSyntax.TURTLE, RDFSyntax.byName("TURTLE").get());
+    public void byName() throws Exception {
+        for (RDFSyntax s : RDFSyntax.w3cSyntaxes()) {
+            assertEquals(s, RDFSyntax.byName(s.name()).get());
+        }
     }
     
 }


[02/12] commons-rdf git commit: COMMONSRDF-47 enum split into W3CRDFSyntax

Posted by st...@apache.org.
COMMONSRDF-47 enum split into W3CRDFSyntax

Fixes after feedback from @ansell in #27


Project: http://git-wip-us.apache.org/repos/asf/commons-rdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-rdf/commit/8dd16646
Tree: http://git-wip-us.apache.org/repos/asf/commons-rdf/tree/8dd16646
Diff: http://git-wip-us.apache.org/repos/asf/commons-rdf/diff/8dd16646

Branch: refs/heads/master
Commit: 8dd166463f4c4d25f3036359cf5bf2a2d0806691
Parents: ee725a5
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Thu Jan 12 17:24:17 2017 +0000
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Thu Jan 12 17:24:17 2017 +0000

----------------------------------------------------------------------
 .../org/apache/commons/rdf/api/RDFSyntax.java   | 280 +++++++++----------
 .../apache/commons/rdf/api/W3CRDFSyntax.java    | 141 ++++++++++
 .../apache/commons/rdf/api/RDFSyntaxTest.java   |   4 +-
 3 files changed, 271 insertions(+), 154 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/8dd16646/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java b/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java
index e267157..0a6913d 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java
@@ -17,9 +17,9 @@
  */
 package org.apache.commons.rdf.api;
 
-import java.util.Arrays;
 import java.util.Locale;
 import java.util.Optional;
+import java.util.Set;
 
 /**
  * An RDF syntax, e.g. as used for parsing and writing RDF.
@@ -31,26 +31,83 @@ import java.util.Optional;
  * represent {@link Quad}s.
  * <p>
  * An enumeration of the official RDF 1.1 syntaxes is available in 
- * {@link OfficialRDFSyntax} - for convenience they are also accessible
+ * {@link W3CRDFSyntax} - for convenience they are also accessible
  * as constants here, e.g. <code>RDFSyntax.JSONLD</code>.
  * 
  */
 public interface RDFSyntax {
- 
-    public static OfficialRDFSyntax JSONLD = OfficialRDFSyntax.JSONLD;
-    public static OfficialRDFSyntax TURTLE = OfficialRDFSyntax.TURTLE;
-    public static OfficialRDFSyntax NQUADS = OfficialRDFSyntax.NQUADS;
-    public static OfficialRDFSyntax NTRIPLES = OfficialRDFSyntax.NTRIPLES;
-    public static OfficialRDFSyntax RDFA_HTML = OfficialRDFSyntax.RDFA_HTML;
-    public static OfficialRDFSyntax RDFA_XHTML = OfficialRDFSyntax.RDFA_XHTML;
-    public static OfficialRDFSyntax RDFXML = OfficialRDFSyntax.RDFXML;
-    public static OfficialRDFSyntax TRIG = OfficialRDFSyntax.TRIG;
+
+    /**
+     * JSON-LD 1.0
+     * 
+     * @see <a href=
+     *      "https://www.w3.org/TR/json-ld/">https://www.w3.org/TR/json-ld/</a>
+     * 
+     */
+    public static RDFSyntax JSONLD = W3CRDFSyntax.JSONLD;
+
+    /**
+     * RDF 1.1 Turtle
+     * 
+     * @see <a href=
+     *      "https://www.w3.org/TR/turtle/">https://www.w3.org/TR/turtle/</a>
+     *
+     */
+    public static RDFSyntax TURTLE = W3CRDFSyntax.TURTLE;
+
+    /**
+     * RDF 1.1 N-Quads
+     * 
+     * @see <a href=
+     *      "https://www.w3.org/TR/n-quads/">https://www.w3.org/TR/n-quads/</a>
+     */
+    public static RDFSyntax NQUADS = W3CRDFSyntax.NQUADS;
+
+    /**
+     * RDF 1.1 N-Triples
+     * 
+     * @see <a href=
+     *      "https://www.w3.org/TR/n-triples/">https://www.w3.org/TR/n-triples/</a>
+     */
+    public static RDFSyntax NTRIPLES = W3CRDFSyntax.NTRIPLES;
+
+    /**
+     * HTML+RDFa 1.1
+     * 
+     * @see <a href=
+     *      "https://www.w3.org/TR/html-rdfa/">https://www.w3.org/TR/html-rdfa/</a>
+     */
+    public static RDFSyntax RDFA_HTML = W3CRDFSyntax.RDFA_HTML;
+
+    /**
+     * XHTML+RDFa 1.1
+     * 
+     * @see <a href=
+     *      "https://www.w3.org/TR/xhtml-rdfa/">https://www.w3.org/TR/xhtml-rdfa/</a>
+     */
+    public static RDFSyntax RDFA_XHTML = W3CRDFSyntax.RDFA_XHTML;
+
+    /**
+     * RDF 1.1 XML Syntax
+     * 
+     * @see <a href=
+     *      "https://www.w3.org/TR/rdf-syntax-grammar/">https://www.w3.org/TR/rdf-syntax-grammar/</a>
+     */
+    public static RDFSyntax RDFXML = W3CRDFSyntax.RDFXML;
+
+    /**
+     * RDF 1.1 TriG
+     * 
+     * @see <a href=
+     *      "https://www.w3.org/TR/trig/">https://www.w3.org/TR/trig/</a>
+     */
+    public static RDFSyntax TRIG = W3CRDFSyntax.TRIG;
     
     /**
-     * A short name of the RDF Syntax.
+     * A short name of the RDF Syntax e.g. <code>JSONLD</code>.
      * <p>
-     * The name typically corresponds to the {@link Enum#name()} of for
-     * {@link OfficialRDFSyntax}, e.g. <code>JSONLD</code>.
+     * The name is specific to Commons RDF and carries no particular meaning 
+     * except that it matches the constants like {@link #JSONLD}. 
      * 
      * @return Short name for RDF syntax
      */
@@ -91,7 +148,30 @@ public interface RDFSyntax {
      * Datasets</a>.
      */
     public boolean supportsDataset();
+   
+    /**
+     * Return the RDF 1.1 serialization syntaxes.
+     * <p>
+     * This lists the W3C standardized RDF 1.1 syntaxes like {@link #TURTLE} and
+     * {@link #JSONLD}. Note the existence of other RDF syntaxes that are not
+     * included here, e.g. <a href="http://www.w3.org/TeamSubmission/n3/">N3</a> and
+     * <a href="https://en.wikipedia.org/wiki/TriX_%28syntax%29">TriX</a>.
+     * <p>
+     * The syntaxes returned only support the {@link #mediaType()}
+     * and {@link #fileExtension()} as defined in the corresponding 
+     * W3C specification.
+     * 
+     * @return
+     *      A set of the official RDF 1.1 {@link RDFSyntax}es.
+     * 
+     * @see <a href="https://www.w3.org/TR/rdf11-primer/#section-graph-syntax">RDF
+     *      1.1 Primer</a>
+     * @see org.apache.commons.rdf.experimental.RDFParser
+     */
 
+    public static Set<RDFSyntax> w3cSyntaxes() {
+        return W3CRDFSyntax.syntaxes;
+    }
 
     /**
      * Return the RDFSyntax with the specified media type.
@@ -100,10 +180,12 @@ public interface RDFSyntax {
      * not be equal to the {@link RDFSyntax#mediaType} of the returned
      * RDFSyntax.
      * <p>
-     * For convenience matching of media types used in a
-     * <code>Content-Type</code> header, if the <code>mediaType</code> contains
-     * the characters <code>;</code>, <code>,</code> or white space, only the
-     * part of the string to the left of those characters are considered.
+     * If the media type specifies parameters, e.g.
+     * <code>text/turtle; charset=ascii</code>, only the part of the string to
+     * before <code>;</code> is considered.
+     * <p>
+     * The list of syntaxes supported is at least those returned by
+     * {@link #w3cSyntaxes()}.
      * 
      * @param mediaType
      *            The media type to match
@@ -113,9 +195,9 @@ public interface RDFSyntax {
      *         found.
      */
     public static Optional<RDFSyntax> byMediaType(String mediaType) {
-        final String type = mediaType.toLowerCase(Locale.ENGLISH).split("\\s*[;,]", 2)[0];
-        return Arrays.stream(OfficialRDFSyntax.values()).filter(t -> t.mediaType().equals(type))
-                .map(RDFSyntax.class::cast).findAny();
+        final String type = mediaType.toLowerCase(Locale.ROOT).split("\\s*;", 2)[0];
+        return w3cSyntaxes().stream().filter(t -> t.mediaType().equals(type))
+                .findAny();
     }
 
     /**
@@ -124,6 +206,9 @@ public interface RDFSyntax {
      * The <code>fileExtension</code> is compared in lower case, therefore it
      * might not be equal to the {@link RDFSyntax#fileExtension} of the returned
      * RDFSyntax.
+     * <p>
+     * The list of syntaxes supported is at least those returned by
+     * {@link #w3cSyntaxes()}.
      * 
      * @param fileExtension
      *            The fileExtension to match, starting with <code>.</code>
@@ -133,144 +218,33 @@ public interface RDFSyntax {
      *         extension was found.
      */
     public static Optional<RDFSyntax> byFileExtension(String fileExtension) {
-        final String ext = fileExtension.toLowerCase(Locale.ENGLISH);        
-        return Arrays.stream(OfficialRDFSyntax.values()).filter(t -> t.fileExtension().equals(ext))
-                .map(RDFSyntax.class::cast).findAny();
-    }    
+        final String ext = fileExtension.toLowerCase(Locale.ROOT);        
+        return w3cSyntaxes().stream().filter(t -> t.fileExtension().equals(ext))
+                .findAny();
+    }
     
-
-/**
- * Enumeration of the RDF 1.1 serialization syntaxes.
- * <p>
- * This enumeration lists the W3C standardized RDF 1.1 syntaxes like
- * {@link #TURTLE} and {@link #JSONLD}. Note the existence of other RDF syntaxes
- * that are not included here, e.g.
- * <a href="http://www.w3.org/TeamSubmission/n3/">N3</a> and
- * <a href="https://en.wikipedia.org/wiki/TriX_%28syntax%29">TriX</a>.
- * 
- * @see <a href="https://www.w3.org/TR/rdf11-primer/#section-graph-syntax">RDF
- *      1.1 Primer</a>
- * @see org.apache.commons.rdf.experimental.RDFParser
- */
-  public enum OfficialRDFSyntax implements RDFSyntax {
-
     /**
-     * JSON-LD 1.0
-     * 
-     * @see <a href=
-     *      "https://www.w3.org/TR/json-ld/">https://www.w3.org/TR/json-ld/</a>
-     * 
-     */
-    JSONLD("JSON-LD 1.0", "application/ld+json", ".jsonld", true),
-
-    /**
-     * RDF 1.1 Turtle
-     * 
-     * @see <a href=
-     *      "https://www.w3.org/TR/turtle/">https://www.w3.org/TR/turtle/</a>
-     *
-     */
-    TURTLE("RDF 1.1 Turtle", "text/turtle", ".ttl", false),
-
-    /**
-     * RDF 1.1 N-Quads
-     * 
-     * @see <a href=
-     *      "https://www.w3.org/TR/n-quads/">https://www.w3.org/TR/n-quads/</a>
-     */
-    NQUADS("RDF 1.1 N-Quads", "application/n-quads", ".nq", true),
-
-    /**
-     * RDF 1.1 N-Triples
-     * 
-     * @see <a href=
-     *      "https://www.w3.org/TR/n-triples/">https://www.w3.org/TR/n-triples/</a>
-     */
-    NTRIPLES("RDF 1.1 N-Triples", "application/n-triples", ".nt", false),
-
-    /**
-     * HTML+RDFa 1.1
-     * 
-     * @see <a href=
-     *      "https://www.w3.org/TR/html-rdfa/">https://www.w3.org/TR/html-rdfa/</a>
-     */
-    RDFA_HTML("HTML+RDFa 1.1", "text/html", ".html", false),
-
-    /**
-     * XHTML+RDFa 1.1
-     * 
-     * @see <a href=
-     *      "https://www.w3.org/TR/xhtml-rdfa/">https://www.w3.org/TR/xhtml-rdfa/</a>
-     */
-    RDFA_XHTML("XHTML+RDFa 1.1", "application/xhtml+xml", ".xhtml", false),
-
-    /**
-     * RDF 1.1 XML Syntax
+     * Compare this RDFSyntax with another object.
+     * <p>
+     * Two {@link RDFSyntax}es are considered equal if their
+     * {@link #mediaType()}s are equal when compared as lower case strings
+     * according to {@link String#toLowerCase(Locale)} with the locale
+     * {@link Locale#ROOT}.
      * 
-     * @see <a href=
-     *      "https://www.w3.org/TR/rdf-syntax-grammar/">https://www.w3.org/TR/rdf-syntax-grammar/</a>
+     * @param obj
+     * @return
      */
-    RDFXML("RDF 1.1 XML Syntax", "application/rdf+xml", ".rdf", false),
-
+    @Override
+    boolean equals(Object obj);
+    
     /**
-     * RDF 1.1 TriG
+     * The hash code of an RDFSyntax is equivalent to the hash code 
+     * of the {@link #mediaType()} in lower case according to
+     * {@link String#toLowerCase(Locale)} with the locale
+     * {@link Locale#ROOT}. 
      * 
-     * @see <a href=
-     *      "https://www.w3.org/TR/trig/">https://www.w3.org/TR/trig/</a>
-     */
-    TRIG("RDF 1.1 TriG", "application/trig", ".trig", true);
-
-    /**
-     * Deprecated, use {@link #mediaType()}. 
-     */
-    @Deprecated
-    public final String mediaType;
-
-    /**
-     * Deprecated, use {@link #fileExtension()}.
-     */
-    @Deprecated
-    public final String fileExtension;
-
-    /**
-     * Deprecated, use {@link #supportsDataset()}.
+     * @return Hash code of RDFSyntax
      */
-    @Deprecated
-    public final boolean supportsDataset;
-
-    private final String title;
-
-    @Override
-    public String toString() {
-        return title();
-    }
-
-    private OfficialRDFSyntax(String title, String mediaType, String fileExtension, boolean supportsDataset) {
-        this.title = title;
-        this.mediaType = mediaType;
-        this.fileExtension = fileExtension;
-        this.supportsDataset = supportsDataset;
-    }
-
     @Override
-    public String mediaType() {
-        return mediaType;
-    }
-
-    @Override
-    public String fileExtension() {
-        return fileExtension;
-    }
-
-    @Override
-    public boolean supportsDataset() {
-        return supportsDataset;
-    }
-    
-    @Override
-    public String title() {
-        return title;
-    }
-
-  }
+    int hashCode();
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/8dd16646/api/src/main/java/org/apache/commons/rdf/api/W3CRDFSyntax.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/W3CRDFSyntax.java b/api/src/main/java/org/apache/commons/rdf/api/W3CRDFSyntax.java
new file mode 100644
index 0000000..4ddc6c2
--- /dev/null
+++ b/api/src/main/java/org/apache/commons/rdf/api/W3CRDFSyntax.java
@@ -0,0 +1,141 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.rdf.api;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.LinkedHashSet;
+import java.util.Locale;
+import java.util.Set;
+
+/**
+ * W3C RDF 1.1 serialization syntax.
+ * <p>
+ * This defines the W3C standardized RDF 1.1 syntaxes like {@link #TURTLE} and
+ * {@link #JSONLD}. Note the existence of other RDF syntaxes that are not
+ * included here, e.g. <a href="http://www.w3.org/TeamSubmission/n3/">N3</a> and
+ * <a href="https://en.wikipedia.org/wiki/TriX_%28syntax%29">TriX</a>.
+ * <p>
+ * This class is package-protected, its static constants are exposed through
+ * {@link RDFSyntax}.
+ * 
+ * @see RDFSyntax#w3cSyntaxes()
+ * @see <a href="https://www.w3.org/TR/rdf11-primer/#section-graph-syntax">RDF
+ *      1.1 Primer</a>
+ * @see org.apache.commons.rdf.experimental.RDFParser
+ */
+final class W3CRDFSyntax implements RDFSyntax {
+
+    static final RDFSyntax JSONLD, TURTLE, NQUADS, NTRIPLES, RDFA_HTML, RDFA_XHTML, RDFXML, TRIG;
+    static final Set<RDFSyntax> syntaxes;
+    
+    static {
+        // Initialize within static block to avoid inserting nulls
+        JSONLD = new W3CRDFSyntax("JSONLD", "JSON-LD 1.0", "application/ld+json", ".jsonld", true);
+        TURTLE = new W3CRDFSyntax("TURTLE", "RDF 1.1 Turtle", "text/turtle", ".ttl", false);
+        NQUADS = new W3CRDFSyntax("NQUADS", "RDF 1.1 N-Quads", "application/n-quads", ".nq", true);
+        NTRIPLES = new W3CRDFSyntax("NTRIPLES", "RDF 1.1 N-Triples", "application/n-triples", ".nt", false);
+        RDFA_HTML = new W3CRDFSyntax("RDFA_HTML", "HTML+RDFa 1.1", "text/html", ".html", false);
+        RDFA_XHTML = new W3CRDFSyntax("RDFA_XHTML", "XHTML+RDFa 1.1", "application/xhtml+xml", ".xhtml", false);
+        RDFXML = new W3CRDFSyntax("RDFXML", "RDF 1.1 XML Syntax", "application/rdf+xml", ".rdf", false);
+        TRIG = new W3CRDFSyntax("TRIG", "RDF 1.1 TriG", "application/trig", ".trig", true);
+
+        syntaxes = Collections.unmodifiableSet(new LinkedHashSet<>(
+                Arrays.asList(JSONLD, NQUADS, NTRIPLES, RDFA_HTML, RDFA_XHTML, RDFXML, TRIG, TURTLE)));
+    }
+    
+    private final String title;
+
+    private final String mediaType;
+
+    private final String fileExtension;
+
+    private final boolean supportsDataset;
+
+    private final String name;
+
+    private W3CRDFSyntax(String name, String title, String mediaType, String fileExtension, boolean supportsDataset) {
+        this.name = name;
+        this.title = title;
+        this.mediaType = mediaType.toLowerCase(Locale.ROOT);
+        this.fileExtension = fileExtension.toLowerCase(Locale.ROOT);
+        this.supportsDataset = supportsDataset;
+    }
+
+    /**
+     * {@inheritDoc}
+     * <p>
+     * {@link W3CRDFSyntax} always defines media type in lower case, so 
+     * {@link String#toLowerCase(Locale)} need not be called.
+     * 
+     */
+    @Override
+    public String mediaType() {
+        return mediaType;
+    }
+
+    /**
+     * {@inheritDoc}
+     * <p>
+     * {@link W3CRDFSyntax} always defines file extensions in lower case, so
+     * {@link String#toLowerCase(Locale)} need not be called.
+     * 
+     */
+    @Override
+    public String fileExtension() {
+        return fileExtension;
+    }
+
+    @Override
+    public boolean supportsDataset() {
+        return supportsDataset;
+    }
+
+    @Override
+    public String title() {
+        return title;
+    }
+
+    @Override
+    public String name() {
+        return name;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (obj == this) {
+            return true;
+        }
+        if (!(obj instanceof RDFSyntax)) {
+            return false;
+        }
+        RDFSyntax other = (RDFSyntax) obj;
+        return mediaType.equals(other.mediaType().toLowerCase(Locale.ROOT));
+    }
+
+    @Override
+    public int hashCode() {
+        return mediaType.hashCode();
+    }
+
+    @Override
+    public String toString() {
+        return title;
+    }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/8dd16646/api/src/test/java/org/apache/commons/rdf/api/RDFSyntaxTest.java
----------------------------------------------------------------------
diff --git a/api/src/test/java/org/apache/commons/rdf/api/RDFSyntaxTest.java b/api/src/test/java/org/apache/commons/rdf/api/RDFSyntaxTest.java
index 335eb90..419e660 100644
--- a/api/src/test/java/org/apache/commons/rdf/api/RDFSyntaxTest.java
+++ b/api/src/test/java/org/apache/commons/rdf/api/RDFSyntaxTest.java
@@ -68,7 +68,9 @@ public class RDFSyntaxTest {
     public void byMediaTypeContentType() throws Exception {
         assertEquals(RDFSyntax.TURTLE, RDFSyntax.byMediaType("text/turtle; charset=\"UTF-8\"").get());
         assertEquals(RDFSyntax.TURTLE, RDFSyntax.byMediaType("text/turtle ; charset=\"UTF-8\"").get());
-        assertEquals(RDFSyntax.TURTLE, RDFSyntax.byMediaType("text/turtle, text/plain").get());
+        // That's a Content-Type, not media type; we won't split by ","
+        assertEquals(Optional.empty(), RDFSyntax.byMediaType("text/turtle, text/plain"));
+        // no trimming will be done
         assertEquals(Optional.empty(), RDFSyntax.byMediaType(" text/turtle"));
     }
 


[10/12] commons-rdf git commit: Merge remote-tracking branch 'origin/master' into COMMONSRDF-47

Posted by st...@apache.org.
Merge remote-tracking branch 'origin/master' into COMMONSRDF-47


Project: http://git-wip-us.apache.org/repos/asf/commons-rdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-rdf/commit/92998b32
Tree: http://git-wip-us.apache.org/repos/asf/commons-rdf/tree/92998b32
Diff: http://git-wip-us.apache.org/repos/asf/commons-rdf/diff/92998b32

Branch: refs/heads/master
Commit: 92998b329182724789f44272f60538dc195b8df3
Parents: a574473 f6ea058
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Feb 10 16:54:53 2017 +0000
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Feb 10 16:54:53 2017 +0000

----------------------------------------------------------------------
 MATURITY.md                                     |  20 ++
 .../org/apache/commons/rdf/api/Literal.java     |  27 +-
 .../commons/rdf/api/AbstractDatasetTest.java    | 184 ++++++++++++
 .../commons/rdf/api/AbstractGraphTest.java      | 153 +++++++++-
 .../apache/commons/rdf/api/AbstractRDFTest.java | 158 +++++++++-
 integration-tests/pom.xml                       |   3 +-
 .../rdf/integrationtests/JSONLDParsingTest.java | 164 +++++++++++
 .../src/test/resources/alice-cached.jsonld      |   9 +
 .../src/test/resources/alice-embedded.jsonld    |  16 +
 .../src/test/resources/contexts/example.jsonld  |  11 +
 .../src/test/resources/jarcache.json            |  10 +
 jena/pom.xml                                    |  19 +-
 .../org/apache/commons/rdf/jena/JenaRDF.java    |  32 ++
 .../commons/rdf/jena/impl/AbstractQuadLike.java |  70 ++++-
 .../rdf/jena/impl/InternalJenaFactory.java      |   2 +-
 .../commons/rdf/jena/impl/JenaDatasetImpl.java  |   7 +-
 .../commons/rdf/jena/impl/JenaGraphImpl.java    |  18 +-
 .../commons/rdf/jena/impl/JenaLiteralImpl.java  |  13 +-
 .../rdf/jena/DefaultGraphInQuadTest.java        | 136 +++++++++
 .../rdf/jena/GeneralizedRDFQuadTest.java        | 127 ++++++++
 .../rdf/jena/GeneralizedRDFTripleTest.java      |  85 ++++++
 .../apache/commons/rdf/jena/JenaRDFTest.java    |   1 -
 jsonld-java/pom.xml                             |  19 +-
 .../commons/rdf/jsonldjava/JsonLdGraphLike.java |  18 +-
 .../commons/rdf/jsonldjava/JsonLdLiteral.java   |  23 +-
 .../commons/rdf/jsonldjava/JsonLdQuadLike.java  |   5 +
 .../rdf/jsonldjava/JsonLdComparisonTest.java    | 141 +++++++++
 pom.xml                                         | 289 ++++++++++---------
 rdf4j/pom.xml                                   |   7 +-
 .../org/apache/commons/rdf/rdf4j/RDF4J.java     |  85 +++++-
 .../commons/rdf/rdf4j/impl/LiteralImpl.java     |  15 +-
 .../rdf/rdf4j/RDF4JMethodOverloadsTest.java     |  50 ++++
 simple/pom.xml                                  |  19 +-
 .../apache/commons/rdf/simple/LiteralImpl.java  |   8 +-
 src/site/markdown/introduction.md               |  20 ++
 35 files changed, 1747 insertions(+), 217 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/92998b32/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDF.java
----------------------------------------------------------------------


[12/12] commons-rdf git commit: COMMONSRDF-47: RDFSyntax as an interface, not emum

Posted by st...@apache.org.
COMMONSRDF-47: RDFSyntax as an interface, not emum

Official media types are provided from W3CRDFSyntax

Added plural mediaTypes() and extensions()

Thanks to @ansell for reviewing.

This closes #27


Project: http://git-wip-us.apache.org/repos/asf/commons-rdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-rdf/commit/ef7f4442
Tree: http://git-wip-us.apache.org/repos/asf/commons-rdf/tree/ef7f4442
Diff: http://git-wip-us.apache.org/repos/asf/commons-rdf/diff/ef7f4442

Branch: refs/heads/master
Commit: ef7f4442a85f90883c320ae30486db617848b60d
Parents: f6ea058 fbd72a9
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Thu Feb 16 11:53:56 2017 +0000
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Thu Feb 16 11:55:57 2017 +0000

----------------------------------------------------------------------
 .../org/apache/commons/rdf/api/RDFSyntax.java   | 218 ++++++++++++++-----
 .../apache/commons/rdf/api/W3CRDFSyntax.java    | 206 ++++++++++++++++++
 .../apache/commons/rdf/api/RDFSyntaxTest.java   |  75 ++++---
 .../org/apache/commons/rdf/jena/JenaRDF.java    |   2 +-
 .../simple/experimental/AbstractRDFParser.java  |   2 +-
 .../experimental/AbstractRDFParserTest.java     |  10 +-
 6 files changed, 426 insertions(+), 87 deletions(-)
----------------------------------------------------------------------



[03/12] commons-rdf git commit: Merge branch 'master' into COMMONSRDF-47

Posted by st...@apache.org.
Merge branch 'master' into COMMONSRDF-47


Project: http://git-wip-us.apache.org/repos/asf/commons-rdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-rdf/commit/dc082d14
Tree: http://git-wip-us.apache.org/repos/asf/commons-rdf/tree/dc082d14
Diff: http://git-wip-us.apache.org/repos/asf/commons-rdf/diff/dc082d14

Branch: refs/heads/master
Commit: dc082d141eb34b331fe1a42147fdfe580d14d739
Parents: 8dd1664 0e1969a
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Thu Jan 12 17:35:39 2017 +0000
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Thu Jan 12 17:35:39 2017 +0000

----------------------------------------------------------------------
 .travis.yml                                     |   2 +-
 DISCLAIMER                                      |   9 -
 MATURITY.md                                     | 327 ++++++++++
 README.md                                       |  68 +-
 RELEASE-NOTES.txt                               |   8 +-
 RELEASE-PROCESS.md                              |   6 +-
 api/pom.xml                                     |  16 +-
 .../org/apache/commons/rdf/api/Dataset.java     |  18 +-
 .../java/org/apache/commons/rdf/api/Graph.java  |  18 +-
 .../java/org/apache/commons/rdf/api/Quad.java   |   8 +-
 .../org/apache/commons/rdf/api/RDFSyntax.java   |   4 +-
 .../apache/commons/rdf/api/RDFTermFactory.java  |  12 +-
 .../java/org/apache/commons/rdf/api/Triple.java |   3 +
 .../commons/rdf/experimental/RDFParser.java     |   4 +-
 .../commons/rdf/api/AbstractBlankNodeTest.java  |  48 +-
 .../commons/rdf/api/AbstractDatasetTest.java    | 594 +++++++++++++++++
 .../commons/rdf/api/AbstractGraphTest.java      | 106 +--
 .../apache/commons/rdf/api/AbstractRDFTest.java |  72 +--
 .../commons/rdf/api/DefaultDatasetTest.java     |  58 ++
 .../commons/rdf/api/DefaultGraphTest.java       |  78 +++
 .../apache/commons/rdf/api/DefaultQuadTest.java |  47 ++
 .../rdf/api/DefaultRDFTermFactoryTest.java      |  63 ++
 .../apache/commons/rdf/api/DummyDataset.java    | 110 ++++
 .../commons/rdf/api/DummyDatasetTest.java       | 101 +++
 .../org/apache/commons/rdf/api/DummyGraph.java  |  85 +++
 .../apache/commons/rdf/api/DummyGraphTest.java  |  84 +++
 .../org/apache/commons/rdf/api/DummyIRI.java    |  47 ++
 .../apache/commons/rdf/api/DummyIRITest.java    |  56 ++
 .../org/apache/commons/rdf/api/DummyQuad.java   |  63 ++
 .../apache/commons/rdf/api/DummyQuadTest.java   |  58 ++
 .../org/apache/commons/rdf/api/DummyTriple.java |  57 ++
 .../apache/commons/rdf/api/DummyTripleTest.java |  53 ++
 .../apache/commons/rdf/api/RDFSyntaxTest.java   |   6 +
 examples/pom.xml                                |  19 +-
 examples/src/example/IntroToRDF.java            | 149 +++++
 examples/src/example/IntroToRDFTest.java        |  30 +
 integration-tests/pom.xml                       |   7 +-
 .../rdf/integrationtests/AllToAllTest.java      |  56 +-
 jena/pom.xml                                    |  18 +-
 .../commons/rdf/jena/ConversionException.java   |   6 +-
 .../org/apache/commons/rdf/jena/JenaRDF.java    | 146 +++--
 .../rdf/jena/experimental/JenaRDFParser.java    |  22 +-
 .../rdf/jena/impl/AbstractJenaRDFTerm.java      |   8 +-
 .../commons/rdf/jena/impl/AbstractQuadLike.java |  12 +-
 .../rdf/jena/impl/InternalJenaFactory.java      |  53 +-
 .../rdf/jena/impl/JenaBlankNodeImpl.java        |  17 +-
 .../commons/rdf/jena/impl/JenaDatasetImpl.java  |  57 +-
 .../jena/impl/JenaGeneralizedQuadLikeImpl.java  |   4 +-
 .../impl/JenaGeneralizedTripleLikeImpl.java     |   4 +-
 .../commons/rdf/jena/impl/JenaGraphImpl.java    |  42 +-
 .../commons/rdf/jena/impl/JenaIRIImpl.java      |  17 +-
 .../commons/rdf/jena/impl/JenaLiteralImpl.java  |  20 +-
 .../commons/rdf/jena/impl/JenaQuadImpl.java     |  14 +-
 .../commons/rdf/jena/impl/JenaTripleImpl.java   |  17 +-
 jena/src/site/resources/profile.jacoco          |   0
 .../commons/rdf/jena/DatasetJenaTest.java       |  31 +
 .../commons/rdf/jena/JenaServiceLoaderTest.java |   4 +-
 .../commons/rdf/jena/TestBlankNodeJena.java     |   2 +-
 .../jena/TestJenaGraphToCommonsRDFGraph.java    |  30 +-
 .../commons/rdf/jena/TestRDFParserBuilder.java  |   4 +-
 jsonld-java/pom.xml                             |  15 +-
 .../commons/rdf/jsonldjava/JsonLdBlankNode.java |  13 +-
 .../commons/rdf/jsonldjava/JsonLdDataset.java   |  27 +-
 .../commons/rdf/jsonldjava/JsonLdGraph.java     |  24 +-
 .../commons/rdf/jsonldjava/JsonLdGraphLike.java |  47 +-
 .../commons/rdf/jsonldjava/JsonLdIRI.java       |   8 +-
 .../commons/rdf/jsonldjava/JsonLdLiteral.java   |  10 +-
 .../commons/rdf/jsonldjava/JsonLdQuad.java      |   6 +-
 .../commons/rdf/jsonldjava/JsonLdQuadLike.java  |   7 +-
 .../commons/rdf/jsonldjava/JsonLdRDF.java       |  56 +-
 .../commons/rdf/jsonldjava/JsonLdTerm.java      |   9 +-
 .../commons/rdf/jsonldjava/JsonLdTriple.java    |   6 +-
 .../rdf/jsonldjava/JsonLdUnionGraph.java        |  18 +-
 .../jsonldjava/experimental/JsonLdParser.java   |  28 +-
 jsonld-java/src/site/resources/profile.jacoco   |   0
 .../rdf/jsonldjava/JsonLdBlankNodeTest.java     |   2 +-
 .../rdf/jsonldjava/JsonLdDatasetTest.java       |  30 +
 .../rdf/jsonldjava/JsonLdParserBuilderTest.java |  14 +-
 .../rdf/jsonldjava/JsonLdServiceLoaderTest.java |   4 +-
 pom.xml                                         | 267 ++++----
 rdf4j/pom.xml                                   |  18 +-
 .../org/apache/commons/rdf/rdf4j/RDF4J.java     |  90 +--
 .../rdf/rdf4j/experimental/RDF4JParser.java     |  55 +-
 .../commons/rdf/rdf4j/impl/AbstractRDFTerm.java |   3 +-
 .../rdf4j/impl/AbstractRepositoryGraphLike.java |   5 +-
 .../commons/rdf/rdf4j/impl/BlankNodeImpl.java   |  20 +-
 .../rdf/rdf4j/impl/ConvertedStatements.java     |  12 +-
 .../apache/commons/rdf/rdf4j/impl/IRIImpl.java  |   9 +-
 .../rdf/rdf4j/impl/InternalRDF4JFactory.java    |  20 +-
 .../commons/rdf/rdf4j/impl/LiteralImpl.java     |   9 +-
 .../commons/rdf/rdf4j/impl/ModelGraphImpl.java  |  29 +-
 .../apache/commons/rdf/rdf4j/impl/QuadImpl.java |  22 +-
 .../rdf/rdf4j/impl/RepositoryDatasetImpl.java   | 101 ++-
 .../rdf/rdf4j/impl/RepositoryGraphImpl.java     |  71 +-
 .../commons/rdf/rdf4j/impl/TripleImpl.java      |  10 +-
 rdf4j/src/site/resources/profile.jacoco         |   0
 .../apache/commons/rdf/rdf4j/BlankNodeTest.java |   2 +-
 .../apache/commons/rdf/rdf4j/DatasetTest.java   |  30 +
 .../commons/rdf/rdf4j/MemoryGraphTest.java      |  28 +-
 .../commons/rdf/rdf4j/NativeStoreGraphTest.java |  30 +-
 .../rdf/rdf4j/RDF4JServiceLoaderTest.java       |   4 +-
 simple/pom.xml                                  |  16 +-
 .../commons/rdf/simple/BlankNodeImpl.java       |   8 +-
 .../commons/rdf/simple/DatasetGraphView.java    |  20 +-
 .../apache/commons/rdf/simple/DatasetImpl.java  |  64 +-
 .../apache/commons/rdf/simple/GraphImpl.java    |  47 +-
 .../org/apache/commons/rdf/simple/IRIImpl.java  |   6 +-
 .../apache/commons/rdf/simple/LiteralImpl.java  |  14 +-
 .../org/apache/commons/rdf/simple/QuadImpl.java |   6 +-
 .../apache/commons/rdf/simple/SimpleRDF.java    |  16 +-
 .../rdf/simple/SimpleRDFTermFactory.java        |  22 +-
 .../apache/commons/rdf/simple/TripleImpl.java   |   6 +-
 .../org/apache/commons/rdf/simple/Types.java    |  10 +-
 .../simple/experimental/AbstractRDFParser.java  |  62 +-
 .../simple/experimental/RDFParseException.java  |  10 +-
 .../commons/rdf/simple/BlankNodeImplTest.java   |   2 +-
 .../rdf/simple/DummyRDFParserBuilder.java       |   6 +-
 .../commons/rdf/simple/SimpleDatasetTest.java   |  48 ++
 .../rdf/simple/SimpleNoRelativeIRIRDTest.java   |  45 --
 .../rdf/simple/SimpleServiceLoaderTest.java     |   4 +-
 .../commons/rdf/simple/TestWritingGraph.java    |  34 +-
 .../experimental/AbstractRDFParserTest.java     |  60 +-
 src/assembly/src.xml                            |   1 -
 src/site/markdown/contributing.md               |  31 +-
 src/site/markdown/download.md                   |  71 +-
 src/site/markdown/implementations.md            |  46 +-
 src/site/markdown/index.md                      |  41 +-
 src/site/markdown/introduction.md               | 645 +++++++++++++++++++
 src/site/markdown/userguide.md                  |  16 +-
 src/site/resources/images/class-diagram.nomnoml |   9 +-
 src/site/resources/images/class-diagram.png     | Bin 56161 -> 71605 bytes
 src/site/resources/images/rdf-01.svg            |  30 +
 src/site/resources/images/rdf-02.svg            |  31 +
 src/site/site.xml                               |  13 +-
 134 files changed, 4369 insertions(+), 1308 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/dc082d14/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java
----------------------------------------------------------------------
diff --cc api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java
index 0a6913d,2948437..0d2f0b0
--- a/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java
@@@ -194,10 -167,9 +194,10 @@@ public interface RDFSyntax 
       *         {@link Optional#empty()} indicating that no matching syntax was
       *         found.
       */
-     public static Optional<RDFSyntax> byMediaType(String mediaType) {
+     public static Optional<RDFSyntax> byMediaType(final String mediaType) {
 -        final String type = mediaType.toLowerCase(Locale.ENGLISH).split("\\s*[;,]", 2)[0];
 -        return Arrays.stream(RDFSyntax.values()).filter(t -> t.mediaType.equals(type)).findAny();
 +        final String type = mediaType.toLowerCase(Locale.ROOT).split("\\s*;", 2)[0];
 +        return w3cSyntaxes().stream().filter(t -> t.mediaType().equals(type))
 +                .findAny();
      }
  
      /**
@@@ -217,34 -186,9 +217,34 @@@
       *         {@link Optional#empty()} indicating that no matching file
       *         extension was found.
       */
-     public static Optional<RDFSyntax> byFileExtension(String fileExtension) {
+     public static Optional<RDFSyntax> byFileExtension(final String fileExtension) {
 -        final String ext = fileExtension.toLowerCase(Locale.ENGLISH);
 -        return Arrays.stream(RDFSyntax.values()).filter(t -> t.fileExtension.equals(ext)).findAny();
 +        final String ext = fileExtension.toLowerCase(Locale.ROOT);        
 +        return w3cSyntaxes().stream().filter(t -> t.fileExtension().equals(ext))
 +                .findAny();
      }
 -
 -}
 +    
 +    /**
 +     * Compare this RDFSyntax with another object.
 +     * <p>
 +     * Two {@link RDFSyntax}es are considered equal if their
 +     * {@link #mediaType()}s are equal when compared as lower case strings
 +     * according to {@link String#toLowerCase(Locale)} with the locale
 +     * {@link Locale#ROOT}.
 +     * 
 +     * @param obj
 +     * @return
 +     */
 +    @Override
 +    boolean equals(Object obj);
 +    
 +    /**
 +     * The hash code of an RDFSyntax is equivalent to the hash code 
 +     * of the {@link #mediaType()} in lower case according to
 +     * {@link String#toLowerCase(Locale)} with the locale
 +     * {@link Locale#ROOT}. 
 +     * 
 +     * @return Hash code of RDFSyntax
 +     */
 +    @Override
 +    int hashCode();
 +}

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/dc082d14/api/src/test/java/org/apache/commons/rdf/api/RDFSyntaxTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/dc082d14/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDF.java
----------------------------------------------------------------------
diff --cc jena/src/main/java/org/apache/commons/rdf/jena/JenaRDF.java
index 036e084,92c0adb..351623a
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDF.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDF.java
@@@ -550,8 -554,8 +554,8 @@@ public final class JenaRDF implements R
       *            {@link RDFSyntax} to convert
       * @return Matched {@link Lang}, otherwise {@link Optional#empty()}
       */
-     public Optional<Lang> asJenaLang(RDFSyntax rdfSyntax) {
+     public Optional<Lang> asJenaLang(final RDFSyntax rdfSyntax) {
 -        return Optional.ofNullable(RDFLanguages.contentTypeToLang(rdfSyntax.mediaType));
 +        return Optional.ofNullable(RDFLanguages.contentTypeToLang(rdfSyntax.mediaType()));
      }
  
      /**

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/dc082d14/simple/src/main/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParser.java
----------------------------------------------------------------------
diff --cc simple/src/main/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParser.java
index 62fe79c,1157dc5..a9af156
--- a/simple/src/main/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParser.java
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParser.java
@@@ -237,10 -237,10 +237,10 @@@ public abstract class AbstractRDFParser
      }
  
      @Override
-     public T contentType(RDFSyntax rdfSyntax) throws IllegalArgumentException {
-         AbstractRDFParser<T> c = clone();
+     public T contentType(final RDFSyntax rdfSyntax) throws IllegalArgumentException {
+         final AbstractRDFParser<T> c = clone();
          c.contentTypeSyntax = Optional.ofNullable(rdfSyntax);
 -        c.contentType = c.contentTypeSyntax.map(syntax -> syntax.mediaType);
 +        c.contentType = c.contentTypeSyntax.map(syntax -> syntax.mediaType());
          return c.asT();
      }
  


[04/12] commons-rdf git commit: Added byName()

Posted by st...@apache.org.
Added byName()


Project: http://git-wip-us.apache.org/repos/asf/commons-rdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-rdf/commit/c04864bf
Tree: http://git-wip-us.apache.org/repos/asf/commons-rdf/tree/c04864bf
Diff: http://git-wip-us.apache.org/repos/asf/commons-rdf/diff/c04864bf

Branch: refs/heads/master
Commit: c04864bf866131fcd4fa2c00d4782864c2b7fe44
Parents: dc082d1
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Thu Jan 12 17:39:42 2017 +0000
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Thu Jan 12 17:39:42 2017 +0000

----------------------------------------------------------------------
 .../org/apache/commons/rdf/api/RDFSyntax.java   | 21 ++++++++++++++++++--
 .../apache/commons/rdf/api/RDFSyntaxTest.java   |  3 +--
 2 files changed, 20 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/c04864bf/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java b/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java
index 0d2f0b0..70048e1 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java
@@ -190,7 +190,7 @@ public interface RDFSyntax {
      * @param mediaType
      *            The media type to match
      * @return If {@link Optional#isPresent()}, the {@link RDFSyntax} which has
-     *         a matching {@link RDFSyntax#mediaType}, otherwise
+     *         a matching {@link RDFSyntax#mediaType()}, otherwise
      *         {@link Optional#empty()} indicating that no matching syntax was
      *         found.
      */
@@ -213,7 +213,7 @@ public interface RDFSyntax {
      * @param fileExtension
      *            The fileExtension to match, starting with <code>.</code>
      * @return If {@link Optional#isPresent()}, the {@link RDFSyntax} which has
-     *         a matching {@link RDFSyntax#fileExtension}, otherwise
+     *         a matching {@link RDFSyntax#fileExtension()}, otherwise
      *         {@link Optional#empty()} indicating that no matching file
      *         extension was found.
      */
@@ -224,6 +224,22 @@ public interface RDFSyntax {
     }
     
     /**
+     * Return the RDFSyntax with the specified {@link #name()}.
+     * <p>
+     * The list of syntaxes supported is at least those returned by
+     * {@link #w3cSyntaxes()}
+     * 
+     * @param name
+     *            The name to match, , e.g. <code>"JSONLD"</code>
+     * @return If {@link Optional#isPresent()}, the {@link RDFSyntax} which has
+     *         a matching {@link RDFSyntax#name()}, otherwise
+     *         {@link Optional#empty()} indicating that no matching name was found.
+     */    
+    public static Optional<RDFSyntax> byName(final String name) {
+        return w3cSyntaxes().stream().filter(t -> t.name().equals(name)).findAny();
+    }
+    
+    /**
      * Compare this RDFSyntax with another object.
      * <p>
      * Two {@link RDFSyntax}es are considered equal if their
@@ -247,4 +263,5 @@ public interface RDFSyntax {
      */
     @Override
     int hashCode();
+
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/c04864bf/api/src/test/java/org/apache/commons/rdf/api/RDFSyntaxTest.java
----------------------------------------------------------------------
diff --git a/api/src/test/java/org/apache/commons/rdf/api/RDFSyntaxTest.java b/api/src/test/java/org/apache/commons/rdf/api/RDFSyntaxTest.java
index 8fc79e4..edf68af 100644
--- a/api/src/test/java/org/apache/commons/rdf/api/RDFSyntaxTest.java
+++ b/api/src/test/java/org/apache/commons/rdf/api/RDFSyntaxTest.java
@@ -116,8 +116,7 @@ public class RDFSyntaxTest {
 
     @Test
     public void valueOf() throws Exception {
-        assertEquals(RDFSyntax.TURTLE, RDFSyntax.valueOf("TURTLE"));
-        // No need to test all of them, we'll trust Enum
+        assertEquals(RDFSyntax.TURTLE, RDFSyntax.byName("TURTLE"));
     }
     
 }


[11/12] commons-rdf git commit: COMMONSRDF-47: Avoid hard-coded RDFSyntax names

Posted by st...@apache.org.
COMMONSRDF-47: Avoid hard-coded RDFSyntax names

Project: http://git-wip-us.apache.org/repos/asf/commons-rdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-rdf/commit/fbd72a91
Tree: http://git-wip-us.apache.org/repos/asf/commons-rdf/tree/fbd72a91
Diff: http://git-wip-us.apache.org/repos/asf/commons-rdf/diff/fbd72a91

Branch: refs/heads/master
Commit: fbd72a9173b35d73c27af068ca75bdd44c3045f0
Parents: 92998b3
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Sat Feb 11 00:24:25 2017 +0000
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Sat Feb 11 00:24:25 2017 +0000

----------------------------------------------------------------------
 .../rdf/simple/experimental/AbstractRDFParserTest.java    | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/fbd72a91/simple/src/test/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParserTest.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParserTest.java b/simple/src/test/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParserTest.java
index 12061ed..098b606 100644
--- a/simple/src/test/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParserTest.java
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParserTest.java
@@ -21,6 +21,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
+import static org.apache.commons.rdf.api.RDFSyntax.*;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
@@ -162,7 +163,8 @@ public class AbstractRDFParserTest {
         // international characters
         assertEquals("<" + testNt.toUri().toString() + ">", firstPredicate(g, "source"));
         assertEquals("<" + testNt.toUri().toString() + ">", firstPredicate(g, "base"));
-        assertEquals("\"NTRIPLES\"", firstPredicate(g, "contentTypeSyntax"));
+        assertEquals("\"" + RDFSyntax.NTRIPLES.name() + "\"", 
+                firstPredicate(g, "contentTypeSyntax"));
         assertEquals("\"application/n-triples\"", firstPredicate(g, "contentType"));
     }
 
@@ -213,7 +215,8 @@ public class AbstractRDFParserTest {
         // bnode source indicates InputStream
         assertTrue(firstPredicate(g, "source").startsWith("_:"));
         assertEquals("\"application/n-quads\"", firstPredicate(g, "contentType"));
-        assertEquals("\"NQUADS\"", firstPredicate(g, "contentTypeSyntax"));
+        assertEquals("\"" + RDFSyntax.NQUADS.name() + "\"", 
+                firstPredicate(g, "contentTypeSyntax"));
     }
 
     @Test
@@ -243,7 +246,8 @@ public class AbstractRDFParserTest {
         checkGraph(g);
         assertEquals("<http://www.example.net/test.ttl>", firstPredicate(g, "source"));
         assertEquals("<http://www.example.net/test.ttl>", firstPredicate(g, "base"));
-        assertEquals("\"TURTLE\"", firstPredicate(g, "contentTypeSyntax"));
+        assertEquals("\"" + RDFSyntax.TURTLE.name() + "\"", 
+                firstPredicate(g, "contentTypeSyntax"));
         assertEquals("\"text/turtle\"", firstPredicate(g, "contentType"));
     }
 


[05/12] commons-rdf git commit: COMMONSRDF-47: avoid giving impression of extension

Posted by st...@apache.org.
COMMONSRDF-47: avoid giving impression of extension

See https://github.com/apache/commons-rdf/pull/27#discussion_r95894599


Project: http://git-wip-us.apache.org/repos/asf/commons-rdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-rdf/commit/e39dc2f4
Tree: http://git-wip-us.apache.org/repos/asf/commons-rdf/tree/e39dc2f4
Diff: http://git-wip-us.apache.org/repos/asf/commons-rdf/diff/e39dc2f4

Branch: refs/heads/master
Commit: e39dc2f43fb6ca52b781bd3ef5d06877f58d05e6
Parents: c04864b
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Thu Feb 9 00:43:41 2017 +0000
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Thu Feb 9 00:43:41 2017 +0000

----------------------------------------------------------------------
 api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/e39dc2f4/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java b/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java
index 70048e1..3bd1249 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java
@@ -184,8 +184,7 @@ public interface RDFSyntax {
      * <code>text/turtle; charset=ascii</code>, only the part of the string to
      * before <code>;</code> is considered.
      * <p>
-     * The list of syntaxes supported is at least those returned by
-     * {@link #w3cSyntaxes()}.
+     * This method support all syntaxes returned by {@link #w3cSyntaxes()}.
      * 
      * @param mediaType
      *            The media type to match
@@ -207,8 +206,7 @@ public interface RDFSyntax {
      * might not be equal to the {@link RDFSyntax#fileExtension} of the returned
      * RDFSyntax.
      * <p>
-     * The list of syntaxes supported is at least those returned by
-     * {@link #w3cSyntaxes()}.
+     * This method support all syntaxes returned by {@link #w3cSyntaxes()}.
      * 
      * @param fileExtension
      *            The fileExtension to match, starting with <code>.</code>
@@ -226,8 +224,7 @@ public interface RDFSyntax {
     /**
      * Return the RDFSyntax with the specified {@link #name()}.
      * <p>
-     * The list of syntaxes supported is at least those returned by
-     * {@link #w3cSyntaxes()}
+     * This method support all syntaxes returned by {@link #w3cSyntaxes()}.
      * 
      * @param name
      *            The name to match, , e.g. <code>"JSONLD"</code>


[07/12] commons-rdf git commit: COMMONSRDF-47: Add RDFSyntax.iri()

Posted by st...@apache.org.
COMMONSRDF-47: Add RDFSyntax.iri()

as proposed by @ansell in
https://github.com/apache/commons-rdf/pull/27#discussion_r88350517


Project: http://git-wip-us.apache.org/repos/asf/commons-rdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-rdf/commit/81d5b320
Tree: http://git-wip-us.apache.org/repos/asf/commons-rdf/tree/81d5b320
Diff: http://git-wip-us.apache.org/repos/asf/commons-rdf/diff/81d5b320

Branch: refs/heads/master
Commit: 81d5b320b62e7165b178e0a34c5157105f57e4af
Parents: db17f1a
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Thu Feb 9 01:35:43 2017 +0000
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Thu Feb 9 01:35:43 2017 +0000

----------------------------------------------------------------------
 .../org/apache/commons/rdf/api/RDFSyntax.java   | 67 ++++++++++--------
 .../apache/commons/rdf/api/W3CRDFSyntax.java    | 73 +++++++++++++++++---
 2 files changed, 103 insertions(+), 37 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/81d5b320/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java b/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java
index 3bd1249..657fbc3 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java
@@ -106,8 +106,7 @@ public interface RDFSyntax {
     /**
      * A short name of the RDF Syntax e.g. <code>JSONLD</code>.
      * <p>
-     * The name is specific to Commons RDF and carries no particular meaning 
-     * except that it matches the constants like {@link #JSONLD}. 
+     * The name is specific to Commons RDF and carries no particular meaning. 
      * 
      * @return Short name for RDF syntax
      */
@@ -148,7 +147,43 @@ public interface RDFSyntax {
      * Datasets</a>.
      */
     public boolean supportsDataset();
-   
+
+    /**
+     * Return the {@link IRI} that <em>identifies</em> the RDF syntax.
+     * <p>
+     * Note that the identifying IRI is generally distinct from the IRI of the
+     * document that <em>specifies</em> the RDF syntax.
+     * 
+     * @return Identifying IRI, e.g.
+     *         <code>http://www.w3.org/ns/formats/JSON-LD</code>
+     */
+    public IRI iri();
+
+    /**
+     * Compare this RDFSyntax with another object.
+     * <p>
+     * Two {@link RDFSyntax}es are considered equal if their
+     * {@link #mediaType()}s are equal when compared as lower case strings
+     * according to {@link String#toLowerCase(Locale)} with the locale
+     * {@link Locale#ROOT}.
+     * 
+     * @param obj
+     * @return
+     */
+    @Override
+    boolean equals(Object obj);
+    
+    /**
+     * The hash code of an RDFSyntax is equivalent to the hash code 
+     * of the {@link #mediaType()} in lower case according to
+     * {@link String#toLowerCase(Locale)} with the locale
+     * {@link Locale#ROOT}. 
+     * 
+     * @return Hash code of RDFSyntax
+     */
+    @Override
+    int hashCode();
+    
     /**
      * Return the RDF 1.1 serialization syntaxes.
      * <p>
@@ -235,30 +270,6 @@ public interface RDFSyntax {
     public static Optional<RDFSyntax> byName(final String name) {
         return w3cSyntaxes().stream().filter(t -> t.name().equals(name)).findAny();
     }
-    
-    /**
-     * Compare this RDFSyntax with another object.
-     * <p>
-     * Two {@link RDFSyntax}es are considered equal if their
-     * {@link #mediaType()}s are equal when compared as lower case strings
-     * according to {@link String#toLowerCase(Locale)} with the locale
-     * {@link Locale#ROOT}.
-     * 
-     * @param obj
-     * @return
-     */
-    @Override
-    boolean equals(Object obj);
-    
-    /**
-     * The hash code of an RDFSyntax is equivalent to the hash code 
-     * of the {@link #mediaType()} in lower case according to
-     * {@link String#toLowerCase(Locale)} with the locale
-     * {@link Locale#ROOT}. 
-     * 
-     * @return Hash code of RDFSyntax
-     */
-    @Override
-    int hashCode();
+
 
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/81d5b320/api/src/main/java/org/apache/commons/rdf/api/W3CRDFSyntax.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/W3CRDFSyntax.java b/api/src/main/java/org/apache/commons/rdf/api/W3CRDFSyntax.java
index 4ddc6c2..82b6692 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/W3CRDFSyntax.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/W3CRDFSyntax.java
@@ -41,19 +41,66 @@ import java.util.Set;
  */
 final class W3CRDFSyntax implements RDFSyntax {
 
+    
+    /**
+     * IRI representing a <a href="https://www.w3.org/ns/formats/">W3C RDF
+     * format</a>.
+     */
+    private final static class FormatIRI implements IRI {
+        private static String BASE = "http://www.w3.org/ns/formats/";
+        private final String format;
+    
+        private FormatIRI(final String format) {
+            this.format = format;
+        }
+    
+        @Override
+        public String getIRIString() {
+            return BASE + format;
+        }
+    
+        @Override
+        public String ntriplesString() {
+            return "<" + getIRIString() + ">";
+        }
+    
+        @Override
+        public String toString() {
+            return ntriplesString();
+        }
+    
+        @Override
+        public boolean equals(final Object obj) {
+            if (this == obj) {
+                return true;
+            }
+            if (obj == null || !(obj instanceof IRI)) {
+                return false;
+            }
+            final IRI other = (IRI) obj;
+            return getIRIString().equals(other.getIRIString());
+        }
+    
+        @Override
+        public int hashCode() {
+            return getIRIString().hashCode();
+        }
+    }
+
+    
     static final RDFSyntax JSONLD, TURTLE, NQUADS, NTRIPLES, RDFA_HTML, RDFA_XHTML, RDFXML, TRIG;
     static final Set<RDFSyntax> syntaxes;
     
     static {
         // Initialize within static block to avoid inserting nulls
-        JSONLD = new W3CRDFSyntax("JSONLD", "JSON-LD 1.0", "application/ld+json", ".jsonld", true);
-        TURTLE = new W3CRDFSyntax("TURTLE", "RDF 1.1 Turtle", "text/turtle", ".ttl", false);
-        NQUADS = new W3CRDFSyntax("NQUADS", "RDF 1.1 N-Quads", "application/n-quads", ".nq", true);
-        NTRIPLES = new W3CRDFSyntax("NTRIPLES", "RDF 1.1 N-Triples", "application/n-triples", ".nt", false);
-        RDFA_HTML = new W3CRDFSyntax("RDFA_HTML", "HTML+RDFa 1.1", "text/html", ".html", false);
-        RDFA_XHTML = new W3CRDFSyntax("RDFA_XHTML", "XHTML+RDFa 1.1", "application/xhtml+xml", ".xhtml", false);
-        RDFXML = new W3CRDFSyntax("RDFXML", "RDF 1.1 XML Syntax", "application/rdf+xml", ".rdf", false);
-        TRIG = new W3CRDFSyntax("TRIG", "RDF 1.1 TriG", "application/trig", ".trig", true);
+        JSONLD = new W3CRDFSyntax("JSON-LD", "JSON-LD 1.0", "application/ld+json", ".jsonld", true);
+        TURTLE = new W3CRDFSyntax("Turtle", "RDF 1.1 Turtle", "text/turtle", ".ttl", false);
+        NQUADS = new W3CRDFSyntax("N-Quads", "RDF 1.1 N-Quads", "application/n-quads", ".nq", true);
+        NTRIPLES = new W3CRDFSyntax("N-Triples", "RDF 1.1 N-Triples", "application/n-triples", ".nt", false);
+        RDFA_HTML = new W3CRDFSyntax("RDFa", "HTML+RDFa 1.1", "text/html", ".html", false);
+        RDFA_XHTML = new W3CRDFSyntax("RDFa", "XHTML+RDFa 1.1", "application/xhtml+xml", ".xhtml", false);
+        RDFXML = new W3CRDFSyntax("RDF_XML", "RDF 1.1 XML Syntax", "application/rdf+xml", ".rdf", false);
+        TRIG = new W3CRDFSyntax("TriG", "RDF 1.1 TriG", "application/trig", ".trig", true);
 
         syntaxes = Collections.unmodifiableSet(new LinkedHashSet<>(
                 Arrays.asList(JSONLD, NQUADS, NTRIPLES, RDFA_HTML, RDFA_XHTML, RDFXML, TRIG, TURTLE)));
@@ -64,10 +111,12 @@ final class W3CRDFSyntax implements RDFSyntax {
     private final String mediaType;
 
     private final String fileExtension;
-
+    
     private final boolean supportsDataset;
 
     private final String name;
+    
+    private final IRI iri;
 
     private W3CRDFSyntax(String name, String title, String mediaType, String fileExtension, boolean supportsDataset) {
         this.name = name;
@@ -75,6 +124,7 @@ final class W3CRDFSyntax implements RDFSyntax {
         this.mediaType = mediaType.toLowerCase(Locale.ROOT);
         this.fileExtension = fileExtension.toLowerCase(Locale.ROOT);
         this.supportsDataset = supportsDataset;
+        this.iri = new FormatIRI(name);
     }
 
     /**
@@ -115,6 +165,11 @@ final class W3CRDFSyntax implements RDFSyntax {
     public String name() {
         return name;
     }
+    
+    @Override
+    public IRI iri() {
+        return iri;
+    }
 
     @Override
     public boolean equals(Object obj) {


[08/12] commons-rdf git commit: hard-coded scmPubUrl to avoid proper/commons-rdf-parent

Posted by st...@apache.org.
hard-coded scmPubUrl to avoid proper/commons-rdf-parent


Project: http://git-wip-us.apache.org/repos/asf/commons-rdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-rdf/commit/701e47ec
Tree: http://git-wip-us.apache.org/repos/asf/commons-rdf/tree/701e47ec
Diff: http://git-wip-us.apache.org/repos/asf/commons-rdf/diff/701e47ec

Branch: refs/heads/master
Commit: 701e47ec2ac8124434c9c2ef443352cc8558f050
Parents: 81d5b32
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Thu Feb 9 01:48:55 2017 +0000
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Thu Feb 9 01:48:55 2017 +0000

----------------------------------------------------------------------
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/701e47ec/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 6765b1f..300533c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -49,8 +49,8 @@
         <commons.jira.id>COMMONSRDF</commons.jira.id>
         <commons.jira.pid>12316620</commons.jira.pid>
         <commons.site.path>rdf</commons.site.path>
+	<commons.scmPubUrl>https://svn.apache.org/repos/infra/websites/production/commons/content/proper/commons-rdf/</commons.scmPubUrl>
 	<!--
-        <commons.scmPubUrl>https://svn.apache.org/repos/infra/websites/production/commonsrdf/content/</commons.scmPubUrl>
         <commons.scmPubCheckoutDirectory>${project.build.directory}/site-content</commons.scmPubCheckoutDirectory>
         -->
         <commons.javadoc.java.link>https://docs.oracle.com/javase/8/docs/api/</commons.javadoc.java.link>


[06/12] commons-rdf git commit: COMMONSRDF-47: RDFSyntax::byName returns an Optional

Posted by st...@apache.org.
COMMONSRDF-47: RDFSyntax::byName returns an Optional

Thanks to @acoburn!
https://github.com/apache/commons-rdf/pull/27#discussion_r95862649

Project: http://git-wip-us.apache.org/repos/asf/commons-rdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-rdf/commit/db17f1ac
Tree: http://git-wip-us.apache.org/repos/asf/commons-rdf/tree/db17f1ac
Diff: http://git-wip-us.apache.org/repos/asf/commons-rdf/diff/db17f1ac

Branch: refs/heads/master
Commit: db17f1ac73bc9ef7ad97123bcbe6184b499657e6
Parents: e39dc2f
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Thu Feb 9 00:57:00 2017 +0000
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Thu Feb 9 00:57:00 2017 +0000

----------------------------------------------------------------------
 api/src/test/java/org/apache/commons/rdf/api/RDFSyntaxTest.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/db17f1ac/api/src/test/java/org/apache/commons/rdf/api/RDFSyntaxTest.java
----------------------------------------------------------------------
diff --git a/api/src/test/java/org/apache/commons/rdf/api/RDFSyntaxTest.java b/api/src/test/java/org/apache/commons/rdf/api/RDFSyntaxTest.java
index edf68af..50b934f 100644
--- a/api/src/test/java/org/apache/commons/rdf/api/RDFSyntaxTest.java
+++ b/api/src/test/java/org/apache/commons/rdf/api/RDFSyntaxTest.java
@@ -116,7 +116,7 @@ public class RDFSyntaxTest {
 
     @Test
     public void valueOf() throws Exception {
-        assertEquals(RDFSyntax.TURTLE, RDFSyntax.byName("TURTLE"));
+        assertEquals(RDFSyntax.TURTLE, RDFSyntax.byName("TURTLE").get());
     }
     
 }