Added: websites/staging/commonsrdf/content/jacoco/org.apache.commons.rdf.api/Quad.java.html ============================================================================== --- websites/staging/commonsrdf/content/jacoco/org.apache.commons.rdf.api/Quad.java.html (added) +++ websites/staging/commonsrdf/content/jacoco/org.apache.commons.rdf.api/Quad.java.html Wed Nov 30 23:45:19 2016 @@ -0,0 +1,241 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Quad.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Commons RDF API</a> > <a href="index.source.html" class="el_package">org.apache.commons.rdf.api</a> > <span class="el_source">Quad.java</span> </div><h1>Quad.java</h1><pre class="source lang-java linenums">/** + * 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.Objects; +import java.util.Optional; + +/** + * A Quad is a statement in a + * <a href= "http://www.w3.org/TR/rdf11-concepts/#section-dataset" >RDF-1.1 + * Dataset</a>, as defined by <a href= + * "https://www.w3.org/TR/2014/NOTE-rdf11-datasets-20140225/#quad-semantics" + * >RDF-1.1 Concepts and Abstract Syntax</a>, a W3C Working Group Note published + * on 25 February 2014. + * <p> + * A <code>Quad</code> object in Commons RDF is considered + * <strong>immutable</strong>, that is, over its life time it will have + * consistent behaviour for its {@link #equals(Object)}, and the instances + * returned from {@link #getGraphName()}, {@link #getSubject()}, + * {@link #getPredicate()}, {@link #getObject()} and {@link #asTriple()} will + * have consistent {@link Object#equals(Object)} behaviour. + * <p> + * Note that <code>Quad</code> methods are not required to return object + * identical (<code>==</code>) instances as long as they are equivalent + * according to {@link Object#equals(Object)}. Specialisations of + * <code>Quad</code> may provide additional methods that are documented to be + * mutable. + * <p> + * <code>Quad</code> methods are <strong>thread-safe</strong>, however + * specialisations may provide additional methods that are documented to not be + * thread-safe. + * <p> + * <code>Quad</code>s can be safely used in hashing collections like + * {@link java.util.HashSet} and {@link java.util.HashMap}. + * <p> + * Any <code>Quad</code> can be used interchangeably across Commons RDF + * implementations. + * + * @since 0.3.0-incubating + * @see Dataset + * @see RDF#createQuad(BlankNodeOrIRI,BlankNodeOrIRI,IRI,RDFTerm) + * @see <a href="http://www.w3.org/TR/2014/NOTE-rdf11-datasets-20140225/">RDF + * 1.1: On Semantics of RDF Datasets</a> + * @see <a href="http://www.w3.org/TR/rdf11-concepts/#section-dataset"> </a> + */ +public interface Quad extends QuadLike<BlankNodeOrIRI> { + + /** + * The graph name (graph label) of this quad, if present. + * + * If {@link Optional#isPresent()}, then the {@link Optional#get()} is + * either a {@link BlankNode} or an {@link IRI}, indicating the + * <a href="https://www.w3.org/TR/rdf11-concepts/#dfn-named-graph">graph + * name</a> of this Quad. If the graph name is not present, e.g. the value + * is {@link Optional#empty()}, it indicates that this Quad is in the + * <a href="https://www.w3.org/TR/rdf11-concepts/#dfn-default-graph">default + * graph</a>. + * + * @return If {@link Optional#isPresent()}, the graph name + * {@link BlankNodeOrIRI} of this quad, otherwise + * {@link Optional#empty()}, indicating the default graph. + * + * @see <a href="https://www.w3.org/TR/rdf11-concepts/#dfn-rdf-dataset">RDF- + * 1.1 Dataset</a> + */ + @Override + Optional<BlankNodeOrIRI> getGraphName(); + + /** + * The subject of this quad, which may be either a {@link BlankNode} or an + * {@link IRI}, which are represented in Commons RDF by the interface + * {@link BlankNodeOrIRI}. + * + * @return The subject {@link BlankNodeOrIRI} of this quad. + * @see <a href="http://www.w3.org/TR/rdf11-concepts/#dfn-subject">RDF-1.1 + * Triple subject</a> + */ + @Override + BlankNodeOrIRI getSubject(); + + /** + * The predicate {@link IRI} of this quad. + * + * @return The predicate {@link IRI} of this quad. + * @see <a href="http://www.w3.org/TR/rdf11-concepts/#dfn-predicate">RDF-1.1 + * Triple predicate</a> + */ + @Override + IRI getPredicate(); + + /** + * The object of this quad, which may be either a {@link BlankNode}, an + * {@link IRI}, or a {@link Literal}, which are represented in Commons RDF + * by the interface {@link RDFTerm}. + * + * @return The object {@link RDFTerm} of this quad. + * @see <a href="http://www.w3.org/TR/rdf11-concepts/#dfn-object">RDF-1.1 + * Triple object</a> + */ + @Override + RDFTerm getObject(); + + /** + * Adapt this Quad to a Triple. + * <p> + * The returned {@link Triple} will have equivalent values returned from the + * methods {@link TripleLike#getSubject()}, + * {@link TripleLike#getPredicate()} and {@link TripleLike#getObject()}. + * <p> + * The returned {@link Triple} MUST NOT be {@link #equals(Object)} to this + * {@link Quad}, even if this quad has a default graph + * {@link #getGraphName()} value of {@link Optional#empty()}, but MUST + * follow the {@link Triple#equals(Object)} semantics. This means that the + * following MUST be true: + * + * <pre> + * Quad q1, q2; + * if (q1.equals(q2)) { + * assert (q1.asTriple().equals(q2.asTriple())); + * } else if (q1.asTriple().equals(q2.asTriple())) { + * assert (q1.getSubject().equals(q2.getSubject())); + * assert (q1.getPredicate().equals(q2.getPredicate())); + * assert (q1.getObject().equals(q2.getObject())); + * assert (!q1.getGraphName().equals(q2.getGraphName())); + * } + * </pre> + * + * The <code>default</code> implementation of this method return a proxy + * {@link Triple} instance that keeps a reference to this {@link Quad} to + * call the underlying {@link TripleLike} methods, but supplies a + * {@link Triple} compatible implementation of {@link Triple#equals(Object)} + * and {@link Triple#hashCode()}. Implementations may override this method, + * e.g. for a more efficient solution. + * + * @return A {@link Triple} that contains the same {@link TripleLike} + * properties as this Quad. + */ + default Triple asTriple() { +<span class="fc" id="L154"> return new Triple() {</span> + @Override + public BlankNodeOrIRI getSubject() { +<span class="fc" id="L157"> return Quad.this.getSubject();</span> + } + + @Override + public IRI getPredicate() { +<span class="fc" id="L162"> return Quad.this.getPredicate();</span> + } + + @Override + public RDFTerm getObject() { +<span class="fc" id="L167"> return Quad.this.getObject();</span> + } + + @Override + public boolean equals(final Object obj) { +<span class="fc bfc" id="L172" title="All 2 branches covered."> if (obj == this) {</span> +<span class="fc" id="L173"> return true;</span> + } +<span class="fc bfc" id="L175" title="All 2 branches covered."> if (!(obj instanceof Triple)) {</span> +<span class="fc" id="L176"> return false;</span> + } +<span class="fc" id="L178"> final Triple other = (Triple) obj;</span> +<span class="pc bpc" id="L179" title="1 of 2 branches missed."> return Objects.equals(getSubject(), other.getSubject())</span> +<span class="pc bpc" id="L180" title="1 of 2 branches missed."> && Objects.equals(getPredicate(), other.getPredicate())</span> +<span class="pc bpc" id="L181" title="1 of 2 branches missed."> && Objects.equals(getObject(), other.getObject());</span> + } + + @Override + public int hashCode() { +<span class="fc" id="L186"> return Objects.hash(getSubject(), getPredicate(), getObject());</span> + } + }; + } + + /** + * Check it this Quad is equal to another Quad. + * <p> + * Two Quads are equal if and only if their {@link #getGraphName()}, + * {@link #getSubject()}, {@link #getPredicate()} and {@link #getObject()} + * are equal. + * </p> + * <p> + * Implementations MUST also override {@link #hashCode()} so that two equal + * Quads produce the same hash code. + * </p> + * <p> + * Note that a {@link Quad} MUST NOT be equal to a {@link Triple}, even if + * this Quad's {@link #getGraphName()} is {@link Optional#empty()}. To test + * triple-like equivalence, callers can use: + * </p> + * + * <pre> + * Quad q1; + * Triple t2; + * q1.asTriple().equals(t2)); + * </pre> + * + * @param other + * Another object + * @return true if other is a Quad and is equal to this + * @see Object#equals(Object) + */ + @Override + public boolean equals(Object other); + + /** + * Calculate a hash code for this Quad. + * <p> + * The returned hash code MUST be equal to the result of + * {@link Objects#hash(Object...)} with the arguments {@link #getSubject()}, + * {@link #getPredicate()}, {@link #getObject()}, {@link #getGraphName()}. + * <p> + * This method MUST be implemented in conjunction with + * {@link #equals(Object)} so that two equal {@link Quad}s produce the same + * hash code. + * + * @return a hash code value for this Quad. + * @see Object#hashCode() + * @see Objects#hash(Object...) + */ + @Override + public int hashCode(); + +} +</pre><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.7.201606060606</span></div></body></html> \ No newline at end of file
Added: websites/staging/commonsrdf/content/jacoco/org.apache.commons.rdf.api/RDFSyntax.html ============================================================================== --- websites/staging/commonsrdf/content/jacoco/org.apache.commons.rdf.api/RDFSyntax.html (added) +++ websites/staging/commonsrdf/content/jacoco/org.apache.commons.rdf.api/RDFSyntax.html Wed Nov 30 23:45:19 2016 @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>RDFSyntax</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Commons RDF API</a> > <a href="index.html" class="el_package">org.apache.commons.rdf.api</a> > <span class="el_class">RDFSyntax</span></div><h1>RDFSyntax</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class ="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 182</td><td class="ctr2">100%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">0</td><td class="ctr2">9</td><td class="ctr1">0< /td><td class="ctr2">20</td><td class="ctr1">0</td><td class="ctr2">9</td></tr></tfoot><tbody><tr><td id="a5"><a href="RDFSyntax.java.html#L37" class="el_method">static {...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="116" alt="116"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i0">9</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a4"><a href="RDFSyntax.java.html#L144" class="el_method">RDFSyntax(String, int, String, String, String, boolean)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="17" height="10" title="17" alt="17"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td cla ss="ctr1" id="h1">0</td><td class="ctr2" id="i1">6</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a href="RDFSyntax.java.html#L171" class="el_method">byMediaType(String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="16" height="10" title="16" alt="16"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">2</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a0"><a href="RDFSyntax.java.html#L190" class="el_method">byFileExtension(String)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" width="11" height="10" title="11" alt="11"/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">0</td><td class="ctr2" id="g3">1</td><td cl ass="ctr1" id="h3">0</td><td class="ctr2" id="i3">2</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a7"><a href="RDFSyntax.java.html#L37" class="el_method">valueOf(String)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/greenbar.gif" width="5" height="10" title="5" alt="5"/></td><td class="ctr2" id="c4">100%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">0</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">0</td><td class="ctr2" id="i4">1</td><td class="ctr1" id="j4">0</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a2"><a href="RDFSyntax.java.html#L191" class="el_method">lambda$byFileExtension$1(String, RDFSyntax)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/greenbar.gif" width="5" height="10" title="5" alt="5"/></td><td class="ctr2" id="c5">100%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">0</td><td class="ctr2" id="g5">1< /td><td class="ctr1" id="h5">0</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j5">0</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a3"><a href="RDFSyntax.java.html#L172" class="el_method">lambda$byMediaType$0(String, RDFSyntax)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/greenbar.gif" width="5" height="10" title="5" alt="5"/></td><td class="ctr2" id="c6">100%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">0</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">0</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j6">0</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a8"><a href="RDFSyntax.java.html#L37" class="el_method">values()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/greenbar.gif" width="4" height="10" title="4" alt="4"/></td><td class="ctr2" id="c7">100%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">0</td><td class="ctr2" id="g7">1</ td><td class="ctr1" id="h7">0</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j7">0</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a6"><a href="RDFSyntax.java.html#L141" class="el_method">toString()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/greenbar.gif" width="3" height="10" title="3" alt="3"/></td><td class="ctr2" id="c8">100%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">0</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">0</td><td class="ctr2" id="i8">1</td><td class="ctr1" id="j8">0</td><td class="ctr2" id="k8">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.7.201606060606</span></div></body></html> \ No newline at end of file Added: websites/staging/commonsrdf/content/jacoco/org.apache.commons.rdf.api/RDFSyntax.java.html ============================================================================== --- websites/staging/commonsrdf/content/jacoco/org.apache.commons.rdf.api/RDFSyntax.java.html (added) +++ websites/staging/commonsrdf/content/jacoco/org.apache.commons.rdf.api/RDFSyntax.java.html Wed Nov 30 23:45:19 2016 @@ -0,0 +1,195 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>RDFSyntax.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Commons RDF API</a> > <a href="index.source.html" class="el_package">org.apache.commons.rdf.api</a> > <span class="el_source">RDFSyntax.j ava</span></div><h1>RDFSyntax.java</h1><pre class="source lang-java linenums">/** + * 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.Locale; +import java.util.Optional; + +/** + * 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 + */ +<span class="fc" id="L37">public enum RDFSyntax {</span> + + /** + * JSON-LD 1.0 + * + * @see <a href= + * "https://www.w3.org/TR/json-ld/">https://www.w3.org/TR/json-ld/</a> + * + */ +<span class="fc" id="L46"> JSONLD("JSON-LD 1.0", "application/ld+json", ".jsonld", true),</span> + + /** + * RDF 1.1 Turtle + * + * @see <a href= + * "https://www.w3.org/TR/turtle/">https://www.w3.org/TR/turtle/</a> + * + */ +<span class="fc" id="L55"> TURTLE("RDF 1.1 Turtle", "text/turtle", ".ttl", false),</span> + + /** + * RDF 1.1 N-Quads + * + * @see <a href= + * "https://www.w3.org/TR/n-quads/">https://www.w3.org/TR/n-quads/</a> + */ +<span class="fc" id="L63"> NQUADS("RDF 1.1 N-Quads", "application/n-quads", ".nq", true),</span> + + /** + * RDF 1.1 N-Triples + * + * @see <a href= + * "https://www.w3.org/TR/n-triples/">https://www.w3.org/TR/n-triples/</a> + */ +<span class="fc" id="L71"> NTRIPLES("RDF 1.1 N-Triples", "application/n-triples", ".nt", false),</span> + + /** + * HTML+RDFa 1.1 + * + * @see <a href= + * "https://www.w3.org/TR/html-rdfa/">https://www.w3.org/TR/html-rdfa/</a> + */ +<span class="fc" id="L79"> RDFA_HTML("HTML+RDFa 1.1", "text/html", ".html", false),</span> + + /** + * XHTML+RDFa 1.1 + * + * @see <a href= + * "https://www.w3.org/TR/xhtml-rdfa/">https://www.w3.org/TR/xhtml-rdfa/</a> + */ +<span class="fc" id="L87"> RDFA_XHTML("XHTML+RDFa 1.1", "application/xhtml+xml", ".xhtml", false),</span> + + /** + * 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> + */ +<span class="fc" id="L95"> RDFXML("RDF 1.1 XML Syntax", "application/rdf+xml", ".rdf", false),</span> + + /** + * RDF 1.1 TriG + * + * @see <a href= + * "https://www.w3.org/TR/trig/">https://www.w3.org/TR/trig/</a> + */ +<span class="fc" id="L103"> TRIG("RDF 1.1 TriG", "application/trig", ".trig", true);</span> + + /** + * 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 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> + */ + public final String fileExtension; + + /** + * Indicate if this RDF syntax supports + * <a href="https://www.w3.org/TR/rdf11-concepts/#section-dataset">RDF + * Datasets</a>. + */ + public final boolean supportsDataset; + + private final String name; + + /** + * 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() { +<span class="fc" id="L141"> return name;</span> + } + +<span class="fc" id="L144"> private RDFSyntax(final String name, final String mediaType, final String fileExtension, final boolean supportsDataset) {</span> +<span class="fc" id="L145"> this.name = name;</span> +<span class="fc" id="L146"> this.mediaType = mediaType;</span> +<span class="fc" id="L147"> this.fileExtension = fileExtension;</span> +<span class="fc" id="L148"> this.supportsDataset = supportsDataset;</span> +<span class="fc" id="L149"> }</span> + + /** + * 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(final String mediaType) { +<span class="fc" id="L171"> final String type = mediaType.toLowerCase(Locale.ENGLISH).split("\\s*[;,]", 2)[0];</span> +<span class="fc" id="L172"> return Arrays.stream(RDFSyntax.values()).filter(t -> t.mediaType.equals(type)).findAny();</span> + } + + /** + * 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(final String fileExtension) { +<span class="fc" id="L190"> final String ext = fileExtension.toLowerCase(Locale.ENGLISH);</span> +<span class="fc" id="L191"> return Arrays.stream(RDFSyntax.values()).filter(t -> t.fileExtension.equals(ext)).findAny();</span> + } + +} +</pre><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.7.201606060606</span></div></body></html> \ No newline at end of file Added: websites/staging/commonsrdf/content/jacoco/org.apache.commons.rdf.api/RDFTermFactory.html ============================================================================== --- websites/staging/commonsrdf/content/jacoco/org.apache.commons.rdf.api/RDFTermFactory.html (added) +++ websites/staging/commonsrdf/content/jacoco/org.apache.commons.rdf.api/RDFTermFactory.html Wed Nov 30 23:45:19 2016 @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>RDFTermFactory</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Commons RDF API</a> > <a href="index.html" class="el_package">org.apache.commons.rdf.api</a> > <span class="el_class">RDFTermFactory</span></div><h1>RDFTermFactory</h1><table class="coverage" cellspacing="0" id="coveragetable"><thea d><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 40</td><td class="ctr2">100%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">0</td><td class="ctr2">8</td><td c lass="ctr1">0</td><td class="ctr2">8</td><td class="ctr1">0</td><td class="ctr2">8</td></tr></tfoot><tbody><tr><td id="a0"><a href="RDFTermFactory.java.html#L32" class="el_method">createBlankNode()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="5" alt="5"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="RDFTermFactory.java.html#L36" class="el_method">createBlankNode(String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="5" alt="5"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="RDFTermFactory.java.html#L40" class="el_method">createGraph()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="5" alt="5"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a3"><a href="RDFTermFactory.java.html#L44" class="el_method">createIRI(String)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="5" alt="5"/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">0</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h 3">0</td><td class="ctr2" id="i3">1</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a4"><a href="RDFTermFactory.java.html#L48" class="el_method">createLiteral(String)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="5" alt="5"/></td><td class="ctr2" id="c4">100%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">0</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">0</td><td class="ctr2" id="i4">1</td><td class="ctr1" id="j4">0</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a5"><a href="RDFTermFactory.java.html#L53" class="el_method">createLiteral(String, IRI)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="5" alt="5"/></td><td class="ctr2" id="c5">100%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">0</td><td class="ctr2" id="g5">1</td><td class= "ctr1" id="h5">0</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j5">0</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a6"><a href="RDFTermFactory.java.html#L58" class="el_method">createLiteral(String, String)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="5" alt="5"/></td><td class="ctr2" id="c6">100%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">0</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">0</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j6">0</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a7"><a href="RDFTermFactory.java.html#L63" class="el_method">createTriple(BlankNodeOrIRI, IRI, RDFTerm)</a></td><td class="bar" id="b7"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="5" alt="5"/></td><td class="ctr2" id="c7">100%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">0</td><td c lass="ctr2" id="g7">1</td><td class="ctr1" id="h7">0</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j7">0</td><td class="ctr2" id="k7">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.7.201606060606</span></div></body></html> \ No newline at end of file Added: websites/staging/commonsrdf/content/jacoco/org.apache.commons.rdf.api/RDFTermFactory.java.html ============================================================================== --- websites/staging/commonsrdf/content/jacoco/org.apache.commons.rdf.api/RDFTermFactory.java.html (added) +++ websites/staging/commonsrdf/content/jacoco/org.apache.commons.rdf.api/RDFTermFactory.java.html Wed Nov 30 23:45:19 2016 @@ -0,0 +1,67 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>RDFTermFactory.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Commons RDF API</a> > <a href="index.source.html" class="el_package">org.apache.commons.rdf.api</a> > <span class="el_source">RDFTer mFactory.java</span></div><h1>RDFTermFactory.java</h1><pre class="source lang-java linenums">/** + * 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; + +/** + * Factory for creating RDFTerm instances.. + * <p> + * This interface is <strong>deprecated</strong> in favour of the richer + * {@link RDF}. + * + * @see RDF + */ +@Deprecated +public interface RDFTermFactory { + + default BlankNode createBlankNode() throws UnsupportedOperationException { +<span class="fc" id="L32"> throw new UnsupportedOperationException("createBlankNode() not supported");</span> + } + + default BlankNode createBlankNode(final String name) throws UnsupportedOperationException { +<span class="fc" id="L36"> throw new UnsupportedOperationException("createBlankNode(String) not supported");</span> + } + + default Graph createGraph() throws UnsupportedOperationException { +<span class="fc" id="L40"> throw new UnsupportedOperationException("createGraph() not supported");</span> + } + + default IRI createIRI(final String iri) throws IllegalArgumentException, UnsupportedOperationException { +<span class="fc" id="L44"> throw new UnsupportedOperationException("createIRI(String) not supported");</span> + } + + default Literal createLiteral(final String lexicalForm) throws IllegalArgumentException, UnsupportedOperationException { +<span class="fc" id="L48"> throw new UnsupportedOperationException("createLiteral(String) not supported");</span> + } + + default Literal createLiteral(final String lexicalForm, final IRI dataType) + throws IllegalArgumentException, UnsupportedOperationException { +<span class="fc" id="L53"> throw new UnsupportedOperationException("createLiteral(String) not supported");</span> + } + + default Literal createLiteral(final String lexicalForm, final String languageTag) + throws IllegalArgumentException, UnsupportedOperationException { +<span class="fc" id="L58"> throw new UnsupportedOperationException("createLiteral(String,String) not supported");</span> + } + + default Triple createTriple(final BlankNodeOrIRI subject, final IRI predicate, final RDFTerm object) + throws IllegalArgumentException, UnsupportedOperationException { +<span class="fc" id="L63"> throw new UnsupportedOperationException("createTriple(BlankNodeOrIRI,IRI,RDFTerm) not supported");</span> + } + +} +</pre><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.7.201606060606</span></div></body></html> \ No newline at end of file Added: websites/staging/commonsrdf/content/jacoco/org.apache.commons.rdf.api/index.html ============================================================================== --- websites/staging/commonsrdf/content/jacoco/org.apache.commons.rdf.api/index.html (added) +++ websites/staging/commonsrdf/content/jacoco/org.apache.commons.rdf.api/index.html Wed Nov 30 23:45:19 2016 @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>org.apache.commons.rdf.api</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Commons RDF API</a> > <span class="el_package">org.apache.commons.rdf.api</span></div><h1>org.apache.commons.rdf.api</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thea d><tfoot><tr><td>Total</td><td class="bar">1 of 345</td><td class="ctr2">100%</td><td class="bar">3 of 10</td><td class="ctr2">70%</td><td class="ctr1">3</td><td class="ctr2">37</td><td class="ctr1">0</td><td class="ctr2">49</td><td class="ctr1">0</td><td class="ctr2">32</td><td class="ctr1">0</td><td class="ctr2">6</td></tr></tfoot><tbody><tr><td id="a3"><a href="Quad$1.html" class="el_class">Quad.new Triple() {...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="46" height="10" title="71" alt="71"/></td><td class="ctr2" id="c5">99%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="36" height="10" title="3" alt="3"/><img src="../jacoco-resources/greenbar.gif" width="84" height="10" title="7" alt="7"/></td><td class="ctr2" id="e0">70%</td><td class="ctr1" id="f0">3</td><td class="ctr2" id="g0">11</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i1">13</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k2">6</t d><td class="ctr1" id="l0">0</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a4"><a href="RDFSyntax.html" class="el_class">RDFSyntax</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="182" alt="182"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">9</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i0">20</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k0">9</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a5"><a href="RDFTermFactory.html" class="el_class">RDFTermFactory</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="26" height="10" title="40" alt="40"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">8</td><td class="ctr1" id="h2">0</t d><td class="ctr2" id="i2">8</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k1">8</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a1"><a href="Graph.html" class="el_class">Graph</a></td><td class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" width="17" height="10" title="27" alt="27"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">0</td><td class="ctr2" id="g3">5</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i3">5</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">5</td><td class="ctr1" id="l3">0</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a0"><a href="Dataset.html" class="el_class">Dataset</a></td><td class="bar" id="b4"><img src="../jacoco-resources/greenbar.gif" width="12" height="10" title="19" alt="19"/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4" >0</td><td class="ctr2" id="g4">3</td><td class="ctr1" id="h4">0</td><td >class="ctr2" id="i4">3</td><td class="ctr1" id="j4">0</td><td class="ctr2" >id="k4">3</td><td class="ctr1" id="l4">0</td><td class="ctr2" >id="m4">1</td></tr><tr><td id="a2"><a href="Quad.html" >class="el_class">Quad</a></td><td class="bar" id="b5"><img >src="../jacoco-resources/greenbar.gif" width="3" height="10" title="5" >alt="5"/></td><td class="ctr2" id="c4">100%</td><td class="bar" id="d5"/><td >class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">0</td><td class="ctr2" >id="g5">1</td><td class="ctr1" id="h5">0</td><td class="ctr2" >id="i5">1</td><td class="ctr1" id="j5">0</td><td class="ctr2" >id="k5">1</td><td class="ctr1" id="l5">0</td><td class="ctr2" >id="m5">1</td></tr></tbody></table><div class="footer"><span >class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> >0.7.7.201606060606</span></div></body></html> \ No newline at end of file Added: websites/staging/commonsrdf/content/jacoco/org.apache.commons.rdf.api/index.source.html ============================================================================== --- websites/staging/commonsrdf/content/jacoco/org.apache.commons.rdf.api/index.source.html (added) +++ websites/staging/commonsrdf/content/jacoco/org.apache.commons.rdf.api/index.source.html Wed Nov 30 23:45:19 2016 @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>org.apache.commons.rdf.api</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Commons RDF API</a> > <span class="el_package">org.apache.commons.rdf.api</span></div><h1>org.apache.commons.rdf.api</h1><table class="coverage" cellspacing= "0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr> <td>Total</td><td class="bar">1 of 345</td><td class="ctr2">100%</td><td class="bar">3 of 10</td><td class="ctr2">70%</td><td class="ctr1">3</td><td class="ctr2">37</td><td class="ctr1">0</td><td class="ctr2">49</td><td class="ctr1">0</td><td class="ctr2">32</td><td class="ctr1">0</td><td class="ctr2">6</td></tr></tfoot><tbody><tr><td id="a2"><a href="Quad.java.html" class="el_source">Quad.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="50" height="10" title="76" alt="76"/></td><td class="ctr2" id="c4">99%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="36" height="10" title="3" alt="3"/><img src="../jacoco-resources/greenbar.gif" width="84" height="10" title="7" alt="7"/></td><td class="ctr2" id="e0">70%</td><td class="ctr1" id="f0">3</td><td class="ctr2" id="g0">12</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i1">13</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k2">7</td><td class="ctr1" id=" l0">0</td><td class="ctr2" id="m0">2</td></tr><tr><td id="a3"><a href="RDFSyntax.java.html" class="el_source">RDFSyntax.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="182" alt="182"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">9</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i0">20</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k0">9</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a4"><a href="RDFTermFactory.java.html" class="el_source">RDFTermFactory.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="26" height="10" title="40" alt="40"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">8</td><td class="ctr1" id="h2">0</td ><td class="ctr2" id="i2">8</td><td class="ctr1" id="j2">0</td><td >class="ctr2" id="k1">8</td><td class="ctr1" id="l2">0</td><td class="ctr2" >id="m2">1</td></tr><tr><td id="a1"><a href="Graph.java.html" >class="el_source">Graph.java</a></td><td class="bar" id="b3"><img >src="../jacoco-resources/greenbar.gif" width="17" height="10" title="27" >alt="27"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d3"/><td >class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">0</td><td class="ctr2" >id="g3">5</td><td class="ctr1" id="h3">0</td><td class="ctr2" >id="i3">5</td><td class="ctr1" id="j3">0</td><td class="ctr2" >id="k3">5</td><td class="ctr1" id="l3">0</td><td class="ctr2" >id="m3">1</td></tr><tr><td id="a0"><a href="Dataset.java.html" >class="el_source">Dataset.java</a></td><td class="bar" id="b4"><img >src="../jacoco-resources/greenbar.gif" width="12" height="10" title="19" >alt="19"/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d4"/><td >class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">0</td><td class="ctr2" id="g4">3</td><td class="ctr1" id="h4">0</td><td class="ctr2" id="i4">3</td><td class="ctr1" id="j4">0</td><td class="ctr2" id="k4">3</td><td class="ctr1" id="l4">0</td><td class="ctr2" id="m4">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.7.201606060606</span></div></body></html> \ No newline at end of file Added: websites/staging/commonsrdf/content/jacoco/org.apache.commons.rdf.experimental/RDFParser.html ============================================================================== --- websites/staging/commonsrdf/content/jacoco/org.apache.commons.rdf.experimental/RDFParser.html (added) +++ websites/staging/commonsrdf/content/jacoco/org.apache.commons.rdf.experimental/RDFParser.html Wed Nov 30 23:45:19 2016 @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>RDFParser</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Commons RDF API</a> > <a href="index.html" class="el_package">org.apache.commons.rdf.experimental</a> > <span class="el_class">RDFParser</span></div><h1>RDFParser</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr> <td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">22 of 22</td><td class="ctr2">0%</td><td class="bar">2 of 2</td><td class="ctr2">0%</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ct r1">5</td><td class="ctr2">5</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a0"><a href="RDFParser.java.html#L194" class="el_method">lambda$target$0(Graph, Quad)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="9" alt="9"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">2</td><td class="ctr2" id="g0">2</td><td class="ctr1" id="h0">3</td><td class="ctr2" id="i0">3</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="RDFParser.java.html#L223" class="el_method">target(Dataset)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="106" height="10" title="8" alt="8"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="c tr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="RDFParser.java.html#L193" class="el_method">target(Graph)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="66" height="10" title="5" alt="5"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.7.201606060606</span></div></body></html> \ No newline at end of file Added: websites/staging/commonsrdf/content/jacoco/org.apache.commons.rdf.experimental/RDFParser.java.html ============================================================================== --- websites/staging/commonsrdf/content/jacoco/org.apache.commons.rdf.experimental/RDFParser.java.html (added) +++ websites/staging/commonsrdf/content/jacoco/org.apache.commons.rdf.experimental/RDFParser.java.html Wed Nov 30 23:45:19 2016 @@ -0,0 +1,486 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>RDFParser.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Commons RDF API</a> > <a href="index.source.html" class="el_package">org.apache.commons.rdf.experimental</a> > <span class="el_source">RD FParser.java</span></div><h1>RDFParser.java</h1><pre class="source lang-java linenums">/** + * 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.experimental; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.charset.StandardCharsets; +import java.nio.file.Path; +import java.util.Optional; +import java.util.concurrent.Future; +import java.util.function.Consumer; + +import org.apache.commons.rdf.api.BlankNode; +import org.apache.commons.rdf.api.Dataset; +import org.apache.commons.rdf.api.Graph; +import org.apache.commons.rdf.api.IRI; +import org.apache.commons.rdf.api.Quad; +import org.apache.commons.rdf.api.RDFSyntax; +import org.apache.commons.rdf.api.RDFTerm; +import org.apache.commons.rdf.api.RDF; +import org.apache.commons.rdf.api.Triple; + +/** + * Parse an RDF source into a target (e.g. a Graph/Dataset). + * <h2>Experimental</h2> This interface (and its implementations) should be + * considered <strong>at risk</strong>; they might change or be removed in the + * next minor update of Commons RDF. It may move to the the + * {@link org.apache.commons.rdf.api} package when it has stabilized. + * <h2>Description</h2> + * <p> + * This interface follows the + * <a href="https://en.wikipedia.org/wiki/Builder_pattern">Builder pattern</a>, + * allowing to set parser settings like {@link #contentType(RDFSyntax)} and + * {@link #base(IRI)}. A caller MUST call one of the <code>source</code> methods + * (e.g. {@link #source(IRI)}, {@link #source(Path)}, + * {@link #source(InputStream)}), and MUST call one of the <code>target</code> + * methods (e.g. {@link #target(Consumer)}, {@link #target(Dataset)}, + * {@link #target(Graph)}) before calling {@link #parse()} on the returned + * RDFParser - however methods can be called in any order. + * <p> + * The call to {@link #parse()} returns a {@link Future}, allowing asynchronous + * parse operations. Callers are recommended to check {@link Future#get()} to + * ensure parsing completed successfully, or catch exceptions thrown during + * parsing. + * <p> + * Setting a method that has already been set will override any existing value + * in the returned builder - regardless of the parameter type (e.g. + * {@link #source(IRI)} will override a previous {@link #source(Path)}. Settings + * can be unset by passing <code>null</code> - note that this may require + * casting, e.g. <code>contentType( (RDFSyntax) null )</code> to undo a previous + * call to {@link #contentType(RDFSyntax)}. + * <p> + * It is undefined if a RDFParser is mutable or thread-safe, so callers should + * always use the returned modified RDFParser from the builder methods. The + * builder may return itself after modification, or a cloned builder with the + * modified settings applied. Implementations are however encouraged to be + * immutable, thread-safe and document this. As an example starting point, see + * <code>org.apache.commons.rdf.simple.AbstractRDFParser</code>. + * <p> + * Example usage: + * </p> + * + * <pre> + * Graph g1 = rDFTermFactory.createGraph(); + * new ExampleRDFParserBuilder().source(Paths.get("/tmp/graph.ttl")).contentType(RDFSyntax.TURTLE).target(g1).parse() + * .get(30, TimeUnit.Seconds); + * </pre> + * + */ +public interface RDFParser { + + /** + * The result of {@link RDFParser#parse()} indicating parsing completed. + * <p> + * This is a marker interface that may be subclassed to include parser + * details, e.g. warning messages or triple counts. + */ + public interface ParseResult { + } + + /** + * Specify which {@link RDF} to use for generating {@link RDFTerm}s. + * <p> + * This option may be used together with {@link #target(Graph)} to override + * the implementation's default factory and graph. + * <p> + * <strong>Warning:</strong> Using the same {@link RDF} for multiple + * {@link #parse()} calls may accidentally merge {@link BlankNode}s having + * the same label, as the parser may use the + * {@link RDF#createBlankNode(String)} method from the parsed blank node + * labels. + * + * @see #target(Graph) + * @param rdfTermFactory + * {@link RDF} to use for generating RDFTerms. + * @return An {@link RDFParser} that will use the specified rdfTermFactory + */ + RDFParser rdfTermFactory(RDF rdfTermFactory); + + /** + * Specify the content type of the RDF syntax to parse. + * <p> + * This option can be used to select the RDFSyntax of the source, overriding + * any <code>Content-Type</code> headers or equivalent. + * <p> + * The character set of the RDFSyntax is assumed to be + * {@link StandardCharsets#UTF_8} unless overridden within the document + * (e.g. {@code <?xml version="1.0" encoding="iso-8859-1"?>} in + * {@link RDFSyntax#RDFXML}). + * <p> + * This method will override any contentType set with + * {@link #contentType(String)}. + * + * @see #contentType(String) + * @param rdfSyntax + * An {@link RDFSyntax} to parse the source according to, e.g. + * {@link RDFSyntax#TURTLE}. + * @throws IllegalArgumentException + * If this RDFParser does not support the specified RDFSyntax. + * @return An {@link RDFParser} that will use the specified content type. + */ + RDFParser contentType(RDFSyntax rdfSyntax) throws IllegalArgumentException; + + /** + * Specify the content type of the RDF syntax to parse. + * <p> + * This option can be used to select the RDFSyntax of the source, overriding + * any <code>Content-Type</code> headers or equivalent. + * <p> + * The content type MAY include a <code>charset</code> parameter if the RDF + * media types permit it; the default charset is + * {@link StandardCharsets#UTF_8} unless overridden within the document. + * <p> + * This method will override any contentType set with + * {@link #contentType(RDFSyntax)}. + * + * @see #contentType(RDFSyntax) + * @param contentType + * A content-type string, e.g. <code>application/ld+json</code> + * or <code>text/turtle;charset="UTF-8"</code> as specified by + * <a href="https://tools.ietf.org/html/rfc7231#section-3.1.1.1"> + * RFC7231</a>. + * @return An {@link RDFParser} that will use the specified content type. + * @throws IllegalArgumentException + * If the contentType has an invalid syntax, or this RDFParser + * does not support the specified contentType. + */ + RDFParser contentType(String contentType) throws IllegalArgumentException; + + /** + * Specify a {@link Graph} to add parsed triples to. + * <p> + * If the source supports datasets (e.g. the {@link #contentType(RDFSyntax)} + * set has {@link RDFSyntax#supportsDataset} is true)), then only quads in + * the <em>default graph</em> will be added to the Graph as {@link Triple}s. + * <p> + * It is undefined if any triples are added to the specified {@link Graph} + * if {@link #parse()} throws any exceptions. (However implementations are + * free to prevent this using transaction mechanisms or similar). If + * {@link Future#get()} does not indicate an exception, the parser + * implementation SHOULD have inserted all parsed triples to the specified + * graph. + * <p> + * Calling this method will override any earlier targets set with + * {@link #target(Graph)}, {@link #target(Consumer)} or + * {@link #target(Dataset)}. + * <p> + * The default implementation of this method calls {@link #target(Consumer)} + * with a {@link Consumer} that does {@link Graph#add(Triple)} with + * {@link Quad#asTriple()} if the quad is in the default graph. + * + * @param graph + * The {@link Graph} to add triples to. + * @return An {@link RDFParser} that will insert triples into the specified + * graph. + */ + default RDFParser target(final Graph graph) { +<span class="nc" id="L193"> return target(q -> {</span> +<span class="nc bnc" id="L194" title="All 2 branches missed."> if (!q.getGraphName().isPresent()) {</span> +<span class="nc" id="L195"> graph.add(q.asTriple());</span> + } +<span class="nc" id="L197"> });</span> + } + + /** + * Specify a {@link Dataset} to add parsed quads to. + * <p> + * It is undefined if any quads are added to the specified {@link Dataset} + * if {@link #parse()} throws any exceptions. (However implementations are + * free to prevent this using transaction mechanisms or similar). On the + * other hand, if {@link #parse()} does not indicate an exception, the + * implementation SHOULD have inserted all parsed quads to the specified + * dataset. + * <p> + * Calling this method will override any earlier targets set with + * {@link #target(Graph)}, {@link #target(Consumer)} or + * {@link #target(Dataset)}. + * <p> + * The default implementation of this method calls {@link #target(Consumer)} + * with a {@link Consumer} that does {@link Dataset#add(Quad)}. + * + * @param dataset + * The {@link Dataset} to add quads to. + * @return An {@link RDFParser} that will insert triples into the specified + * dataset. + */ + default RDFParser target(final Dataset dataset) { +<span class="nc" id="L223"> return target(dataset::add);</span> + } + + /** + * Specify a consumer for parsed quads. + * <p> + * The quads will include triples in all named graphs of the parsed source, + * including any triples in the default graph. When parsing a source format + * which do not support datasets, all quads delivered to the consumer will + * be in the default graph (e.g. their {@link Quad#getGraphName()} will be + * as {@link Optional#empty()}), while for a source + * <p> + * It is undefined if any quads are consumed if {@link #parse()} throws any + * exceptions. On the other hand, if {@link #parse()} does not indicate an + * exception, the implementation SHOULD have produced all parsed quads to + * the specified consumer. + * <p> + * Calling this method will override any earlier targets set with + * {@link #target(Graph)}, {@link #target(Consumer)} or + * {@link #target(Dataset)}. + * <p> + * The consumer is not assumed to be thread safe - only one + * {@link Consumer#accept(Object)} is delivered at a time for a given + * {@link RDFParser#parse()} call. + * <p> + * This method is typically called with a functional consumer, for example: + * + * <pre> + * {@code + * List<Quad> quads = new ArrayList<Quad>; + * parserBuilder.target(quads::add).parse(); + * } + * </pre> + * + * @param consumer + * A {@link Consumer} of {@link Quad}s + * @return An {@link RDFParser} that will call the consumer for into the + * specified dataset. + */ + RDFParser target(Consumer<Quad> consumer); + + /** + * Specify a base IRI to use for parsing any relative IRI references. + * <p> + * Setting this option will override any protocol-specific base IRI (e.g. + * <code>Content-Location</code> header) or the {@link #source(IRI)} IRI, + * but does not override any base IRIs set within the source document (e.g. + * <code>@base</code> in Turtle documents). + * <p> + * If the source is in a syntax that does not support relative IRI + * references (e.g. {@link RDFSyntax#NTRIPLES}), setting the + * <code>base</code> has no effect. + * <p> + * This method will override any base IRI set with {@link #base(String)}. + * + * @see #base(String) + * @param base + * An absolute IRI to use as a base. + * @return An {@link RDFParser} that will use the specified base IRI. + */ + RDFParser base(IRI base); + + /** + * Specify a base IRI to use for parsing any relative IRI references. + * <p> + * Setting this option will override any protocol-specific base IRI (e.g. + * <code>Content-Location</code> header) or the {@link #source(IRI)} IRI, + * but does not override any base IRIs set within the source document (e.g. + * <code>@base</code> in Turtle documents). + * <p> + * If the source is in a syntax that does not support relative IRI + * references (e.g. {@link RDFSyntax#NTRIPLES}), setting the + * <code>base</code> has no effect. + * <p> + * This method will override any base IRI set with {@link #base(IRI)}. + * + * @see #base(IRI) + * @param base + * An absolute IRI to use as a base. + * @return An {@link RDFParser} that will use the specified base IRI. + * @throws IllegalArgumentException + * If the base is not a valid absolute IRI string + */ + RDFParser base(String base) throws IllegalArgumentException; + + /** + * Specify a source {@link InputStream} to parse. + * <p> + * The source set will not be read before the call to {@link #parse()}. + * <p> + * The InputStream will not be closed after parsing. The InputStream does + * not need to support {@link InputStream#markSupported()}. + * <p> + * The parser might not consume the complete stream (e.g. an RDF/XML parser + * may not read beyond the closing tag of + * <code>&lt;/rdf:Description&gt;</code>). + * <p> + * The {@link #contentType(RDFSyntax)} or {@link #contentType(String)} + * SHOULD be set before calling {@link #parse()}. + * <p> + * The character set is assumed to be {@link StandardCharsets#UTF_8} unless + * the {@link #contentType(String)} specifies otherwise or the document + * declares its own charset (e.g. RDF/XML with a + * <code>&lt;?xml encoding="iso-8859-1"&gt;</code> header). + * <p> + * The {@link #base(IRI)} or {@link #base(String)} MUST be set before + * calling {@link #parse()}, unless the RDF syntax does not permit relative + * IRIs (e.g. {@link RDFSyntax#NTRIPLES}). + * <p> + * This method will override any source set with {@link #source(IRI)}, + * {@link #source(Path)} or {@link #source(String)}. + * + * @param inputStream + * An InputStream to consume + * @return An {@link RDFParser} that will use the specified source. + */ + RDFParser source(InputStream inputStream); + + /** + * Specify a source file {@link Path} to parse. + * <p> + * The source set will not be read before the call to {@link #parse()}. + * <p> + * The {@link #contentType(RDFSyntax)} or {@link #contentType(String)} + * SHOULD be set before calling {@link #parse()}. + * <p> + * The character set is assumed to be {@link StandardCharsets#UTF_8} unless + * the {@link #contentType(String)} specifies otherwise or the document + * declares its own charset (e.g. RDF/XML with a + * <code>&lt;?xml encoding="iso-8859-1"&gt;</code> header). + * <p> + * The {@link #base(IRI)} or {@link #base(String)} MAY be set before calling + * {@link #parse()}, otherwise {@link Path#toUri()} will be used as the base + * IRI. + * <p> + * This method will override any source set with {@link #source(IRI)}, + * {@link #source(InputStream)} or {@link #source(String)}. + * + * @param file + * A Path for a file to parse + * @return An {@link RDFParser} that will use the specified source. + */ + RDFParser source(Path file); + + /** + * Specify an absolute source {@link IRI} to retrieve and parse. + * <p> + * The source set will not be read before the call to {@link #parse()}. + * <p> + * If this builder does not support the given IRI protocol (e.g. + * <code>urn:uuid:ce667463-c5ab-4c23-9b64-701d055c4890</code>), this method + * should succeed, while the {@link #parse()} should throw an + * {@link IOException}. + * <p> + * The {@link #contentType(RDFSyntax)} or {@link #contentType(String)} MAY + * be set before calling {@link #parse()}, in which case that type MAY be + * used for content negotiation (e.g. <code>Accept</code> header in HTTP), + * and SHOULD be used for selecting the RDFSyntax. + * <p> + * The character set is assumed to be {@link StandardCharsets#UTF_8} unless + * the protocol's equivalent of <code>Content-Type</code> specifies + * otherwise or the document declares its own charset (e.g. RDF/XML with a + * <code>&lt;?xml encoding="iso-8859-1"&gt;</code> header). + * <p> + * The {@link #base(IRI)} or {@link #base(String)} MAY be set before calling + * {@link #parse()}, otherwise the source IRI will be used as the base IRI. + * <p> + * This method will override any source set with {@link #source(Path)}, + * {@link #source(InputStream)} or {@link #source(String)}. + * + * @param iri + * An IRI to retrieve and parse + * @return An {@link RDFParser} that will use the specified source. + */ + RDFParser source(IRI iri); + + /** + * Specify an absolute source IRI to retrieve and parse. + * <p> + * The source set will not be read before the call to {@link #parse()}. + * <p> + * If this builder does not support the given IRI (e.g. + * <code>urn:uuid:ce667463-c5ab-4c23-9b64-701d055c4890</code>), this method + * should succeed, while the {@link #parse()} should throw an + * {@link IOException}. + * <p> + * The {@link #contentType(RDFSyntax)} or {@link #contentType(String)} MAY + * be set before calling {@link #parse()}, in which case that type MAY be + * used for content negotiation (e.g. <code>Accept</code> header in HTTP), + * and SHOULD be used for selecting the RDFSyntax. + * <p> + * The character set is assumed to be {@link StandardCharsets#UTF_8} unless + * the protocol's equivalent of <code>Content-Type</code> specifies + * otherwise or the document declares its own charset (e.g. RDF/XML with a + * <code>&lt;?xml encoding="iso-8859-1"&gt;</code> header). + * <p> + * The {@link #base(IRI)} or {@link #base(String)} MAY be set before calling + * {@link #parse()}, otherwise the source IRI will be used as the base IRI. + * <p> + * This method will override any source set with {@link #source(Path)}, + * {@link #source(InputStream)} or {@link #source(IRI)}. + * + * @param iri + * An IRI to retrieve and parse + * @return An {@link RDFParser} that will use the specified source. + * @throws IllegalArgumentException + * If the base is not a valid absolute IRI string + * + */ + RDFParser source(String iri) throws IllegalArgumentException; + + /** + * Parse the specified source. + * <p> + * A source method (e.g. {@link #source(InputStream)}, {@link #source(IRI)}, + * {@link #source(Path)}, {@link #source(String)} or an equivalent subclass + * method) MUST have been called before calling this method, otherwise an + * {@link IllegalStateException} will be thrown. + * <p> + * A target method (e.g. {@link #target(Consumer)}, + * {@link #target(Dataset)}, {@link #target(Graph)} or an equivalent + * subclass method) MUST have been called before calling parse(), otherwise + * an {@link IllegalStateException} will be thrown. + * <p> + * It is undefined if this method is thread-safe, however the + * {@link RDFParser} may be reused (e.g. setting a different source) as soon + * as the {@link Future} has been returned from this method. + * <p> + * The RDFParser SHOULD perform the parsing as an asynchronous operation, + * and return the {@link Future} as soon as preliminary checks (such as + * validity of the {@link #source(IRI)} and {@link #contentType(RDFSyntax)} + * settings) have finished. The future SHOULD not mark + * {@link Future#isDone()} before parsing is complete. A synchronous + * implementation MAY be blocking on the <code>parse()</code> call and + * return a Future that is already {@link Future#isDone()}. + * <p> + * The returned {@link Future} contains a {@link ParseResult}. + * Implementations may subclass this interface to provide any parser + * details, e.g. list of warnings. <code>null</code> is a possible return + * value if no details are available, but parsing succeeded. + * <p> + * If an exception occurs during parsing, (e.g. {@link IOException} or + * <code>org.apache.commons.rdf.simple.experimental.RDFParseException</code>), + * it should be indicated as the + * {@link java.util.concurrent.ExecutionException#getCause()} in the + * {@link java.util.concurrent.ExecutionException} thrown on + * {@link Future#get()}. + * + * @return A Future that will return the populated {@link Graph} when the + * parsing has finished. + * @throws IOException + * If an error occurred while starting to read the source (e.g. + * file not found, unsupported IRI protocol). Note that IO + * errors during parsing would instead be the + * {@link java.util.concurrent.ExecutionException#getCause()} of + * the {@link java.util.concurrent.ExecutionException} thrown on + * {@link Future#get()}. + * @throws IllegalStateException + * If the builder is in an invalid state, e.g. a + * <code>source</code> has not been set. + */ + Future<? extends ParseResult> parse() throws IOException, IllegalStateException; +} +</pre><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.7.201606060606</span></div></body></html> \ No newline at end of file Added: websites/staging/commonsrdf/content/jacoco/org.apache.commons.rdf.experimental/index.html ============================================================================== --- websites/staging/commonsrdf/content/jacoco/org.apache.commons.rdf.experimental/index.html (added) +++ websites/staging/commonsrdf/content/jacoco/org.apache.commons.rdf.experimental/index.html Wed Nov 30 23:45:19 2016 @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>org.apache.commons.rdf.experimental</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Commons RDF API</a> > <span class="el_package">org.apache.commons.rdf.experimental</span></div><h1>org.apache.commons.rdf.experimental< /h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(thi s)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">22 of 22</td><td class="ctr2">0%</td><td class="bar">2 of 2</td><td class="ctr2">0%</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">5</td><td class="ctr2">5</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="RDFParser.html" class="el_class">RDFParser</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="22" alt="22"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">4</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">5</td><td class="ctr2" id="i0">5</td><td class="ctr1" id="j0">3</td><td class="ctr2" id="k0">3</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr></tbody></ta ble><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.7.201606060606</span></div></body></html> \ No newline at end of file