You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by st...@apache.org on 2018/02/15 01:55:05 UTC

[10/17] commons-rdf git commit: fluent API moved into commons-rdf-api/

fluent API moved into commons-rdf-api/


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

Branch: refs/heads/fluent-parser
Commit: 96fb0f06b58add16869637e5ab18ac5d7dbd1be0
Parents: 577614d
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Wed Feb 14 19:03:08 2018 +0000
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Wed Feb 14 19:03:08 2018 +0000

----------------------------------------------------------------------
 .../commons/rdf/api/fluentparser/Async.java     |  31 -----
 .../rdf/api/fluentparser/NeedSourceBased.java   |  29 -----
 .../rdf/api/fluentparser/NeedSourceOrBase.java  |  25 ----
 .../rdf/api/fluentparser/NeedTarget.java        |  25 ----
 .../rdf/api/fluentparser/NeedTargetOrRDF.java   |  25 ----
 .../fluentparser/NeedTargetOrRDFOrSyntax.java   |  22 ----
 .../rdf/api/fluentparser/OptionalTarget.java    |  25 ----
 .../fluentparser/OptionalTargetOrSyntax.java    |   5 -
 .../commons/rdf/api/fluentparser/Sync.java      |  32 -----
 .../rdf/api/fluentparser/_Buildable.java        |  50 -------
 .../api/fluentparser/_NeedIdentifiedSource.java |  35 -----
 .../rdf/api/fluentparser/_NeedSyntax.java       |   7 -
 .../rdf/api/fluentparser/_NeedTarget.java       |  30 -----
 .../rdf/api/fluentparser/_NeedTargetOrRDF.java  |  21 ---
 .../rdf/api/fluentparser/_OptionalBase.java     |  26 ----
 .../rdf/api/fluentparser/_OptionalRDF.java      |  25 ----
 .../rdf/api/fluentparser/package-info.java      |  21 ---
 .../commons/rdf/api/fluentwriter/Async.java     |  14 --
 .../rdf/api/fluentwriter/NeedSource.java        |  20 ---
 .../rdf/api/fluentwriter/NeedTarget.java        |  34 -----
 .../commons/rdf/api/fluentwriter/Sync.java      |  16 ---
 .../rdf/api/fluentwriter/_Buildable.java        |  50 -------
 .../rdf/api/fluentwriter/package-info.java      |  21 ---
 .../org/apache/commons/rdf/api/io/Option.java   |  25 ----
 .../org/apache/commons/rdf/api/io/Parsed.java   |  26 ----
 .../commons/rdf/api/io/ParserBuilder.java       |   9 --
 .../commons/rdf/api/io/ParserFactory.java       |  27 ----
 .../apache/commons/rdf/api/io/ParserSource.java |  33 -----
 .../apache/commons/rdf/api/io/ParserTarget.java |  32 -----
 .../commons/rdf/api/io/WriterFactory.java       |  25 ----
 .../apache/commons/rdf/api/io/WriterSource.java |   9 --
 .../apache/commons/rdf/api/io/WriterTarget.java |   8 --
 .../org/apache/commons/rdf/api/io/Written.java  |   9 --
 .../commons/rdf/api/io/_SupportedSyntaxes.java  |  28 ----
 .../apache/commons/rdf/api/io/package-info.java |  21 ---
 .../apache/commons/rdf/experimental/Test.java   | 130 -------------------
 .../commons/rdf/api/fluentparser/Async.java     |  31 +++++
 .../rdf/api/fluentparser/NeedSourceBased.java   |  29 +++++
 .../rdf/api/fluentparser/NeedSourceOrBase.java  |  25 ++++
 .../rdf/api/fluentparser/NeedTarget.java        |  25 ++++
 .../rdf/api/fluentparser/NeedTargetOrRDF.java   |  25 ++++
 .../fluentparser/NeedTargetOrRDFOrSyntax.java   |  22 ++++
 .../rdf/api/fluentparser/OptionalTarget.java    |  25 ++++
 .../fluentparser/OptionalTargetOrSyntax.java    |   5 +
 .../commons/rdf/api/fluentparser/Sync.java      |  32 +++++
 .../rdf/api/fluentparser/_Buildable.java        |  50 +++++++
 .../api/fluentparser/_NeedIdentifiedSource.java |  35 +++++
 .../rdf/api/fluentparser/_NeedSyntax.java       |   7 +
 .../rdf/api/fluentparser/_NeedTarget.java       |  30 +++++
 .../rdf/api/fluentparser/_NeedTargetOrRDF.java  |  21 +++
 .../rdf/api/fluentparser/_OptionalBase.java     |  26 ++++
 .../rdf/api/fluentparser/_OptionalRDF.java      |  25 ++++
 .../rdf/api/fluentparser/package-info.java      |  21 +++
 .../commons/rdf/api/fluentwriter/Async.java     |  14 ++
 .../rdf/api/fluentwriter/NeedSource.java        |  20 +++
 .../rdf/api/fluentwriter/NeedTarget.java        |  34 +++++
 .../commons/rdf/api/fluentwriter/Sync.java      |  16 +++
 .../rdf/api/fluentwriter/_Buildable.java        |  50 +++++++
 .../rdf/api/fluentwriter/package-info.java      |  21 +++
 .../org/apache/commons/rdf/api/io/Option.java   |  25 ++++
 .../org/apache/commons/rdf/api/io/Parsed.java   |  26 ++++
 .../commons/rdf/api/io/ParserBuilder.java       |   9 ++
 .../commons/rdf/api/io/ParserFactory.java       |  27 ++++
 .../apache/commons/rdf/api/io/ParserSource.java |  33 +++++
 .../apache/commons/rdf/api/io/ParserTarget.java |  32 +++++
 .../commons/rdf/api/io/WriterFactory.java       |  25 ++++
 .../apache/commons/rdf/api/io/WriterSource.java |   9 ++
 .../apache/commons/rdf/api/io/WriterTarget.java |   8 ++
 .../org/apache/commons/rdf/api/io/Written.java  |   9 ++
 .../commons/rdf/api/io/_SupportedSyntaxes.java  |  28 ++++
 .../apache/commons/rdf/api/io/package-info.java |  21 +++
 71 files changed, 841 insertions(+), 971 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/fluentparser/Async.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/fluentparser/Async.java b/api/src/main/java/org/apache/commons/rdf/api/fluentparser/Async.java
deleted file mode 100644
index ba3fb2d..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/fluentparser/Async.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * 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.fluentparser;
-
-import java.util.concurrent.Future;
-
-import org.apache.commons.rdf.api.io.Option;
-import org.apache.commons.rdf.api.io.Parsed;
-
-public interface Async<T, S> extends _Buildable {
-    Async<T, S> build();
-    
-    <V> Async<T, S> option(Option<V> option, V value);
-
-    Future<Parsed<T, S>> parseAsync();
-}

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedSourceBased.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedSourceBased.java b/api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedSourceBased.java
deleted file mode 100644
index 54889e1..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedSourceBased.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/**
- * 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.fluentparser;
-
-import java.io.InputStream;
-
-import org.apache.commons.rdf.api.io.Option;
-
-public interface NeedSourceBased<T> extends _NeedIdentifiedSource<T>, _Buildable {
-    NeedSourceBased<T> build();
-    <V> NeedSourceBased<T> option(Option<V> option, V value);
-
-    Sync<T, InputStream> source(InputStream is);
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedSourceOrBase.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedSourceOrBase.java b/api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedSourceOrBase.java
deleted file mode 100644
index 91b83b7..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedSourceOrBase.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * 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.fluentparser;
-
-import org.apache.commons.rdf.api.io.Option;
-
-public interface NeedSourceOrBase<T> extends _OptionalBase<T>, _NeedIdentifiedSource<T>, _Buildable {
-    NeedSourceOrBase<T> build();
-    <V> NeedSourceOrBase<T> option(Option<V> option, V value);
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedTarget.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedTarget.java b/api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedTarget.java
deleted file mode 100644
index 4ed3849..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedTarget.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * 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.fluentparser;
-
-import org.apache.commons.rdf.api.io.Option;
-
-interface NeedTarget extends _NeedTarget,_Buildable {
-    NeedTarget build();
-    <V> NeedTarget option(Option<V> option, V value);
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedTargetOrRDF.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedTargetOrRDF.java b/api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedTargetOrRDF.java
deleted file mode 100644
index 109b70d..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedTargetOrRDF.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * 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.fluentparser;
-
-import org.apache.commons.rdf.api.io.Option;
-
-public interface NeedTargetOrRDF extends _NeedTargetOrRDF,_Buildable {
-    NeedTargetOrRDF build();
-    <V> NeedTargetOrRDF option(Option<V> option, V value);
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedTargetOrRDFOrSyntax.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedTargetOrRDFOrSyntax.java b/api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedTargetOrRDFOrSyntax.java
deleted file mode 100644
index 61a0256..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedTargetOrRDFOrSyntax.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/**
- * 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.fluentparser;
-
-public interface NeedTargetOrRDFOrSyntax extends _NeedTargetOrRDF, _NeedSyntax {
-
-}

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/fluentparser/OptionalTarget.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/fluentparser/OptionalTarget.java b/api/src/main/java/org/apache/commons/rdf/api/fluentparser/OptionalTarget.java
deleted file mode 100644
index be8195c..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/fluentparser/OptionalTarget.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * 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.fluentparser;
-
-import org.apache.commons.rdf.api.io.Option;
-
-public interface OptionalTarget<T> extends _NeedTarget, NeedSourceOrBase<T>,_Buildable {
-    OptionalTarget<T> build();
-    <V> OptionalTarget<T> option(Option<V> option, V value);
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/fluentparser/OptionalTargetOrSyntax.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/fluentparser/OptionalTargetOrSyntax.java b/api/src/main/java/org/apache/commons/rdf/api/fluentparser/OptionalTargetOrSyntax.java
deleted file mode 100644
index 7dee7e4..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/fluentparser/OptionalTargetOrSyntax.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package org.apache.commons.rdf.api.fluentparser;
-
-public interface OptionalTargetOrSyntax<T> extends OptionalTarget<T>, _NeedSyntax {
-    
-}

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/fluentparser/Sync.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/fluentparser/Sync.java b/api/src/main/java/org/apache/commons/rdf/api/fluentparser/Sync.java
deleted file mode 100644
index c141a18..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/fluentparser/Sync.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/**
- * 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.fluentparser;
-
-import java.util.concurrent.ExecutorService;
-
-import org.apache.commons.rdf.api.io.Option;
-import org.apache.commons.rdf.api.io.Parsed;
-
-public interface Sync<T, S> extends _Buildable{
-    Sync<T ,S> build();
-    <V> Sync<T, S> option(Option<V> option, V value);
-
-    Async<T, S> async();
-    Async<T, S> async(ExecutorService executor);
-    Parsed<T, S> parse();
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/fluentparser/_Buildable.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/fluentparser/_Buildable.java b/api/src/main/java/org/apache/commons/rdf/api/fluentparser/_Buildable.java
deleted file mode 100644
index b21eb9d..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/fluentparser/_Buildable.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
- * 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.fluentparser;
-
-import org.apache.commons.rdf.api.io.Option;
-import org.apache.commons.rdf.api.io.Option.RequiredOption;
-import org.apache.commons.rdf.api.io.ParserFactory;
-
-interface _Buildable {
-    /**
-     * Return an immutable builder at the current state. The returned builder
-     * can be re-used multiple times in a thread-safe way.
-     * 
-     * @return An immutable builder
-     */
-    _Buildable build();
-    
-    /**
-     * Return a builder with the given option set.
-     * <p>
-     * Note that implementations of {@link ParserFactory} may support different
-     * vendor-specific {@link Option} types, and are free to ignore the set
-     * option (unless it is a {@link RequiredOption}).
-     * <p>
-     * It is undefined if setting multiple values for the same (equal) option
-     * are accumulative or overriding.
-     * 
-     * @param <V> The type of the {@link Option} value 
-     * @param option Option to set
-     * @param value Value to set for option
-     * @return A builder with the given option set
-     */
-    <V> _Buildable option(Option<V> option, V value);
-
-}

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/fluentparser/_NeedIdentifiedSource.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/fluentparser/_NeedIdentifiedSource.java b/api/src/main/java/org/apache/commons/rdf/api/fluentparser/_NeedIdentifiedSource.java
deleted file mode 100644
index 580adf6..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/fluentparser/_NeedIdentifiedSource.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/**
- * 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.fluentparser;
-
-import java.nio.file.Path;
-
-import javax.xml.transform.Source;
-
-import org.apache.commons.rdf.api.IRI;
-import org.apache.commons.rdf.api.io.ParserSource;
-
-interface _NeedIdentifiedSource<T> {
-    Sync<T, IRI> source(IRI iri);
-
-    Sync<T, Path> source(Path path);
-
-    <S> Sync<T, S> source(ParserSource<S> source);
-
-    Sync<T, IRI> source(String iri);
-}

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/fluentparser/_NeedSyntax.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/fluentparser/_NeedSyntax.java b/api/src/main/java/org/apache/commons/rdf/api/fluentparser/_NeedSyntax.java
deleted file mode 100644
index 28f0cd1..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/fluentparser/_NeedSyntax.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package org.apache.commons.rdf.api.fluentparser;
-
-import org.apache.commons.rdf.api.RDFSyntax;
-
-interface _NeedSyntax {
-    NeedTargetOrRDF syntax(RDFSyntax syntax);
-}

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/fluentparser/_NeedTarget.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/fluentparser/_NeedTarget.java b/api/src/main/java/org/apache/commons/rdf/api/fluentparser/_NeedTarget.java
deleted file mode 100644
index 2053f3b..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/fluentparser/_NeedTarget.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/**
- * 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.fluentparser;
-
-import org.apache.commons.rdf.api.Dataset;
-import org.apache.commons.rdf.api.Graph;
-import org.apache.commons.rdf.api.io.ParserTarget;
-
-interface _NeedTarget {
-    NeedSourceOrBase<Dataset> target(Dataset dataset);
-
-    NeedSourceOrBase<Graph> target(Graph graph);
-
-    <T> NeedSourceOrBase<T> target(ParserTarget<T> target);
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/fluentparser/_NeedTargetOrRDF.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/fluentparser/_NeedTargetOrRDF.java b/api/src/main/java/org/apache/commons/rdf/api/fluentparser/_NeedTargetOrRDF.java
deleted file mode 100644
index 89016b4..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/fluentparser/_NeedTargetOrRDF.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/**
- * 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.fluentparser;
-
-interface _NeedTargetOrRDF extends _NeedTarget, _OptionalRDF {
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/fluentparser/_OptionalBase.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/fluentparser/_OptionalBase.java b/api/src/main/java/org/apache/commons/rdf/api/fluentparser/_OptionalBase.java
deleted file mode 100644
index 3e3235c..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/fluentparser/_OptionalBase.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
- * 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.fluentparser;
-
-import org.apache.commons.rdf.api.IRI;
-
-interface _OptionalBase<T> {
-    NeedSourceBased<T> base(IRI iri);
-
-    NeedSourceBased<T> base(String iri);
-}

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/fluentparser/_OptionalRDF.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/fluentparser/_OptionalRDF.java b/api/src/main/java/org/apache/commons/rdf/api/fluentparser/_OptionalRDF.java
deleted file mode 100644
index 80ac15b..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/fluentparser/_OptionalRDF.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * 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.fluentparser;
-
-import org.apache.commons.rdf.api.Dataset;
-import org.apache.commons.rdf.api.RDF;
-
-interface _OptionalRDF {
-    OptionalTarget<Dataset> rdf(RDF rdf);
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/fluentparser/package-info.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/fluentparser/package-info.java b/api/src/main/java/org/apache/commons/rdf/api/fluentparser/package-info.java
deleted file mode 100644
index 42c4921..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/fluentparser/package-info.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * 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.fluentparser;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/fluentwriter/Async.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/fluentwriter/Async.java b/api/src/main/java/org/apache/commons/rdf/api/fluentwriter/Async.java
deleted file mode 100644
index e7edcf4..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/fluentwriter/Async.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package org.apache.commons.rdf.api.fluentwriter;
-
-import java.util.concurrent.Future;
-
-import org.apache.commons.rdf.api.io.Option;
-import org.apache.commons.rdf.api.io.Written;
-
-public interface Async extends _Buildable {
-    
-    Async build();    
-    <V> Async option(Option<V> option, V value);
-    
-    Future<Written> writeAsync();
-}

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/fluentwriter/NeedSource.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/fluentwriter/NeedSource.java b/api/src/main/java/org/apache/commons/rdf/api/fluentwriter/NeedSource.java
deleted file mode 100644
index 3070427..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/fluentwriter/NeedSource.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.apache.commons.rdf.api.fluentwriter;
-
-import java.util.stream.Stream;
-
-import org.apache.commons.rdf.api.Dataset;
-import org.apache.commons.rdf.api.Graph;
-import org.apache.commons.rdf.api.TripleLike;
-import org.apache.commons.rdf.api.io.Option;
-import org.apache.commons.rdf.api.io.WriterSource;
-
-public interface NeedSource extends _Buildable {
-    
-    NeedSource build();    
-    <V> NeedSource option(Option<V> option, V value);
-    
-    Sync source(Dataset dataset);
-    Sync source(Graph graph);
-    Sync source(Stream<? extends TripleLike> stream);
-    Sync source(WriterSource source);
-}

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/fluentwriter/NeedTarget.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/fluentwriter/NeedTarget.java b/api/src/main/java/org/apache/commons/rdf/api/fluentwriter/NeedTarget.java
deleted file mode 100644
index 2148b54..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/fluentwriter/NeedTarget.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/**
- * 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.fluentwriter;
-
-import java.io.OutputStream;
-import java.nio.file.Path;
-
-import org.apache.commons.rdf.api.io.Option;
-import org.apache.commons.rdf.api.io.WriterTarget;
-
-public interface NeedTarget extends _Buildable {
-    @Override
-    NeedTarget build();
-    <V> NeedTarget option(Option<V> option, V value);
-    
-    NeedSource target(Path p);
-    NeedSource target(OutputStream out);
-    NeedSource target(WriterTarget target);
-}

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/fluentwriter/Sync.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/fluentwriter/Sync.java b/api/src/main/java/org/apache/commons/rdf/api/fluentwriter/Sync.java
deleted file mode 100644
index f6d8afc..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/fluentwriter/Sync.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package org.apache.commons.rdf.api.fluentwriter;
-
-import java.util.concurrent.ExecutorService;
-
-import org.apache.commons.rdf.api.io.Option;
-import org.apache.commons.rdf.api.io.Written;
-
-public interface Sync extends _Buildable {
-    
-    Sync build();    
-    <V> Sync option(Option<V> option, V value);
-
-    Written write(); // terminal
-    Async async();
-    Async async(ExecutorService service);
-}

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/fluentwriter/_Buildable.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/fluentwriter/_Buildable.java b/api/src/main/java/org/apache/commons/rdf/api/fluentwriter/_Buildable.java
deleted file mode 100644
index fc89f60..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/fluentwriter/_Buildable.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
- * 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.fluentwriter;
-
-import org.apache.commons.rdf.api.io.Option;
-import org.apache.commons.rdf.api.io.Option.RequiredOption;
-import org.apache.commons.rdf.api.io.ParserFactory;
-
-interface _Buildable {
-    /**
-     * Return an immutable builder at the current state. The returned builder
-     * can be re-used multiple times in a thread-safe way.
-     * 
-     * @return An immutable builder
-     */
-    _Buildable build();
-    
-    /**
-     * Return a builder with the given option set.
-     * <p>
-     * Note that implementations of {@link ParserFactory} may support different
-     * vendor-specific {@link Option} types, and are free to ignore the set
-     * option (unless it is a {@link RequiredOption}).
-     * <p>
-     * It is undefined if setting multiple values for the same (equal) option
-     * are accumulative or overriding.
-     * 
-     * @param <V> The type of the {@link Option} value 
-     * @param option Option to set
-     * @param value Value to set for option
-     * @return A builder with the given option set
-     */
-    <V> _Buildable option(Option<V> option, V value);
-
-}

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/fluentwriter/package-info.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/fluentwriter/package-info.java b/api/src/main/java/org/apache/commons/rdf/api/fluentwriter/package-info.java
deleted file mode 100644
index 85f4c8a..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/fluentwriter/package-info.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * 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.fluentwriter;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/io/Option.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/io/Option.java b/api/src/main/java/org/apache/commons/rdf/api/io/Option.java
deleted file mode 100644
index 7cf5c86..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/io/Option.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * 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.io;
-
-public interface Option<V> {
-
-    public interface RequiredOption<V> extends Option<V> {
-
-    }
-}

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/io/Parsed.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/io/Parsed.java b/api/src/main/java/org/apache/commons/rdf/api/io/Parsed.java
deleted file mode 100644
index b252e44..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/io/Parsed.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
- * 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.io;
-
-public interface Parsed<T, S> {
-    long count();
-
-    ParserSource<S> from();
-
-    ParserTarget<T> into();
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/io/ParserBuilder.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/io/ParserBuilder.java b/api/src/main/java/org/apache/commons/rdf/api/io/ParserBuilder.java
deleted file mode 100644
index 037271c..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/io/ParserBuilder.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package org.apache.commons.rdf.api.io;
-
-import org.apache.commons.rdf.api.Dataset;
-import org.apache.commons.rdf.api.fluentparser.OptionalTarget;
-
-public interface ParserBuilder extends OptionalTarget<Dataset> {
-    ParserBuilder build();
-    <V> ParserBuilder option(Option<V> option, V value);
-}

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/io/ParserFactory.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/io/ParserFactory.java b/api/src/main/java/org/apache/commons/rdf/api/io/ParserFactory.java
deleted file mode 100644
index b25a536..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/io/ParserFactory.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
- * 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.io;
-
-import org.apache.commons.rdf.api.Dataset;
-import org.apache.commons.rdf.api.RDFSyntax;
-import org.apache.commons.rdf.api.fluentparser.NeedTargetOrRDF;
-import org.apache.commons.rdf.api.fluentparser.OptionalTargetOrSyntax;
-
-public interface ParserFactory extends  _SupportedSyntaxes, OptionalTargetOrSyntax<Dataset> {
-    NeedTargetOrRDF syntax(RDFSyntax syntax);
-}

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/io/ParserSource.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/io/ParserSource.java b/api/src/main/java/org/apache/commons/rdf/api/io/ParserSource.java
deleted file mode 100644
index 259688e..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/io/ParserSource.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- * 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.io;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Optional;
-
-import org.apache.commons.rdf.api.IRI;
-
-/**
- *
- */
-public interface ParserSource<S> {
-    S src();   
-    InputStream inputStream() throws IOException;
-    Optional<IRI> iri();
-}

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/io/ParserTarget.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/io/ParserTarget.java b/api/src/main/java/org/apache/commons/rdf/api/io/ParserTarget.java
deleted file mode 100644
index 8898643..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/io/ParserTarget.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/**
- * 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.io;
-
-import java.util.function.Consumer;
-
-import org.apache.commons.rdf.api.Quad;
-
-/**
- *
- */
-@FunctionalInterface
-public interface ParserTarget<T> extends Consumer<Quad> {
-    default T dest() {
-        return null;// unknown
-    }
-}

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/io/WriterFactory.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/io/WriterFactory.java b/api/src/main/java/org/apache/commons/rdf/api/io/WriterFactory.java
deleted file mode 100644
index 59815f0..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/io/WriterFactory.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * 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.io;
-
-import org.apache.commons.rdf.api.RDFSyntax;
-import org.apache.commons.rdf.api.fluentwriter.NeedTarget;
-
-public interface WriterFactory extends _SupportedSyntaxes {
-    NeedTarget syntax(RDFSyntax syntax);
-}

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/io/WriterSource.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/io/WriterSource.java b/api/src/main/java/org/apache/commons/rdf/api/io/WriterSource.java
deleted file mode 100644
index 2ce9bbf..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/io/WriterSource.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package org.apache.commons.rdf.api.io;
-
-import java.util.stream.Stream;
-
-import org.apache.commons.rdf.api.TripleLike;
-
-public interface WriterSource {
-    Stream<? extends TripleLike> stream();
-}

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/io/WriterTarget.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/io/WriterTarget.java b/api/src/main/java/org/apache/commons/rdf/api/io/WriterTarget.java
deleted file mode 100644
index f58f3d4..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/io/WriterTarget.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package org.apache.commons.rdf.api.io;
-
-import java.io.IOException;
-import java.io.OutputStream;
-
-public interface WriterTarget {
-    OutputStream outputStream() throws IOException;
-}

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/io/Written.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/io/Written.java b/api/src/main/java/org/apache/commons/rdf/api/io/Written.java
deleted file mode 100644
index 38b5360..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/io/Written.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package org.apache.commons.rdf.api.io;
-
-public interface Written<S,T> {
-
-    WriterSource source();
-
-    WriterTarget target();
-
-}

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/io/_SupportedSyntaxes.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/io/_SupportedSyntaxes.java b/api/src/main/java/org/apache/commons/rdf/api/io/_SupportedSyntaxes.java
deleted file mode 100644
index aa3e115..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/io/_SupportedSyntaxes.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package org.apache.commons.rdf.api.io;
-
-import java.util.Set;
-
-import org.apache.commons.rdf.api.RDFSyntax;
-
-interface _SupportedSyntaxes {
-    /**
-     * Get set of syntaxes supported by this factory.
-     * <p>
-     * The returned syntaxes can be used with {@link #syntax(RDFSyntax)} and may
-     * be used by this factory if no syntax is given.
-     * <p>
-     * Note that the factory may support additional syntaxes not returned
-     * in this set.
-     * 
-     * @return Set of supported syntaxes
-     */
-    Set<RDFSyntax> supportedSyntaxes();
-    
-    /**
-     * Use the specified RDF syntax
-     * 
-     * @param syntax RDFSyntax
-     * @return Builder that uses specified syntax
-     */
-    Object syntax(RDFSyntax syntax);
-}

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/main/java/org/apache/commons/rdf/api/io/package-info.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/io/package-info.java b/api/src/main/java/org/apache/commons/rdf/api/io/package-info.java
deleted file mode 100644
index 859d954..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/io/package-info.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * 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.io;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/api/src/test/java/org/apache/commons/rdf/experimental/Test.java
----------------------------------------------------------------------
diff --git a/api/src/test/java/org/apache/commons/rdf/experimental/Test.java b/api/src/test/java/org/apache/commons/rdf/experimental/Test.java
deleted file mode 100644
index cee0854..0000000
--- a/api/src/test/java/org/apache/commons/rdf/experimental/Test.java
+++ /dev/null
@@ -1,130 +0,0 @@
-package org.apache.commons.rdf.experimental;
-
-import static org.junit.Assert.*;
-
-import java.nio.file.Path;
-import java.nio.file.Paths;
-
-import org.apache.commons.rdf.api.Graph;
-import org.apache.commons.rdf.api.RDFSyntax;
-import org.slf4j.impl.SimpleLoggerFactory;
-
-interface State { 
-    Path source();
-    Graph target();
-    RDFSyntax syntax();
-    State withSource(Path p);
-    State withTarget(Graph g);
-    State withSyntax(RDFSyntax s);
-}
-
-abstract class AbstractState implements State { 
-    @Override
-    public State withSource(Path p) { 
-       return new WithSource(p, this); 
-    }
-    @Override
-    public State withSyntax(RDFSyntax s) {
-        return new WithSyntax(s, this);
-    }
-    @Override
-    public State withTarget(Graph g) {
-        return new WithTarget(g, this);
-    }
-    
-}
-
-final class DefaultState extends AbstractState {
-    @Override
-    public Path source() {
-        throw new IllegalStateException("Source not set");
-    }
-    @Override
-    public Graph target() {
-        throw new IllegalStateException("Target not set");
-    }
-    @Override
-    public RDFSyntax syntax() {
-        throw new IllegalStateException("Syntax not set");
-    }
-}
-
-abstract class Inherited extends AbstractState  {
-    private final State parent;
-    public Inherited() {
-        this(new DefaultState());
-    }
-    public Inherited(State state) {
-        parent = state;
-    }    
-    @Override
-    public Path source() {
-        return parent.source();
-    }
-    @Override
-    public Graph target() {
-        return parent.target();
-    }
-    @Override
-    public RDFSyntax syntax() {
-        return parent.syntax();
-    }
-    
-    
-}
-
-final class WithSource extends Inherited {    
-    private final Path source;   
-    public WithSource(final Path path) {
-        this.source = path;
-    }
-    public WithSource(final Path path, final State state) {
-        super(state);
-        this.source = path;
-    }    
-    @Override
-    public Path source() {
-        return source;
-    }
-}
-
-
-final class WithTarget extends Inherited {    
-    private final Graph target;   
-    public WithTarget(final Graph g) {
-        this.target = g;
-    }
-    public WithTarget(final Graph g, final State state) {
-        super(state);
-        this.target = g;
-    }    
-    @Override
-    public Graph target() {
-        return target;
-    }
-}
-
-final class WithSyntax extends Inherited {    
-    private final RDFSyntax syntax;   
-    public WithSyntax(final RDFSyntax s) {
-        syntax = s;
-    }
-    public WithSyntax(final RDFSyntax s, final State state) {
-        super(state);
-        syntax = s;
-    }    
-    @Override
-    public RDFSyntax syntax() {
-        return syntax;
-    }
-}
-
-public class Test {
-    @org.junit.Test
-    public void testName() throws Exception {
-        Path p = Paths.get("/tmp/f.txt");
-        Graph g = null;
-        State s = new DefaultState().withSource(p).withTarget(g).withSyntax(RDFSyntax.JSONLD);
-        
-    }
-}

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/Async.java
----------------------------------------------------------------------
diff --git a/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/Async.java b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/Async.java
new file mode 100644
index 0000000..ba3fb2d
--- /dev/null
+++ b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/Async.java
@@ -0,0 +1,31 @@
+/**
+ * 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.fluentparser;
+
+import java.util.concurrent.Future;
+
+import org.apache.commons.rdf.api.io.Option;
+import org.apache.commons.rdf.api.io.Parsed;
+
+public interface Async<T, S> extends _Buildable {
+    Async<T, S> build();
+    
+    <V> Async<T, S> option(Option<V> option, V value);
+
+    Future<Parsed<T, S>> parseAsync();
+}

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedSourceBased.java
----------------------------------------------------------------------
diff --git a/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedSourceBased.java b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedSourceBased.java
new file mode 100644
index 0000000..54889e1
--- /dev/null
+++ b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedSourceBased.java
@@ -0,0 +1,29 @@
+/**
+ * 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.fluentparser;
+
+import java.io.InputStream;
+
+import org.apache.commons.rdf.api.io.Option;
+
+public interface NeedSourceBased<T> extends _NeedIdentifiedSource<T>, _Buildable {
+    NeedSourceBased<T> build();
+    <V> NeedSourceBased<T> option(Option<V> option, V value);
+
+    Sync<T, InputStream> source(InputStream is);
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedSourceOrBase.java
----------------------------------------------------------------------
diff --git a/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedSourceOrBase.java b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedSourceOrBase.java
new file mode 100644
index 0000000..91b83b7
--- /dev/null
+++ b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedSourceOrBase.java
@@ -0,0 +1,25 @@
+/**
+ * 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.fluentparser;
+
+import org.apache.commons.rdf.api.io.Option;
+
+public interface NeedSourceOrBase<T> extends _OptionalBase<T>, _NeedIdentifiedSource<T>, _Buildable {
+    NeedSourceOrBase<T> build();
+    <V> NeedSourceOrBase<T> option(Option<V> option, V value);
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedTarget.java
----------------------------------------------------------------------
diff --git a/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedTarget.java b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedTarget.java
new file mode 100644
index 0000000..4ed3849
--- /dev/null
+++ b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedTarget.java
@@ -0,0 +1,25 @@
+/**
+ * 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.fluentparser;
+
+import org.apache.commons.rdf.api.io.Option;
+
+interface NeedTarget extends _NeedTarget,_Buildable {
+    NeedTarget build();
+    <V> NeedTarget option(Option<V> option, V value);
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedTargetOrRDF.java
----------------------------------------------------------------------
diff --git a/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedTargetOrRDF.java b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedTargetOrRDF.java
new file mode 100644
index 0000000..109b70d
--- /dev/null
+++ b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedTargetOrRDF.java
@@ -0,0 +1,25 @@
+/**
+ * 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.fluentparser;
+
+import org.apache.commons.rdf.api.io.Option;
+
+public interface NeedTargetOrRDF extends _NeedTargetOrRDF,_Buildable {
+    NeedTargetOrRDF build();
+    <V> NeedTargetOrRDF option(Option<V> option, V value);
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedTargetOrRDFOrSyntax.java
----------------------------------------------------------------------
diff --git a/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedTargetOrRDFOrSyntax.java b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedTargetOrRDFOrSyntax.java
new file mode 100644
index 0000000..61a0256
--- /dev/null
+++ b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/NeedTargetOrRDFOrSyntax.java
@@ -0,0 +1,22 @@
+/**
+ * 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.fluentparser;
+
+public interface NeedTargetOrRDFOrSyntax extends _NeedTargetOrRDF, _NeedSyntax {
+
+}

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/OptionalTarget.java
----------------------------------------------------------------------
diff --git a/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/OptionalTarget.java b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/OptionalTarget.java
new file mode 100644
index 0000000..be8195c
--- /dev/null
+++ b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/OptionalTarget.java
@@ -0,0 +1,25 @@
+/**
+ * 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.fluentparser;
+
+import org.apache.commons.rdf.api.io.Option;
+
+public interface OptionalTarget<T> extends _NeedTarget, NeedSourceOrBase<T>,_Buildable {
+    OptionalTarget<T> build();
+    <V> OptionalTarget<T> option(Option<V> option, V value);
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/OptionalTargetOrSyntax.java
----------------------------------------------------------------------
diff --git a/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/OptionalTargetOrSyntax.java b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/OptionalTargetOrSyntax.java
new file mode 100644
index 0000000..7dee7e4
--- /dev/null
+++ b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/OptionalTargetOrSyntax.java
@@ -0,0 +1,5 @@
+package org.apache.commons.rdf.api.fluentparser;
+
+public interface OptionalTargetOrSyntax<T> extends OptionalTarget<T>, _NeedSyntax {
+    
+}

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/Sync.java
----------------------------------------------------------------------
diff --git a/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/Sync.java b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/Sync.java
new file mode 100644
index 0000000..c141a18
--- /dev/null
+++ b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/Sync.java
@@ -0,0 +1,32 @@
+/**
+ * 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.fluentparser;
+
+import java.util.concurrent.ExecutorService;
+
+import org.apache.commons.rdf.api.io.Option;
+import org.apache.commons.rdf.api.io.Parsed;
+
+public interface Sync<T, S> extends _Buildable{
+    Sync<T ,S> build();
+    <V> Sync<T, S> option(Option<V> option, V value);
+
+    Async<T, S> async();
+    Async<T, S> async(ExecutorService executor);
+    Parsed<T, S> parse();
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/_Buildable.java
----------------------------------------------------------------------
diff --git a/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/_Buildable.java b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/_Buildable.java
new file mode 100644
index 0000000..b21eb9d
--- /dev/null
+++ b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/_Buildable.java
@@ -0,0 +1,50 @@
+/**
+ * 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.fluentparser;
+
+import org.apache.commons.rdf.api.io.Option;
+import org.apache.commons.rdf.api.io.Option.RequiredOption;
+import org.apache.commons.rdf.api.io.ParserFactory;
+
+interface _Buildable {
+    /**
+     * Return an immutable builder at the current state. The returned builder
+     * can be re-used multiple times in a thread-safe way.
+     * 
+     * @return An immutable builder
+     */
+    _Buildable build();
+    
+    /**
+     * Return a builder with the given option set.
+     * <p>
+     * Note that implementations of {@link ParserFactory} may support different
+     * vendor-specific {@link Option} types, and are free to ignore the set
+     * option (unless it is a {@link RequiredOption}).
+     * <p>
+     * It is undefined if setting multiple values for the same (equal) option
+     * are accumulative or overriding.
+     * 
+     * @param <V> The type of the {@link Option} value 
+     * @param option Option to set
+     * @param value Value to set for option
+     * @return A builder with the given option set
+     */
+    <V> _Buildable option(Option<V> option, V value);
+
+}

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/_NeedIdentifiedSource.java
----------------------------------------------------------------------
diff --git a/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/_NeedIdentifiedSource.java b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/_NeedIdentifiedSource.java
new file mode 100644
index 0000000..580adf6
--- /dev/null
+++ b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/_NeedIdentifiedSource.java
@@ -0,0 +1,35 @@
+/**
+ * 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.fluentparser;
+
+import java.nio.file.Path;
+
+import javax.xml.transform.Source;
+
+import org.apache.commons.rdf.api.IRI;
+import org.apache.commons.rdf.api.io.ParserSource;
+
+interface _NeedIdentifiedSource<T> {
+    Sync<T, IRI> source(IRI iri);
+
+    Sync<T, Path> source(Path path);
+
+    <S> Sync<T, S> source(ParserSource<S> source);
+
+    Sync<T, IRI> source(String iri);
+}

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/_NeedSyntax.java
----------------------------------------------------------------------
diff --git a/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/_NeedSyntax.java b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/_NeedSyntax.java
new file mode 100644
index 0000000..28f0cd1
--- /dev/null
+++ b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/_NeedSyntax.java
@@ -0,0 +1,7 @@
+package org.apache.commons.rdf.api.fluentparser;
+
+import org.apache.commons.rdf.api.RDFSyntax;
+
+interface _NeedSyntax {
+    NeedTargetOrRDF syntax(RDFSyntax syntax);
+}

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/_NeedTarget.java
----------------------------------------------------------------------
diff --git a/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/_NeedTarget.java b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/_NeedTarget.java
new file mode 100644
index 0000000..2053f3b
--- /dev/null
+++ b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/_NeedTarget.java
@@ -0,0 +1,30 @@
+/**
+ * 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.fluentparser;
+
+import org.apache.commons.rdf.api.Dataset;
+import org.apache.commons.rdf.api.Graph;
+import org.apache.commons.rdf.api.io.ParserTarget;
+
+interface _NeedTarget {
+    NeedSourceOrBase<Dataset> target(Dataset dataset);
+
+    NeedSourceOrBase<Graph> target(Graph graph);
+
+    <T> NeedSourceOrBase<T> target(ParserTarget<T> target);
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/_NeedTargetOrRDF.java
----------------------------------------------------------------------
diff --git a/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/_NeedTargetOrRDF.java b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/_NeedTargetOrRDF.java
new file mode 100644
index 0000000..89016b4
--- /dev/null
+++ b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/_NeedTargetOrRDF.java
@@ -0,0 +1,21 @@
+/**
+ * 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.fluentparser;
+
+interface _NeedTargetOrRDF extends _NeedTarget, _OptionalRDF {
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/_OptionalBase.java
----------------------------------------------------------------------
diff --git a/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/_OptionalBase.java b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/_OptionalBase.java
new file mode 100644
index 0000000..3e3235c
--- /dev/null
+++ b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/_OptionalBase.java
@@ -0,0 +1,26 @@
+/**
+ * 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.fluentparser;
+
+import org.apache.commons.rdf.api.IRI;
+
+interface _OptionalBase<T> {
+    NeedSourceBased<T> base(IRI iri);
+
+    NeedSourceBased<T> base(String iri);
+}

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/_OptionalRDF.java
----------------------------------------------------------------------
diff --git a/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/_OptionalRDF.java b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/_OptionalRDF.java
new file mode 100644
index 0000000..80ac15b
--- /dev/null
+++ b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/_OptionalRDF.java
@@ -0,0 +1,25 @@
+/**
+ * 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.fluentparser;
+
+import org.apache.commons.rdf.api.Dataset;
+import org.apache.commons.rdf.api.RDF;
+
+interface _OptionalRDF {
+    OptionalTarget<Dataset> rdf(RDF rdf);
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/package-info.java
----------------------------------------------------------------------
diff --git a/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/package-info.java b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/package-info.java
new file mode 100644
index 0000000..42c4921
--- /dev/null
+++ b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentparser/package-info.java
@@ -0,0 +1,21 @@
+/*
+ * 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.fluentparser;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentwriter/Async.java
----------------------------------------------------------------------
diff --git a/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentwriter/Async.java b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentwriter/Async.java
new file mode 100644
index 0000000..e7edcf4
--- /dev/null
+++ b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentwriter/Async.java
@@ -0,0 +1,14 @@
+package org.apache.commons.rdf.api.fluentwriter;
+
+import java.util.concurrent.Future;
+
+import org.apache.commons.rdf.api.io.Option;
+import org.apache.commons.rdf.api.io.Written;
+
+public interface Async extends _Buildable {
+    
+    Async build();    
+    <V> Async option(Option<V> option, V value);
+    
+    Future<Written> writeAsync();
+}

http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/96fb0f06/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentwriter/NeedSource.java
----------------------------------------------------------------------
diff --git a/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentwriter/NeedSource.java b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentwriter/NeedSource.java
new file mode 100644
index 0000000..3070427
--- /dev/null
+++ b/commons-rdf-api/src/main/java/org/apache/commons/rdf/api/fluentwriter/NeedSource.java
@@ -0,0 +1,20 @@
+package org.apache.commons.rdf.api.fluentwriter;
+
+import java.util.stream.Stream;
+
+import org.apache.commons.rdf.api.Dataset;
+import org.apache.commons.rdf.api.Graph;
+import org.apache.commons.rdf.api.TripleLike;
+import org.apache.commons.rdf.api.io.Option;
+import org.apache.commons.rdf.api.io.WriterSource;
+
+public interface NeedSource extends _Buildable {
+    
+    NeedSource build();    
+    <V> NeedSource option(Option<V> option, V value);
+    
+    Sync source(Dataset dataset);
+    Sync source(Graph graph);
+    Sync source(Stream<? extends TripleLike> stream);
+    Sync source(WriterSource source);
+}