You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commonsrdf.apache.org by st...@apache.org on 2016/11/16 10:57:30 UTC
svn commit: r1001192 [12/30] - in /websites/production/commonsrdf/content:
./ apidocs/ apidocs/org/apache/commons/rdf/api/
apidocs/org/apache/commons/rdf/experimental/
apidocs/org/apache/commons/rdf/simple/
apidocs/org/apache/commons/rdf/simple/class-u...
Added: websites/production/commonsrdf/content/jacoco/org.apache.commons.rdf.simple.experimental/AbstractRDFParser.html
==============================================================================
--- websites/production/commonsrdf/content/jacoco/org.apache.commons.rdf.simple.experimental/AbstractRDFParser.html (added)
+++ websites/production/commonsrdf/content/jacoco/org.apache.commons.rdf.simple.experimental/AbstractRDFParser.html Wed Nov 16 10:57:28 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="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>AbstractRDFParser</title><script type="text/javascript" src="../.resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Commons RDF impl: Simple</a> > <a href="index.html" class="el_package">org.apache.commons.rdf.simple.experimental</a> > <span class="el_class">AbstractRDFParser</span></div><h1>AbstractRDFParser</h1><table class="coverage" cellspacing="0" id="coverageta
ble"><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">133 of 529</td><td class="ctr2">75%</td><td class="bar">14 of 50</td><td class="ctr2">72%</td><td class="ctr1">21</td><td class="ct
r2">70</td><td class="ctr1">29</td><td class="ctr2">127</td><td class="ctr1">8</td><td class="ctr2">45</td></tr></tfoot><tbody><tr><td id="a40"><a href="AbstractRDFParser.java.html#L295" class="el_method">source(String)</a></td><td class="bar" id="b0"><img src="../.resources/redbar.gif" width="39" height="10" title="26" alt="26"/></td><td class="ctr2" id="c37">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h0">5</td><td class="ctr2" id="i4">5</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a11"><a href="AbstractRDFParser.java.html#L249" class="el_method">contentType(String)</a></td><td class="bar" id="b1"><img src="../.resources/redbar.gif" width="24" height="10" title="16" alt="16"/></td><td class="ctr2" id="c38">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g8">1</td><td class=
"ctr1" id="h1">4</td><td class="ctr2" id="i7">4</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a7"><a href="AbstractRDFParser.java.html#L330" class="el_method">checkSource()</a></td><td class="bar" id="b2"><img src="../.resources/redbar.gif" width="22" height="10" title="15" alt="15"/><img src="../.resources/greenbar.gif" width="97" height="10" title="65" alt="65"/></td><td class="ctr2" id="c32">81%</td><td class="bar" id="d0"><img src="../.resources/redbar.gif" width="16" height="10" title="3" alt="3"/><img src="../.resources/greenbar.gif" width="103" height="10" title="19" alt="19"/></td><td class="ctr2" id="e1">86%</td><td class="ctr1" id="f0">3</td><td class="ctr2" id="g0">12</td><td class="ctr1" id="h3">3</td><td class="ctr2" id="i0">11</td><td class="ctr1" id="j8">0</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a43"><a href="AbstractRDFParser.java.html#L553" class="el_method">target(Dataset)</a></td><td class="bar" id="b3"><img src="..
/.resources/redbar.gif" width="21" height="10" title="14" alt="14"/></td><td class="ctr2" id="c39">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h2">4</td><td class="ctr2" id="i8">4</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a6"><a href="AbstractRDFParser.java.html#L313" class="el_method">checkIsAbsolute(IRI)</a></td><td class="bar" id="b4"><img src="../.resources/redbar.gif" width="18" height="10" title="12" alt="12"/><img src="../.resources/greenbar.gif" width="9" height="10" title="6" alt="6"/></td><td class="ctr2" id="c36">33%</td><td class="bar" id="d5"><img src="../.resources/redbar.gif" width="5" height="10" title="1" alt="1"/><img src="../.resources/greenbar.gif" width="5" height="10" title="1" alt="1"/></td><td class="ctr2" id="e3">50%</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g6">2</td><td class="ctr1" id="h8">1</td><td
class="ctr2" id="i17">3</td><td class="ctr1" id="j9">0</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a8"><a href="AbstractRDFParser.java.html#L454" class="el_method">checkTarget()</a></td><td class="bar" id="b5"><img src="../.resources/redbar.gif" width="15" height="10" title="10" alt="10"/><img src="../.resources/greenbar.gif" width="18" height="10" title="12" alt="12"/></td><td class="ctr2" id="c34">55%</td><td class="bar" id="d1"><img src="../.resources/redbar.gif" width="16" height="10" title="3" alt="3"/><img src="../.resources/greenbar.gif" width="16" height="10" title="3" alt="3"/></td><td class="ctr2" id="e4">50%</td><td class="ctr1" id="f1">3</td><td class="ctr2" id="g1">4</td><td class="ctr1" id="h5">2</td><td class="ctr2" id="i5">5</td><td class="ctr1" id="j10">0</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a34"><a href="AbstractRDFParser.java.html#L234" class="el_method">rdfTermFactory(RDF)</a></td><td class="bar" id="b6"><img src="../.resources/redbar.gif"
width="15" height="10" title="10" alt="10"/></td><td class="ctr2" id="c40">0%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h4">3</td><td class="ctr2" id="i18">3</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a9"><a href="AbstractRDFParser.java.html#L221" class="el_method">clone()</a></td><td class="bar" id="b7"><img src="../.resources/redbar.gif" width="9" height="10" title="6" alt="6"/><img src="../.resources/greenbar.gif" width="6" height="10" title="4" alt="4"/></td><td class="ctr2" id="c35">40%</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f14">0</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h6">2</td><td class="ctr2" id="i19">3</td><td class="ctr1" id="j11">0</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a3"><a href="AbstractRDFParser.java.html#L265" class="el_method">base(String)</a><
/td><td class="bar" id="b8"><img src="../.resources/redbar.gif" width="9" height="10" title="6" alt="6"/></td><td class="ctr2" id="c41">0%</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h9">1</td><td class="ctr2" id="i24">1</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a13"><a href="AbstractRDFParser.java.html#L505" class="el_method">fileExtension(Path)</a></td><td class="bar" id="b9"><img src="../.resources/redbar.gif" width="6" height="10" title="4" alt="4"/><img src="../.resources/greenbar.gif" width="30" height="10" title="20" alt="20"/></td><td class="ctr2" id="c31">83%</td><td class="bar" id="d4"><img src="../.resources/redbar.gif" width="10" height="10" title="2" alt="2"/><img src="../.resources/greenbar.gif" width="10" height="10" title="2" alt="2"/></td><td class="ctr2" id="e5">50%</td><td class="ctr1" id="f2">2</td><td class="ctr2" id="
g4">3</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i2">8</td><td class="ctr1" id="j12">0</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a26"><a href="AbstractRDFParser.java.html#L355" class="el_method">lambda$checkBaseRequired$5(RDFSyntax)</a></td><td class="bar" id="b10"><img src="../.resources/redbar.gif" width="6" height="10" title="4" alt="4"/><img src="../.resources/greenbar.gif" width="9" height="10" title="6" alt="6"/></td><td class="ctr2" id="c33">60%</td><td class="bar" id="d2"><img src="../.resources/redbar.gif" width="16" height="10" title="3" alt="3"/><img src="../.resources/greenbar.gif" width="5" height="10" title="1" alt="1"/></td><td class="ctr2" id="e6">25%</td><td class="ctr1" id="f3">2</td><td class="ctr2" id="g5">3</td><td class="ctr1" id="h13">0</td><td class="ctr2" id="i25">1</td><td class="ctr1" id="j13">0</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a30"><a href="AbstractRDFParser.java.html#L298" class="el_method">lambda$source$4(IRI)<
/a></td><td class="bar" id="b11"><img src="../.resources/redbar.gif" width="6" height="10" title="4" alt="4"/></td><td class="ctr2" id="c42">0%</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h10">1</td><td class="ctr2" id="i26">1</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a22"><a href="AbstractRDFParser.java.html#L134" class="el_method">getTargetDataset()</a></td><td class="bar" id="b12"><img src="../.resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c43">0%</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h11">1</td><td class="ctr2" id="i27">1</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a23"><a href="AbstractRDFParser.java.html#L152" class="el_method">getTargetGraph
()</a></td><td class="bar" id="b13"><img src="../.resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c44">0%</td><td class="bar" id="d15"/><td class="ctr2" id="e15">n/a</td><td class="ctr1" id="f13">1</td><td class="ctr2" id="g15">1</td><td class="ctr1" id="h12">1</td><td class="ctr2" id="i28">1</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k13">1</td></tr><tr><td id="a33"><a href="AbstractRDFParser.java.html#L424" class="el_method">prepareForParsing()</a></td><td class="bar" id="b14"><img src="../.resources/greenbar.gif" width="70" height="10" title="47" alt="47"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d3"><img src="../.resources/redbar.gif" width="10" height="10" title="2" alt="2"/><img src="../.resources/greenbar.gif" width="21" height="10" title="4" alt="4"/></td><td class="ctr2" id="e2">67%</td><td class="ctr1" id="f4">2</td><td class="ctr2" id="g2">4</td><td class="ctr1" id="h14">0</td><td class="ctr2" id="i1"
>11</td><td class="ctr1" id="j14">0</td><td class="ctr2" id="k14">1</td></tr><tr><td id="a0"><a href="AbstractRDFParser.java.html#L59" class="el_method">AbstractRDFParser()</a></td><td class="bar" id="b15"><img src="../.resources/greenbar.gif" width="36" height="10" title="24" alt="24"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d16"/><td class="ctr2" id="e16">n/a</td><td class="ctr1" id="f15">0</td><td class="ctr2" id="g16">1</td><td class="ctr1" id="h15">0</td><td class="ctr2" id="i3">8</td><td class="ctr1" id="j15">0</td><td class="ctr2" id="k15">1</td></tr><tr><td id="a4"><a href="AbstractRDFParser.java.html#L354" class="el_method">checkBaseRequired()</a></td><td class="bar" id="b16"><img src="../.resources/greenbar.gif" width="30" height="10" title="20" alt="20"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d6"><img src="../.resources/greenbar.gif" width="32" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">100%</td><td class="ctr1" id=
"f16">0</td><td class="ctr2" id="g3">4</td><td class="ctr1" id="h16">0</td><td class="ctr2" id="i9">4</td><td class="ctr1" id="j16">0</td><td class="ctr2" id="k16">1</td></tr><tr><td id="a38"><a href="AbstractRDFParser.java.html#L286" class="el_method">source(IRI)</a></td><td class="bar" id="b17"><img src="../.resources/greenbar.gif" width="25" height="10" title="17" alt="17"/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d17"/><td class="ctr2" id="e17">n/a</td><td class="ctr1" id="f17">0</td><td class="ctr2" id="g17">1</td><td class="ctr1" id="h17">0</td><td class="ctr2" id="i6">5</td><td class="ctr1" id="j17">0</td><td class="ctr2" id="k17">1</td></tr><tr><td id="a10"><a href="AbstractRDFParser.java.html#L241" class="el_method">contentType(RDFSyntax)</a></td><td class="bar" id="b18"><img src="../.resources/greenbar.gif" width="24" height="10" title="16" alt="16"/></td><td class="ctr2" id="c4">100%</td><td class="bar" id="d18"/><td class="ctr2" id="e18">n/a</td><td cla
ss="ctr1" id="f18">0</td><td class="ctr2" id="g18">1</td><td class="ctr1" id="h18">0</td><td class="ctr2" id="i10">4</td><td class="ctr1" id="j18">0</td><td class="ctr2" id="k18">1</td></tr><tr><td id="a2"><a href="AbstractRDFParser.java.html#L257" class="el_method">base(IRI)</a></td><td class="bar" id="b19"><img src="../.resources/greenbar.gif" width="22" height="10" title="15" alt="15"/></td><td class="ctr2" id="c5">100%</td><td class="bar" id="d19"/><td class="ctr2" id="e19">n/a</td><td class="ctr1" id="f19">0</td><td class="ctr2" id="g19">1</td><td class="ctr1" id="h19">0</td><td class="ctr2" id="i11">4</td><td class="ctr1" id="j19">0</td><td class="ctr2" id="k19">1</td></tr><tr><td id="a44"><a href="AbstractRDFParser.java.html#L563" class="el_method">target(Graph)</a></td><td class="bar" id="b20"><img src="../.resources/greenbar.gif" width="21" height="10" title="14" alt="14"/></td><td class="ctr2" id="c6">100%</td><td class="bar" id="d20"/><td class="ctr2" id="e20">n/a</td><td
class="ctr1" id="f20">0</td><td class="ctr2" id="g20">1</td><td class="ctr1" id="h20">0</td><td class="ctr2" id="i12">4</td><td class="ctr1" id="j20">0</td><td class="ctr2" id="k20">1</td></tr><tr><td id="a41"><a href="AbstractRDFParser.java.html#L61" class="el_method">static {...}</a></td><td class="bar" id="b21"><img src="../.resources/greenbar.gif" width="19" height="10" title="13" alt="13"/></td><td class="ctr2" id="c7">100%</td><td class="bar" id="d21"/><td class="ctr2" id="e21">n/a</td><td class="ctr1" id="f21">0</td><td class="ctr2" id="g21">1</td><td class="ctr1" id="h21">0</td><td class="ctr2" id="i20">3</td><td class="ctr1" id="j21">0</td><td class="ctr2" id="k21">1</td></tr><tr><td id="a37"><a href="AbstractRDFParser.java.html#L270" class="el_method">source(InputStream)</a></td><td class="bar" id="b22"><img src="../.resources/greenbar.gif" width="18" height="10" title="12" alt="12"/></td><td class="ctr2" id="c8">100%</td><td class="bar" id="d22"/><td class="ctr2" id="e22
">n/a</td><td class="ctr1" id="f22">0</td><td class="ctr2" id="g22">1</td><td class="ctr1" id="h22">0</td><td class="ctr2" id="i13">4</td><td class="ctr1" id="j22">0</td><td class="ctr2" id="k22">1</td></tr><tr><td id="a39"><a href="AbstractRDFParser.java.html#L278" class="el_method">source(Path)</a></td><td class="bar" id="b23"><img src="../.resources/greenbar.gif" width="18" height="10" title="12" alt="12"/></td><td class="ctr2" id="c9">100%</td><td class="bar" id="d23"/><td class="ctr2" id="e23">n/a</td><td class="ctr1" id="f23">0</td><td class="ctr2" id="g23">1</td><td class="ctr1" id="h23">0</td><td class="ctr2" id="i14">4</td><td class="ctr1" id="j23">0</td><td class="ctr2" id="k23">1</td></tr><tr><td id="a42"><a href="AbstractRDFParser.java.html#L544" class="el_method">target(Consumer)</a></td><td class="bar" id="b24"><img src="../.resources/greenbar.gif" width="16" height="10" title="11" alt="11"/></td><td class="ctr2" id="c10">100%</td><td class="bar" id="d24"/><td class="c
tr2" id="e24">n/a</td><td class="ctr1" id="f24">0</td><td class="ctr2" id="g24">1</td><td class="ctr1" id="h24">0</td><td class="ctr2" id="i15">4</td><td class="ctr1" id="j24">0</td><td class="ctr2" id="k24">1</td></tr><tr><td id="a35"><a href="AbstractRDFParser.java.html#L368" class="el_method">resetSource()</a></td><td class="bar" id="b25"><img src="../.resources/greenbar.gif" width="15" height="10" title="10" alt="10"/></td><td class="ctr2" id="c11">100%</td><td class="bar" id="d25"/><td class="ctr2" id="e25">n/a</td><td class="ctr1" id="f25">0</td><td class="ctr2" id="g25">1</td><td class="ctr1" id="h25">0</td><td class="ctr2" id="i16">4</td><td class="ctr1" id="j25">0</td><td class="ctr2" id="k25">1</td></tr><tr><td id="a32"><a href="AbstractRDFParser.java.html#L535" class="el_method">parse()</a></td><td class="bar" id="b26"><img src="../.resources/greenbar.gif" width="12" height="10" title="8" alt="8"/></td><td class="ctr2" id="c12">100%</td><td class="bar" id="d26"/><td class
="ctr2" id="e26">n/a</td><td class="ctr1" id="f26">0</td><td class="ctr2" id="g26">1</td><td class="ctr1" id="h26">0</td><td class="ctr2" id="i22">2</td><td class="ctr1" id="j26">0</td><td class="ctr2" id="k26">1</td></tr><tr><td id="a36"><a href="AbstractRDFParser.java.html#L384" class="el_method">resetTarget()</a></td><td class="bar" id="b27"><img src="../.resources/greenbar.gif" width="10" height="10" title="7" alt="7"/></td><td class="ctr2" id="c13">100%</td><td class="bar" id="d27"/><td class="ctr2" id="e27">n/a</td><td class="ctr1" id="f27">0</td><td class="ctr2" id="g27">1</td><td class="ctr1" id="h27">0</td><td class="ctr2" id="i21">3</td><td class="ctr1" id="j27">0</td><td class="ctr2" id="k27">1</td></tr><tr><td id="a31"><a href="AbstractRDFParser.java.html#L62" class="el_method">lambda$static$0(Runnable)</a></td><td class="bar" id="b28"><img src="../.resources/greenbar.gif" width="9" height="10" title="6" alt="6"/></td><td class="ctr2" id="c14">100%</td><td class="bar" id
="d28"/><td class="ctr2" id="e28">n/a</td><td class="ctr1" id="f28">0</td><td class="ctr2" id="g28">1</td><td class="ctr1" id="h28">0</td><td class="ctr2" id="i29">1</td><td class="ctr1" id="j28">0</td><td class="ctr2" id="k28">1</td></tr><tr><td id="a24"><a href="AbstractRDFParser.java.html#L488" class="el_method">guessRDFSyntax(Path)</a></td><td class="bar" id="b29"><img src="../.resources/greenbar.gif" width="7" height="10" title="5" alt="5"/></td><td class="ctr2" id="c15">100%</td><td class="bar" id="d29"/><td class="ctr2" id="e29">n/a</td><td class="ctr1" id="f29">0</td><td class="ctr2" id="g29">1</td><td class="ctr1" id="h29">0</td><td class="ctr2" id="i30">1</td><td class="ctr1" id="j29">0</td><td class="ctr2" id="k29">1</td></tr><tr><td id="a12"><a href="AbstractRDFParser.java.html#L530" class="el_method">createRDFTermFactory()</a></td><td class="bar" id="b30"><img src="../.resources/greenbar.gif" width="6" height="10" title="4" alt="4"/></td><td class="ctr2" id="c16">100%</
td><td class="bar" id="d30"/><td class="ctr2" id="e30">n/a</td><td class="ctr1" id="f30">0</td><td class="ctr2" id="g30">1</td><td class="ctr1" id="h30">0</td><td class="ctr2" id="i31">1</td><td class="ctr1" id="j30">0</td><td class="ctr2" id="k30">1</td></tr><tr><td id="a28"><a href="AbstractRDFParser.java.html#L537" class="el_method">lambda$parse$6(AbstractRDFParser)</a></td><td class="bar" id="b31"><img src="../.resources/greenbar.gif" width="6" height="10" title="4" alt="4"/></td><td class="ctr2" id="c17">100%</td><td class="bar" id="d31"/><td class="ctr2" id="e31">n/a</td><td class="ctr1" id="f31">0</td><td class="ctr2" id="g31">1</td><td class="ctr1" id="h31">0</td><td class="ctr2" id="i23">2</td><td class="ctr1" id="j31">0</td><td class="ctr2" id="k31">1</td></tr><tr><td id="a29"><a href="AbstractRDFParser.java.html#L289" class="el_method">lambda$source$3(IRI)</a></td><td class="bar" id="b32"><img src="../.resources/greenbar.gif" width="6" height="10" title="4" alt="4"/></td>
<td class="ctr2" id="c18">100%</td><td class="bar" id="d32"/><td class="ctr2" id="e32">n/a</td><td class="ctr1" id="f32">0</td><td class="ctr2" id="g32">1</td><td class="ctr1" id="h32">0</td><td class="ctr2" id="i32">1</td><td class="ctr1" id="j32">0</td><td class="ctr2" id="k32">1</td></tr><tr><td id="a25"><a href="AbstractRDFParser.java.html#L259" class="el_method">lambda$base$2(IRI)</a></td><td class="bar" id="b33"><img src="../.resources/greenbar.gif" width="6" height="10" title="4" alt="4"/></td><td class="ctr2" id="c19">100%</td><td class="bar" id="d33"/><td class="ctr2" id="e33">n/a</td><td class="ctr1" id="f33">0</td><td class="ctr2" id="g33">1</td><td class="ctr1" id="h33">0</td><td class="ctr2" id="i33">1</td><td class="ctr1" id="j33">0</td><td class="ctr2" id="k33">1</td></tr><tr><td id="a17"><a href="AbstractRDFParser.java.html#L74" class="el_method">getRdfTermFactory()</a></td><td class="bar" id="b34"><img src="../.resources/greenbar.gif" width="4" height="10" title="3"
alt="3"/></td><td class="ctr2" id="c20">100%</td><td class="bar" id="d34"/><td class="ctr2" id="e34">n/a</td><td class="ctr1" id="f34">0</td><td class="ctr2" id="g34">1</td><td class="ctr1" id="h34">0</td><td class="ctr2" id="i34">1</td><td class="ctr1" id="j34">0</td><td class="ctr2" id="k34">1</td></tr><tr><td id="a16"><a href="AbstractRDFParser.java.html#L87" class="el_method">getContentTypeSyntax()</a></td><td class="bar" id="b35"><img src="../.resources/greenbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c21">100%</td><td class="bar" id="d35"/><td class="ctr2" id="e35">n/a</td><td class="ctr1" id="f35">0</td><td class="ctr2" id="g35">1</td><td class="ctr1" id="h35">0</td><td class="ctr2" id="i35">1</td><td class="ctr1" id="j35">0</td><td class="ctr2" id="k35">1</td></tr><tr><td id="a15"><a href="AbstractRDFParser.java.html#L102" class="el_method">getContentType()</a></td><td class="bar" id="b36"><img src="../.resources/greenbar.gif" width="4" heigh
t="10" title="3" alt="3"/></td><td class="ctr2" id="c22">100%</td><td class="bar" id="d36"/><td class="ctr2" id="e36">n/a</td><td class="ctr1" id="f36">0</td><td class="ctr2" id="g36">1</td><td class="ctr1" id="h36">0</td><td class="ctr2" id="i36">1</td><td class="ctr1" id="j36">0</td><td class="ctr2" id="k36">1</td></tr><tr><td id="a21"><a href="AbstractRDFParser.java.html#L116" class="el_method">getTarget()</a></td><td class="bar" id="b37"><img src="../.resources/greenbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c23">100%</td><td class="bar" id="d37"/><td class="ctr2" id="e37">n/a</td><td class="ctr1" id="f37">0</td><td class="ctr2" id="g37">1</td><td class="ctr1" id="h37">0</td><td class="ctr2" id="i37">1</td><td class="ctr1" id="j37">0</td><td class="ctr2" id="k37">1</td></tr><tr><td id="a14"><a href="AbstractRDFParser.java.html#L162" class="el_method">getBase()</a></td><td class="bar" id="b38"><img src="../.resources/greenbar.gif" width="4" height
="10" title="3" alt="3"/></td><td class="ctr2" id="c24">100%</td><td class="bar" id="d38"/><td class="ctr2" id="e38">n/a</td><td class="ctr1" id="f38">0</td><td class="ctr2" id="g38">1</td><td class="ctr1" id="h38">0</td><td class="ctr2" id="i38">1</td><td class="ctr1" id="j38">0</td><td class="ctr2" id="k38">1</td></tr><tr><td id="a19"><a href="AbstractRDFParser.java.html#L175" class="el_method">getSourceInputStream()</a></td><td class="bar" id="b39"><img src="../.resources/greenbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c25">100%</td><td class="bar" id="d39"/><td class="ctr2" id="e39">n/a</td><td class="ctr1" id="f39">0</td><td class="ctr2" id="g39">1</td><td class="ctr1" id="h39">0</td><td class="ctr2" id="i39">1</td><td class="ctr1" id="j39">0</td><td class="ctr2" id="k39">1</td></tr><tr><td id="a18"><a href="AbstractRDFParser.java.html#L189" class="el_method">getSourceFile()</a></td><td class="bar" id="b40"><img src="../.resources/greenbar.gif"
width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c26">100%</td><td class="bar" id="d40"/><td class="ctr2" id="e40">n/a</td><td class="ctr1" id="f40">0</td><td class="ctr2" id="g40">1</td><td class="ctr1" id="h40">0</td><td class="ctr2" id="i40">1</td><td class="ctr1" id="j40">0</td><td class="ctr2" id="k40">1</td></tr><tr><td id="a20"><a href="AbstractRDFParser.java.html#L203" class="el_method">getSourceIri()</a></td><td class="bar" id="b41"><img src="../.resources/greenbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c27">100%</td><td class="bar" id="d41"/><td class="ctr2" id="e41">n/a</td><td class="ctr1" id="f41">0</td><td class="ctr2" id="g41">1</td><td class="ctr1" id="h41">0</td><td class="ctr2" id="i41">1</td><td class="ctr1" id="j41">0</td><td class="ctr2" id="k41">1</td></tr><tr><td id="a27"><a href="AbstractRDFParser.java.html#L243" class="el_method">lambda$contentType$1(RDFSyntax)</a></td><td class="bar" id="b42"><img src="../.
resources/greenbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c28">100%</td><td class="bar" id="d42"/><td class="ctr2" id="e42">n/a</td><td class="ctr1" id="f42">0</td><td class="ctr2" id="g42">1</td><td class="ctr1" id="h42">0</td><td class="ctr2" id="i42">1</td><td class="ctr1" id="j42">0</td><td class="ctr2" id="k42">1</td></tr><tr><td id="a1"><a href="AbstractRDFParser.java.html#L229" class="el_method">asT()</a></td><td class="bar" id="b43"><img src="../.resources/greenbar.gif" width="3" height="10" title="2" alt="2"/></td><td class="ctr2" id="c29">100%</td><td class="bar" id="d43"/><td class="ctr2" id="e43">n/a</td><td class="ctr1" id="f43">0</td><td class="ctr2" id="g43">1</td><td class="ctr1" id="h43">0</td><td class="ctr2" id="i43">1</td><td class="ctr1" id="j43">0</td><td class="ctr2" id="k43">1</td></tr><tr><td id="a5"><a href="AbstractRDFParser.java.html#L473" class="el_method">checkContentType()</a></td><td class="bar" id="b44"><img src="../.
resources/greenbar.gif" width="1" height="10" title="1" alt="1"/></td><td class="ctr2" id="c30">100%</td><td class="bar" id="d44"/><td class="ctr2" id="e44">n/a</td><td class="ctr1" id="f44">0</td><td class="ctr2" id="g44">1</td><td class="ctr1" id="h44">0</td><td class="ctr2" id="i44">1</td><td class="ctr1" id="j44">0</td><td class="ctr2" id="k44">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.6.201602180812</span></div></body></html>
\ No newline at end of file
Added: websites/production/commonsrdf/content/jacoco/org.apache.commons.rdf.simple.experimental/AbstractRDFParser.java.html
==============================================================================
--- websites/production/commonsrdf/content/jacoco/org.apache.commons.rdf.simple.experimental/AbstractRDFParser.java.html (added)
+++ websites/production/commonsrdf/content/jacoco/org.apache.commons.rdf.simple.experimental/AbstractRDFParser.java.html Wed Nov 16 10:57:28 2016
@@ -0,0 +1,570 @@
+<?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="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>AbstractRDFParser.java</title><link rel="stylesheet" href="../.resources/prettify.css" type="text/css"/><script type="text/javascript" src="../.resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Commons RDF impl: Simple</a> > <a href="index.source.html" class="el_package">org.apache.commons.rdf.simple.experimental</a> > <span class="el_source">Abstract
RDFParser.java</span></div><h1>AbstractRDFParser.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.simple.experimental;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URI;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.Optional;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.function.Consumer;
+
+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.RDF;
+import org.apache.commons.rdf.experimental.RDFParser;
+import org.apache.commons.rdf.simple.SimpleRDF;
+
+/**
+ * Abstract RDFParser
+ * <p>
+ * This abstract class keeps the properties in protected fields like
+ * {@link #sourceFile} using {@link Optional}. Some basic checking like
+ * {@link #checkIsAbsolute(IRI)} is performed.
+ * <p>
+ * This class and its subclasses are {@link Cloneable}, immutable and
+ * (therefore) thread-safe - each call to option methods like
+ * {@link #contentType(String)} or {@link #source(IRI)} will return a cloned,
+ * mutated copy.
+ * <p>
+ * By default, parsing is done by the abstract method
+ * {@link #parseSynchronusly()} - which is executed in a cloned snapshot - hence
+ * multiple {@link #parse()} calls are thread-safe. The default {@link #parse()}
+ * uses a thread pool in {@link #threadGroup} - but implementations can override
+ * {@link #parse()} (e.g. because it has its own threading model or use
+ * asynchronous remote execution).
+ */
+<span class="fc" id="L59">public abstract class AbstractRDFParser<T extends AbstractRDFParser<T>> implements RDFParser, Cloneable {</span>
+
+<span class="fc" id="L61"> public static final ThreadGroup threadGroup = new ThreadGroup("Commons RDF parsers");</span>
+<span class="fc" id="L62"> private static final ExecutorService threadpool = Executors.newCachedThreadPool(r -> new Thread(threadGroup, r));</span>
+
+ // Basically only used for creating IRIs
+<span class="fc" id="L65"> private static RDF internalRdfTermFactory = new SimpleRDF();</span>
+
+ /**
+ * Get the set {@link RDF}, if any.
+ *
+ * @return The {@link RDF} to use, or {@link Optional#empty()} if it has not
+ * been set
+ */
+ public Optional<RDF> getRdfTermFactory() {
+<span class="fc" id="L74"> return rdfTermFactory;</span>
+ }
+
+ /**
+ * Get the set content-type {@link RDFSyntax}, if any.
+ * <p>
+ * If this is {@link Optional#isPresent()}, then {@link #getContentType()}
+ * contains the value of {@link RDFSyntax#mediaType}.
+ *
+ * @return The {@link RDFSyntax} of the content type, or
+ * {@link Optional#empty()} if it has not been set
+ */
+ public Optional<RDFSyntax> getContentTypeSyntax() {
+<span class="fc" id="L87"> return contentTypeSyntax;</span>
+ }
+
+ /**
+ * Get the set content-type String, if any.
+ * <p>
+ * If this is {@link Optional#isPresent()} and is recognized by
+ * {@link RDFSyntax#byMediaType(String)}, then the corresponding
+ * {@link RDFSyntax} is set on {@link #getContentType()}, otherwise that is
+ * {@link Optional#empty()}.
+ *
+ * @return The Content-Type IANA media type, e.g. <code>text/turtle</code>,
+ * or {@link Optional#empty()} if it has not been set
+ */
+ public final Optional<String> getContentType() {
+<span class="fc" id="L102"> return contentType;</span>
+ }
+
+ /**
+ * Get the target to consume parsed Quads.
+ * <p>
+ * From the call to {@link #parseSynchronusly()}, this will be a
+ * non-<code>null</code> value (as a target is a required setting).
+ *
+ * @return The target consumer of {@link Quad}s, or <code>null</code> if it
+ * has not yet been set.
+ *
+ */
+ public Consumer<Quad> getTarget() {
+<span class="fc" id="L116"> return target;</span>
+ }
+
+ /**
+ * Get the target dataset as set by {@link #target(Dataset)}.
+ * <p>
+ * The return value is {@link Optional#isPresent()} if and only if
+ * {@link #target(Dataset)} has been set, meaning that the implementation
+ * may choose to append parsed quads to the {@link Dataset} directly instead
+ * of relying on the generated {@link #getTarget()} consumer.
+ * <p>
+ * If this value is present, then {@link #getTargetGraph()} MUST be
+ * {@link Optional#empty()}.
+ *
+ * @return The target Dataset, or {@link Optional#empty()} if another kind
+ * of target has been set.
+ */
+ public Optional<Dataset> getTargetDataset() {
+<span class="nc" id="L134"> return targetDataset;</span>
+ }
+
+ /**
+ * Get the target graph as set by {@link #target(Graph)}.
+ * <p>
+ * The return value is {@link Optional#isPresent()} if and only if
+ * {@link #target(Graph)} has been set, meaning that the implementation may
+ * choose to append parsed triples to the {@link Graph} directly instead of
+ * relying on the generated {@link #getTarget()} consumer.
+ * <p>
+ * If this value is present, then {@link #getTargetDataset()} MUST be
+ * {@link Optional#empty()}.
+ *
+ * @return The target Graph, or {@link Optional#empty()} if another kind of
+ * target has been set.
+ */
+ public Optional<Graph> getTargetGraph() {
+<span class="nc" id="L152"> return targetGraph;</span>
+ }
+
+ /**
+ * Get the set base {@link IRI}, if present.
+ *
+ * @return The base {@link IRI}, or {@link Optional#empty()} if it has not
+ * been set
+ */
+ public Optional<IRI> getBase() {
+<span class="fc" id="L162"> return base;</span>
+ }
+
+ /**
+ * Get the set source {@link InputStream}.
+ * <p>
+ * If this is {@link Optional#isPresent()}, then {@link #getSourceFile()}
+ * and {@link #getSourceIri()} are {@link Optional#empty()}.
+ *
+ * @return The source {@link InputStream}, or {@link Optional#empty()} if it
+ * has not been set
+ */
+ public Optional<InputStream> getSourceInputStream() {
+<span class="fc" id="L175"> return sourceInputStream;</span>
+ }
+
+ /**
+ * Get the set source {@link Path}.
+ * <p>
+ * If this is {@link Optional#isPresent()}, then
+ * {@link #getSourceInputStream()} and {@link #getSourceIri()} are
+ * {@link Optional#empty()}.
+ *
+ * @return The source {@link Path}, or {@link Optional#empty()} if it has
+ * not been set
+ */
+ public Optional<Path> getSourceFile() {
+<span class="fc" id="L189"> return sourceFile;</span>
+ }
+
+ /**
+ * Get the set source {@link Path}.
+ * <p>
+ * If this is {@link Optional#isPresent()}, then
+ * {@link #getSourceInputStream()} and {@link #getSourceInputStream()} are
+ * {@link Optional#empty()}.
+ *
+ * @return The source {@link IRI}, or {@link Optional#empty()} if it has not
+ * been set
+ */
+ public Optional<IRI> getSourceIri() {
+<span class="fc" id="L203"> return sourceIri;</span>
+ }
+
+<span class="fc" id="L206"> private Optional<RDF> rdfTermFactory = Optional.empty();</span>
+<span class="fc" id="L207"> private Optional<RDFSyntax> contentTypeSyntax = Optional.empty();</span>
+<span class="fc" id="L208"> private Optional<String> contentType = Optional.empty();</span>
+<span class="fc" id="L209"> private Optional<IRI> base = Optional.empty();</span>
+<span class="fc" id="L210"> private Optional<InputStream> sourceInputStream = Optional.empty();</span>
+<span class="fc" id="L211"> private Optional<Path> sourceFile = Optional.empty();</span>
+<span class="fc" id="L212"> private Optional<IRI> sourceIri = Optional.empty();</span>
+ private Consumer<Quad> target;
+ private Optional<Dataset> targetDataset;
+ private Optional<Graph> targetGraph;
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public T clone() {
+ try {
+<span class="fc" id="L221"> return (T) super.clone();</span>
+<span class="nc" id="L222"> } catch (CloneNotSupportedException e) {</span>
+<span class="nc" id="L223"> throw new RuntimeException(e);</span>
+ }
+ }
+
+ @SuppressWarnings("unchecked")
+ protected T asT() {
+<span class="fc" id="L229"> return (T) this;</span>
+ }
+
+ @Override
+ public T rdfTermFactory(RDF rdfTermFactory) {
+<span class="nc" id="L234"> AbstractRDFParser<T> c = clone();</span>
+<span class="nc" id="L235"> c.rdfTermFactory = Optional.ofNullable(rdfTermFactory);</span>
+<span class="nc" id="L236"> return c.asT();</span>
+ }
+
+ @Override
+ public T contentType(RDFSyntax rdfSyntax) throws IllegalArgumentException {
+<span class="fc" id="L241"> AbstractRDFParser<T> c = clone();</span>
+<span class="fc" id="L242"> c.contentTypeSyntax = Optional.ofNullable(rdfSyntax);</span>
+<span class="fc" id="L243"> c.contentType = c.contentTypeSyntax.map(syntax -> syntax.mediaType);</span>
+<span class="fc" id="L244"> return c.asT();</span>
+ }
+
+ @Override
+ public T contentType(String contentType) throws IllegalArgumentException {
+<span class="nc" id="L249"> AbstractRDFParser<T> c = clone();</span>
+<span class="nc" id="L250"> c.contentType = Optional.ofNullable(contentType);</span>
+<span class="nc" id="L251"> c.contentTypeSyntax = c.contentType.flatMap(RDFSyntax::byMediaType);</span>
+<span class="nc" id="L252"> return c.asT();</span>
+ }
+
+ @Override
+ public T base(IRI base) {
+<span class="fc" id="L257"> AbstractRDFParser<T> c = clone();</span>
+<span class="fc" id="L258"> c.base = Optional.ofNullable(base);</span>
+<span class="fc" id="L259"> c.base.ifPresent(i -> checkIsAbsolute(i));</span>
+<span class="fc" id="L260"> return c.asT();</span>
+ }
+
+ @Override
+ public T base(String base) throws IllegalArgumentException {
+<span class="nc" id="L265"> return base(internalRdfTermFactory.createIRI(base));</span>
+ }
+
+ @Override
+ public T source(InputStream inputStream) {
+<span class="fc" id="L270"> AbstractRDFParser<T> c = clone();</span>
+<span class="fc" id="L271"> c.resetSource();</span>
+<span class="fc" id="L272"> c.sourceInputStream = Optional.ofNullable(inputStream);</span>
+<span class="fc" id="L273"> return c.asT();</span>
+ }
+
+ @Override
+ public T source(Path file) {
+<span class="fc" id="L278"> AbstractRDFParser<T> c = clone();</span>
+<span class="fc" id="L279"> c.resetSource();</span>
+<span class="fc" id="L280"> c.sourceFile = Optional.ofNullable(file);</span>
+<span class="fc" id="L281"> return c.asT();</span>
+ }
+
+ @Override
+ public T source(IRI iri) {
+<span class="fc" id="L286"> AbstractRDFParser<T> c = clone();</span>
+<span class="fc" id="L287"> c.resetSource();</span>
+<span class="fc" id="L288"> c.sourceIri = Optional.ofNullable(iri);</span>
+<span class="fc" id="L289"> c.sourceIri.ifPresent(i -> checkIsAbsolute(i));</span>
+<span class="fc" id="L290"> return c.asT();</span>
+ }
+
+ @Override
+ public T source(String iri) throws IllegalArgumentException {
+<span class="nc" id="L295"> AbstractRDFParser<T> c = clone();</span>
+<span class="nc" id="L296"> c.resetSource();</span>
+<span class="nc" id="L297"> c.sourceIri = Optional.ofNullable(iri).map(internalRdfTermFactory::createIRI);</span>
+<span class="nc" id="L298"> c.sourceIri.ifPresent(i -> checkIsAbsolute(i));</span>
+<span class="nc" id="L299"> return source(internalRdfTermFactory.createIRI(iri));</span>
+ }
+
+ /**
+ * Check if an iri is absolute.
+ * <p>
+ * Used by {@link #source(String)} and {@link #base(String)}.
+ *
+ * @param iri
+ * IRI to check
+ * @throws IllegalArgumentException
+ * If the IRI is not absolute
+ */
+ protected void checkIsAbsolute(IRI iri) throws IllegalArgumentException {
+<span class="pc bpc" id="L313" title="1 of 2 branches missed."> if (!URI.create(iri.getIRIString()).isAbsolute()) {</span>
+<span class="nc" id="L314"> throw new IllegalArgumentException("IRI is not absolute: " + iri);</span>
+ }
+<span class="fc" id="L316"> }</span>
+
+ /**
+ * Check that one and only one source is present and valid.
+ * <p>
+ * Used by {@link #parse()}.
+ * <p>
+ * Subclasses might override this method, e.g. to support other source
+ * combinations, or to check if the sourceIri is resolvable.
+ *
+ * @throws IOException
+ * If a source file can't be read
+ */
+ protected void checkSource() throws IOException {
+<span class="fc bfc" id="L330" title="All 6 branches covered."> if (!sourceFile.isPresent() && !sourceInputStream.isPresent() && !sourceIri.isPresent()) {</span>
+<span class="fc" id="L331"> throw new IllegalStateException("No source has been set");</span>
+ }
+<span class="pc bpc" id="L333" title="1 of 4 branches missed."> if (sourceIri.isPresent() && sourceInputStream.isPresent()) {</span>
+<span class="nc" id="L334"> throw new IllegalStateException("Both sourceIri and sourceInputStream have been set");</span>
+ }
+<span class="pc bpc" id="L336" title="1 of 4 branches missed."> if (sourceIri.isPresent() && sourceFile.isPresent()) {</span>
+<span class="nc" id="L337"> throw new IllegalStateException("Both sourceIri and sourceFile have been set");</span>
+ }
+<span class="pc bpc" id="L339" title="1 of 4 branches missed."> if (sourceInputStream.isPresent() && sourceFile.isPresent()) {</span>
+<span class="nc" id="L340"> throw new IllegalStateException("Both sourceInputStream and sourceFile have been set");</span>
+ }
+<span class="fc bfc" id="L342" title="All 4 branches covered."> if (sourceFile.isPresent() && !sourceFile.filter(Files::isReadable).isPresent()) {</span>
+<span class="fc" id="L343"> throw new IOException("Can't read file: " + sourceFile);</span>
+ }
+<span class="fc" id="L345"> }</span>
+
+ /**
+ * Check if base is required.
+ *
+ * @throws IllegalStateException
+ * if base is required, but not set.
+ */
+ protected void checkBaseRequired() throws IllegalStateException {
+<span class="fc bfc" id="L354" title="All 4 branches covered."> if (!base.isPresent() && sourceInputStream.isPresent()</span>
+<span class="pc bpc" id="L355" title="3 of 6 branches missed."> && !contentTypeSyntax.filter(t -> t == RDFSyntax.NQUADS || t == RDFSyntax.NTRIPLES).isPresent()) {</span>
+<span class="fc" id="L356"> throw new IllegalStateException("base iri required for inputstream source");</span>
+ }
+<span class="fc" id="L358"> }</span>
+
+ /**
+ * Reset all source* fields to Optional.empty()
+ * <p>
+ * Subclasses should override this and call <code>super.resetSource()</code>
+ * if they need to reset any additional source* fields.
+ *
+ */
+ protected void resetSource() {
+<span class="fc" id="L368"> sourceInputStream = Optional.empty();</span>
+<span class="fc" id="L369"> sourceIri = Optional.empty();</span>
+<span class="fc" id="L370"> sourceFile = Optional.empty();</span>
+<span class="fc" id="L371"> }</span>
+
+ /**
+ * Reset all optional target* fields to {@link Optional#empty()}.
+ * <p>
+ * Note that the consumer set for {@link #getTarget()} is
+ * <strong>note</strong> reset.
+ * <p>
+ * Subclasses should override this and call <code>super.resetTarget()</code>
+ * if they need to reset any additional target* fields.
+ *
+ */
+ protected void resetTarget() {
+<span class="fc" id="L384"> targetDataset = Optional.empty();</span>
+<span class="fc" id="L385"> targetGraph = Optional.empty();</span>
+<span class="fc" id="L386"> }</span>
+
+ /**
+ * Parse {@link #sourceInputStream}, {@link #sourceFile} or
+ * {@link #sourceIri}.
+ * <p>
+ * One of the source fields MUST be present, as checked by
+ * {@link #checkSource()}.
+ * <p>
+ * {@link #checkBaseRequired()} is called to verify if {@link #getBase()} is
+ * required.
+ *
+ * @throws IOException
+ * If the source could not be read
+ * @throws RDFParseException
+ * If the source could not be parsed (e.g. a .ttl file was not
+ * valid Turtle)
+ */
+ protected abstract void parseSynchronusly() throws IOException, RDFParseException;
+
+ /**
+ * Prepare a clone of this RDFParser which have been checked and completed.
+ * <p>
+ * The returned clone will always have {@link #getTarget()} and
+ * {@link #getRdfTermFactory()} present.
+ * <p>
+ * If the {@link #getSourceFile()} is present, but the {@link #getBase()} is
+ * not present, the base will be set to the <code>file:///</code> IRI for
+ * the Path's real path (e.g. resolving any symbolic links).
+ *
+ * @return A completed and checked clone of this RDFParser
+ * @throws IOException
+ * If the source was not accessible (e.g. a file was not found)
+ * @throws IllegalStateException
+ * If the parser was not in a compatible setting (e.g.
+ * contentType was an invalid string)
+ */
+ protected T prepareForParsing() throws IOException, IllegalStateException {
+<span class="fc" id="L424"> checkSource();</span>
+<span class="fc" id="L425"> checkBaseRequired();</span>
+<span class="fc" id="L426"> checkContentType();</span>
+<span class="fc" id="L427"> checkTarget();</span>
+
+ // We'll make a clone of our current state which will be passed to
+ // parseSynchronously()
+<span class="fc" id="L431"> AbstractRDFParser<T> c = clone();</span>
+
+ // Use a fresh SimpleRDF for each parse
+<span class="pc bpc" id="L434" title="1 of 2 branches missed."> if (!c.rdfTermFactory.isPresent()) {</span>
+<span class="fc" id="L435"> c.rdfTermFactory = Optional.of(createRDFTermFactory());</span>
+ }
+ // sourceFile, but no base? Let's follow any symlinks and use
+ // the file:/// URI
+<span class="pc bpc" id="L439" title="1 of 4 branches missed."> if (c.sourceFile.isPresent() && !c.base.isPresent()) {</span>
+<span class="fc" id="L440"> URI baseUri = c.sourceFile.get().toRealPath().toUri();</span>
+<span class="fc" id="L441"> c.base = Optional.of(internalRdfTermFactory.createIRI(baseUri.toString()));</span>
+ }
+
+<span class="fc" id="L444"> return c.asT();</span>
+ }
+
+ /**
+ * Subclasses can override this method to check the target is valid.
+ * <p>
+ * The default implementation throws an IllegalStateException if the target
+ * has not been set.
+ */
+ protected void checkTarget() {
+<span class="pc bpc" id="L454" title="1 of 2 branches missed."> if (target == null) {</span>
+<span class="nc" id="L455"> throw new IllegalStateException("target has not been set");</span>
+ }
+<span class="pc bpc" id="L457" title="2 of 4 branches missed."> if (targetGraph.isPresent() && targetDataset.isPresent()) {</span>
+ // This should not happen as each target(..) method resets the
+ // optionals
+<span class="nc" id="L460"> throw new IllegalStateException("targetGraph and targetDataset can't both be set");</span>
+ }
+<span class="fc" id="L462"> }</span>
+
+ /**
+ * Subclasses can override this method to check compatibility with the
+ * contentType setting.
+ *
+ * @throws IllegalStateException
+ * if the {@link #getContentType()} or
+ * {@link #getContentTypeSyntax()} is not compatible or invalid
+ */
+ protected void checkContentType() throws IllegalStateException {
+<span class="fc" id="L473"> }</span>
+
+ /**
+ * Guess RDFSyntax from a local file's extension.
+ * <p>
+ * This method can be used by subclasses if {@link #getContentType()} is not
+ * present and {@link #getSourceFile()} is set.
+ *
+ * @param path
+ * Path which extension should be checked
+ * @return The {@link RDFSyntax} which has a matching
+ * {@link RDFSyntax#fileExtension}, otherwise
+ * {@link Optional#empty()}.
+ */
+ protected static Optional<RDFSyntax> guessRDFSyntax(Path path) {
+<span class="fc" id="L488"> return fileExtension(path).flatMap(RDFSyntax::byFileExtension);</span>
+ }
+
+ /**
+ * Return the file extension of a Path - if any.
+ * <p>
+ * The returned file extension includes the leading <code>.</code>
+ * <p>
+ * Note that this only returns the last extension, e.g. the file extension
+ * for <code>archive.tar.gz</code> would be <code>.gz</code>
+ *
+ * @param path
+ * Path which filename might contain an extension
+ * @return File extension (including the leading <code>.</code>, or
+ * {@link Optional#empty()} if the path has no extension
+ */
+ private static Optional<String> fileExtension(Path path) {
+<span class="fc" id="L505"> Path fileName = path.getFileName();</span>
+<span class="pc bpc" id="L506" title="1 of 2 branches missed."> if (fileName == null) {</span>
+<span class="nc" id="L507"> return Optional.empty();</span>
+ }
+<span class="fc" id="L509"> String filenameStr = fileName.toString();</span>
+<span class="fc" id="L510"> int last = filenameStr.lastIndexOf(".");</span>
+<span class="pc bpc" id="L511" title="1 of 2 branches missed."> if (last > -1) {</span>
+<span class="fc" id="L512"> return Optional.of(filenameStr.substring(last));</span>
+ }
+<span class="nc" id="L514"> return Optional.empty();</span>
+ }
+
+ /**
+ * Create a new {@link RDF} for a parse session.
+ * <p>
+ * This is called by {@link #parse()} to set {@link #rdfTermFactory(RDF)} if
+ * it is {@link Optional#empty()}.
+ * <p>
+ * As parsed blank nodes might be made with
+ * {@link RDF#createBlankNode(String)}, each call to this method SHOULD
+ * return a new RDF instance.
+ *
+ * @return A new {@link RDF}
+ */
+ protected RDF createRDFTermFactory() {
+<span class="fc" id="L530"> return new SimpleRDF();</span>
+ }
+
+ @Override
+ public Future<ParseResult> parse() throws IOException, IllegalStateException {
+<span class="fc" id="L535"> final AbstractRDFParser<T> c = prepareForParsing();</span>
+<span class="fc" id="L536"> return threadpool.submit(() -> {</span>
+<span class="fc" id="L537"> c.parseSynchronusly();</span>
+<span class="fc" id="L538"> return null;</span>
+ });
+ }
+
+ @Override
+ public T target(Consumer<Quad> consumer) {
+<span class="fc" id="L544"> AbstractRDFParser<T> c = clone();</span>
+<span class="fc" id="L545"> c.resetTarget();</span>
+<span class="fc" id="L546"> c.target = consumer;</span>
+<span class="fc" id="L547"> return c.asT();</span>
+ }
+
+ @Override
+ public T target(Dataset dataset) {
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+<span class="nc" id="L553"> AbstractRDFParser<T> c = (AbstractRDFParser) RDFParser.super.target(dataset);</span>
+<span class="nc" id="L554"> c.resetTarget();</span>
+<span class="nc" id="L555"> c.targetDataset = Optional.of(dataset);</span>
+<span class="nc" id="L556"> return c.asT();</span>
+ }
+
+ @Override
+ public T target(Graph graph) {
+ @SuppressWarnings({ "rawtypes", "unchecked" }) // super calls our
+ // .clone()
+<span class="fc" id="L563"> AbstractRDFParser<T> c = (AbstractRDFParser) RDFParser.super.target(graph);</span>
+<span class="fc" id="L564"> c.resetTarget();</span>
+<span class="fc" id="L565"> c.targetGraph = Optional.of(graph);</span>
+<span class="fc" id="L566"> return c.asT();</span>
+ }
+
+}
+</pre><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.6.201602180812</span></div></body></html>
\ No newline at end of file
Added: websites/production/commonsrdf/content/jacoco/org.apache.commons.rdf.simple.experimental/RDFParseException.html
==============================================================================
--- websites/production/commonsrdf/content/jacoco/org.apache.commons.rdf.simple.experimental/RDFParseException.html (added)
+++ websites/production/commonsrdf/content/jacoco/org.apache.commons.rdf.simple.experimental/RDFParseException.html Wed Nov 16 10:57:28 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="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>RDFParseException</title><script type="text/javascript" src="../.resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Commons RDF impl: Simple</a> > <a href="index.html" class="el_package">org.apache.commons.rdf.simple.experimental</a> > <span class="el_class">RDFParseException</span></div><h1>RDFParseException</h1><table class="coverage" cellspacing="0" id="coverageta
ble"><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">31 of 31</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">5</td><td class="ctr2">5<
/td><td class="ctr1">13</td><td class="ctr2">13</td><td class="ctr1">5</td><td class="ctr2">5</td></tr></tfoot><tbody><tr><td id="a3"><a href="RDFParseException.java.html#L33" class="el_method">RDFParseException(RDFParser, String, Throwable)</a></td><td class="bar" id="b0"><img src="../.resources/redbar.gif" width="120" height="10" title="8" alt="8"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</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="a2"><a href="RDFParseException.java.html#L38" class="el_method">RDFParseException(RDFParser, String)</a></td><td class="bar" id="b1"><img src="../.resources/redbar.gif" width="105" height="10" title="7" alt="7"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td clas
s="ctr2" id="g1">1</td><td class="ctr1" id="h1">3</td><td class="ctr2" id="i1">3</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a4"><a href="RDFParseException.java.html#L43" class="el_method">RDFParseException(RDFParser, Throwable)</a></td><td class="bar" id="b2"><img src="../.resources/redbar.gif" width="105" height="10" title="7" alt="7"/></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">3</td><td class="ctr2" id="i2">3</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a1"><a href="RDFParseException.java.html#L28" class="el_method">RDFParseException(RDFParser)</a></td><td class="bar" id="b3"><img src="../.resources/redbar.gif" width="90" height="10" title="6" alt="6"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f
3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">3</td><td class="ctr2" id="i3">3</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a0"><a href="RDFParseException.java.html#L48" class="el_method">getRDFParserBuilder()</a></td><td class="bar" id="b4"><img src="../.resources/redbar.gif" width="45" height="10" title="3" alt="3"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">1</td><td class="ctr2" id="i4">1</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.6.201602180812</span></div></body></html>
\ No newline at end of file
Added: websites/production/commonsrdf/content/jacoco/org.apache.commons.rdf.simple.experimental/RDFParseException.java.html
==============================================================================
--- websites/production/commonsrdf/content/jacoco/org.apache.commons.rdf.simple.experimental/RDFParseException.java.html (added)
+++ websites/production/commonsrdf/content/jacoco/org.apache.commons.rdf.simple.experimental/RDFParseException.java.html Wed Nov 16 10:57:28 2016
@@ -0,0 +1,51 @@
+<?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="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>RDFParseException.java</title><link rel="stylesheet" href="../.resources/prettify.css" type="text/css"/><script type="text/javascript" src="../.resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Commons RDF impl: Simple</a> > <a href="index.source.html" class="el_package">org.apache.commons.rdf.simple.experimental</a> > <span class="el_source">RDFParse
Exception.java</span></div><h1>RDFParseException.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.simple.experimental;
+
+import org.apache.commons.rdf.experimental.RDFParser;
+
+public class RDFParseException extends Exception {
+ private static final long serialVersionUID = 5427752643780702976L;
+ private RDFParser builder;
+
+ public RDFParseException(RDFParser builder) {
+<span class="nc" id="L28"> super();</span>
+<span class="nc" id="L29"> this.builder = builder;</span>
+<span class="nc" id="L30"> }</span>
+
+ public RDFParseException(RDFParser builder, String message, Throwable cause) {
+<span class="nc" id="L33"> super(message, cause);</span>
+<span class="nc" id="L34"> this.builder = builder;</span>
+<span class="nc" id="L35"> }</span>
+
+ public RDFParseException(RDFParser builder, String message) {
+<span class="nc" id="L38"> super(message);</span>
+<span class="nc" id="L39"> this.builder = builder;</span>
+<span class="nc" id="L40"> }</span>
+
+ public RDFParseException(RDFParser builder, Throwable cause) {
+<span class="nc" id="L43"> super(cause);</span>
+<span class="nc" id="L44"> this.builder = builder;</span>
+<span class="nc" id="L45"> }</span>
+
+ public RDFParser getRDFParserBuilder() {
+<span class="nc" id="L48"> return builder;</span>
+ }
+}
+</pre><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.6.201602180812</span></div></body></html>
\ No newline at end of file
Added: websites/production/commonsrdf/content/jacoco/org.apache.commons.rdf.simple.experimental/index.html
==============================================================================
--- websites/production/commonsrdf/content/jacoco/org.apache.commons.rdf.simple.experimental/index.html (added)
+++ websites/production/commonsrdf/content/jacoco/org.apache.commons.rdf.simple.experimental/index.html Wed Nov 16 10:57:28 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="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>org.apache.commons.rdf.simple.experimental</title><script type="text/javascript" src="../.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="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Commons RDF impl: Simple</a> > <span class="el_package">org.apache.commons.rdf.simple.experimental</span></div><h1>org.apache.commons.rdf.simple.experim
ental</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="toggleSo
rt(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">164 of 560</td><td class="ctr2">71%</td><td class="bar">14 of 50</td><td class="ctr2">72%</td><td class="ctr1">26</td><td class="ctr2">75</td><td class="ctr1">42</td><td class="ctr2">140</td><td class="ctr1">13</td><td class="ctr2">50</td><td class="ctr1">1</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a0"><a href="AbstractRDFParser.html" class="el_class">AbstractRDFParser</a></td><td class="bar" id="b0"><img src="../.resources/redbar.gif" width="30" height="10" title="133" alt="133"/><img src="../.resources/greenbar.gif" width="89" height="10" title="396" alt="396"/></td><td class="ctr2" id="c0">75%</td><td class="bar" id="d0"><img src="../.resources/redbar.gif" width="33" height="10" title="14" alt="14"/><img src="../.resources/greenbar.gif" width="86" height="10" title="36" alt="36"/></td><td class="ctr2" id="e0">72%</td><td class="ctr1" id="f0">21</td><td class="ctr2" id="g0">70</td><td clas
s="ctr1" id="h0">29</td><td class="ctr2" id="i0">127</td><td class="ctr1" id="j0">8</td><td class="ctr2" id="k0">45</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a1"><a href="RDFParseException.html" class="el_class">RDFParseException</a></td><td class="bar" id="b1"><img src="../.resources/redbar.gif" width="7" height="10" title="31" alt="31"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">5</td><td class="ctr2" id="g1">5</td><td class="ctr1" id="h1">13</td><td class="ctr2" id="i1">13</td><td class="ctr1" id="j1">5</td><td class="ctr2" id="k1">5</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.6.201602180812</span></div></body></html>
\ No newline at end of file
Added: websites/production/commonsrdf/content/jacoco/org.apache.commons.rdf.simple.experimental/index.source.html
==============================================================================
--- websites/production/commonsrdf/content/jacoco/org.apache.commons.rdf.simple.experimental/index.source.html (added)
+++ websites/production/commonsrdf/content/jacoco/org.apache.commons.rdf.simple.experimental/index.source.html Wed Nov 16 10:57:28 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="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>org.apache.commons.rdf.simple.experimental</title><script type="text/javascript" src="../.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="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Commons RDF impl: Simple</a> > <span class="el_package">org.apache.commons.rdf.simple.experimental</span></div><h1>org.apache.commons.rdf.simple.experimental</h1><ta
ble 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)">Cla
sses</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">164 of 560</td><td class="ctr2">71%</td><td class="bar">14 of 50</td><td class="ctr2">72%</td><td class="ctr1">26</td><td class="ctr2">75</td><td class="ctr1">42</td><td class="ctr2">140</td><td class="ctr1">13</td><td class="ctr2">50</td><td class="ctr1">1</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a0"><a href="AbstractRDFParser.java.html" class="el_source">AbstractRDFParser.java</a></td><td class="bar" id="b0"><img src="../.resources/redbar.gif" width="30" height="10" title="133" alt="133"/><img src="../.resources/greenbar.gif" width="89" height="10" title="396" alt="396"/></td><td class="ctr2" id="c0">75%</td><td class="bar" id="d0"><img src="../.resources/redbar.gif" width="33" height="10" title="14" alt="14"/><img src="../.resources/greenbar.gif" width="86" height="10" title="36" alt="36"/></td><td class="ctr2" id="e0">72%</td><td class="ctr1" id="f0">21</td><td class="ctr2" id="g0">70</td><td class=
"ctr1" id="h0">29</td><td class="ctr2" id="i0">127</td><td class="ctr1" id="j0">8</td><td class="ctr2" id="k0">45</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a1"><a href="RDFParseException.java.html" class="el_source">RDFParseException.java</a></td><td class="bar" id="b1"><img src="../.resources/redbar.gif" width="7" height="10" title="31" alt="31"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">5</td><td class="ctr2" id="g1">5</td><td class="ctr1" id="h1">13</td><td class="ctr2" id="i1">13</td><td class="ctr1" id="j1">5</td><td class="ctr2" id="k1">5</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.6.201602180812</span></div></body></html>
\ No newline at end of file
Added: websites/production/commonsrdf/content/jacoco/org.apache.commons.rdf.simple/BlankNodeImpl.html
==============================================================================
--- websites/production/commonsrdf/content/jacoco/org.apache.commons.rdf.simple/BlankNodeImpl.html (added)
+++ websites/production/commonsrdf/content/jacoco/org.apache.commons.rdf.simple/BlankNodeImpl.html Wed Nov 16 10:57:28 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="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>BlankNodeImpl</title><script type="text/javascript" src="../.resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Commons RDF impl: Simple</a> > <a href="index.html" class="el_package">org.apache.commons.rdf.simple</a> > <span class="el_class">BlankNodeImpl</span></div><h1>BlankNodeImpl</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">8 of 109</td><td class="ctr2">93%</td><td class="bar">3 of 14</td><td class="ctr2">79%</td><td class="ctr1">3</td><td class="ctr2">15</td><td class="ctr1">3
</td><td class="ctr2">27</td><td class="ctr1">1</td><td class="ctr2">8</td></tr></tfoot><tbody><tr><td id="a2"><a href="BlankNodeImpl.java.html#L92" class="el_method">equals(Object)</a></td><td class="bar" id="b0"><img src="../.resources/redbar.gif" width="15" height="10" title="5" alt="5"/><img src="../.resources/greenbar.gif" width="90" height="10" title="30" alt="30"/></td><td class="ctr2" id="c6">86%</td><td class="bar" id="d0"><img src="../.resources/redbar.gif" width="30" height="10" title="3" alt="3"/><img src="../.resources/greenbar.gif" width="90" height="10" title="9" alt="9"/></td><td class="ctr2" id="e1">75%</td><td class="ctr1" id="f0">2</td><td class="ctr2" id="g0">7</td><td class="ctr1" id="h0">2</td><td class="ctr2" id="i0">13</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a6"><a href="BlankNodeImpl.java.html#L82" class="el_method">toString()</a></td><td class="bar" id="b1"><img src="../.resources/redbar.gif" width="9" height="10"
title="3" alt="3"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i4">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a href="BlankNodeImpl.java.html#L42" class="el_method">BlankNodeImpl(UUID, String)</a></td><td class="bar" id="b2"><img src="../.resources/greenbar.gif" width="120" height="10" title="40" alt="40"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d1"><img src="../.resources/greenbar.gif" width="20" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">100%</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g1">2</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i1">6</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a4"><a href="BlankNodeImpl.java.html#L77" class="el_method">ntriplesString()</a></td><td cla
ss="bar" id="b3"><img src="../.resources/greenbar.gif" width="30" height="10" title="10" alt="10"/></td><td class="ctr2" id="c1">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="h3">0</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a0"><a href="BlankNodeImpl.java.html#L39" class="el_method">BlankNodeImpl()</a></td><td class="bar" id="b4"><img src="../.resources/greenbar.gif" width="21" height="10" title="7" alt="7"/></td><td class="ctr2" id="c2">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="i2">2</td><td class="ctr1" id="j4">0</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a5"><a href="BlankNodeImpl.java.html#L33" class="el_method">static {...}</a></td><td class="bar" id="b5"><img
src="../.resources/greenbar.gif" width="21" height="10" title="7" alt="7"/></td><td class="ctr2" id="c3">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="i3">2</td><td class="ctr1" id="j5">0</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a3"><a href="BlankNodeImpl.java.html#L87" class="el_method">hashCode()</a></td><td class="bar" id="b6"><img src="../.resources/greenbar.gif" width="12" height="10" title="4" alt="4"/></td><td class="ctr2" id="c4">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="BlankNodeImpl.java.html#L72" class="el_method">uniqueReference()</a></td><td class="bar" id="b7"><img src="../.resources/green
bar.gif" width="9" height="10" title="3" alt="3"/></td><td class="ctr2" id="c5">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></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.6.201602180812</span></div></body></html>
\ No newline at end of file
Added: websites/production/commonsrdf/content/jacoco/org.apache.commons.rdf.simple/BlankNodeImpl.java.html
==============================================================================
--- websites/production/commonsrdf/content/jacoco/org.apache.commons.rdf.simple/BlankNodeImpl.java.html (added)
+++ websites/production/commonsrdf/content/jacoco/org.apache.commons.rdf.simple/BlankNodeImpl.java.html Wed Nov 16 10:57:28 2016
@@ -0,0 +1,114 @@
+<?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="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>BlankNodeImpl.java</title><link rel="stylesheet" href="../.resources/prettify.css" type="text/css"/><script type="text/javascript" src="../.resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Commons RDF impl: Simple</a> > <a href="index.source.html" class="el_package">org.apache.commons.rdf.simple</a> > <span class="el_source">BlankNodeImpl.java</span>
</div><h1>BlankNodeImpl.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.simple;
+
+import java.nio.charset.StandardCharsets;
+import java.util.Objects;
+import java.util.UUID;
+import java.util.concurrent.atomic.AtomicLong;
+
+import org.apache.commons.rdf.api.BlankNode;
+import org.apache.commons.rdf.simple.SimpleRDF.SimpleRDFTerm;
+
+/**
+ * A simple implementation of BlankNode.
+ */
+final class BlankNodeImpl implements BlankNode, SimpleRDFTerm {
+
+<span class="fc" id="L33"> private static final UUID SALT = UUID.randomUUID();</span>
+<span class="fc" id="L34"> private static final AtomicLong COUNTER = new AtomicLong();</span>
+
+ private final String uniqueReference;
+
+ public BlankNodeImpl() {
+<span class="fc" id="L39"> this(SALT, Long.toString(COUNTER.incrementAndGet()));</span>
+<span class="fc" id="L40"> }</span>
+
+<span class="fc" id="L42"> public BlankNodeImpl(UUID uuidSalt, String name) {</span>
+<span class="fc bfc" id="L43" title="All 2 branches covered."> if (Objects.requireNonNull(name).isEmpty()) {</span>
+<span class="fc" id="L44"> throw new IllegalArgumentException("Invalid blank node id: " + name);</span>
+ }
+
+ // Build a semi-URN - to be hashed for a name-based UUID below
+ // Both the scope and the id are used to create the UUID, ensuring that
+ // a caller can reliably create the same bnode if necessary by sending
+ // in the same scope to RDF.createBlankNode(String)
+<span class="fc" id="L51"> String uuidInput = "urn:uuid:" + uuidSalt + "#" + name;</span>
+
+ // The above is not a good value for this.id, as the id
+ // needs to be further escaped for
+ // ntriplesString() (there are no restrictions on
+ // RDF.createBlankNode(String) ).
+
+ // Rather than implement ntriples escaping here, and knowing
+ // our uniqueReference() contain a UUID anyway, we simply
+ // create another name-based UUID, and use it within both
+ // uniqueReference() and within ntriplesString().
+ //
+ // A side-effect from this is that the blank node identifier
+ // is not preserved or shown in ntriplesString. In a way
+ // this is a feature, not a bug. as the contract for RDF
+ // has no such requirement.
+<span class="fc" id="L67"> this.uniqueReference = UUID.nameUUIDFromBytes(uuidInput.getBytes(StandardCharsets.UTF_8)).toString();</span>
+<span class="fc" id="L68"> }</span>
+
+ @Override
+ public String uniqueReference() {
+<span class="fc" id="L72"> return uniqueReference;</span>
+ }
+
+ @Override
+ public String ntriplesString() {
+<span class="fc" id="L77"> return "_:" + uniqueReference;</span>
+ }
+
+ @Override
+ public String toString() {
+<span class="nc" id="L82"> return ntriplesString();</span>
+ }
+
+ @Override
+ public int hashCode() {
+<span class="fc" id="L87"> return uniqueReference.hashCode();</span>
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+<span class="fc bfc" id="L92" title="All 2 branches covered."> if (this == obj) {</span>
+<span class="fc" id="L93"> return true;</span>
+ }
+<span class="fc bfc" id="L95" title="All 2 branches covered."> if (obj == null) {</span>
+<span class="fc" id="L96"> return false;</span>
+ }
+ // We don't support equality with other implementations
+<span class="fc bfc" id="L99" title="All 2 branches covered."> if (!(obj instanceof BlankNodeImpl)) {</span>
+<span class="fc" id="L100"> return false;</span>
+ }
+<span class="fc" id="L102"> BlankNodeImpl other = (BlankNodeImpl) obj;</span>
+<span class="pc bpc" id="L103" title="1 of 2 branches missed."> if (uniqueReference == null) {</span>
+<span class="nc bnc" id="L104" title="All 2 branches missed."> if (other.uniqueReference != null) {</span>
+<span class="nc" id="L105"> return false;</span>
+ }
+<span class="fc bfc" id="L107" title="All 2 branches covered."> } else if (!uniqueReference.equals(other.uniqueReference)) {</span>
+<span class="fc" id="L108"> return false;</span>
+ }
+<span class="fc" id="L110"> return true;</span>
+ }
+
+}
+</pre><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.6.201602180812</span></div></body></html>
\ No newline at end of file