// Path: src/main/java/org/linkeddatafragments/datasource/DataSourceBase.java
// public abstract class DataSourceBase implements IDataSource {
// 
//     /**
//      * Get the datasource title
//      */
//     protected String title;
// 
//     /**
//      * Get the datasource description
//      */
//     protected String description; 
//     
//     /**
//      * Create a base for a {@link IDataSource}
//      *
//      * @param title the datasource title
//      * @param description the datasource description
//      */
//     public DataSourceBase(String title, String description) {
//         this.title = title;
//         this.description = description;
//     }
// 
//     /**
//      * Get the datasource description
//      * 
//      * @return
//      */
//     @Override
//     public String getDescription() {
//         return this.description;
//     };
// 
//     /**
//      * Get the datasource title
//      * 
//      * @return
//      */
//     @Override
//     public String getTitle() {
//         return this.title;
//     };
// 
//     @Override
//     public void close() {}
// }
// 
// Path: src/main/java/org/linkeddatafragments/datasource/IFragmentRequestProcessor.java
// public interface IFragmentRequestProcessor extends Closeable
// {
// 
//     /**
//      *
//      * @param request
//      * @return
//      * @throws IllegalArgumentException
//      */
//     ILinkedDataFragment createRequestedFragment(
//             final ILinkedDataFragmentRequest request )
//                     throws IllegalArgumentException;
// }
// 
// Path: src/main/java/org/linkeddatafragments/fragments/IFragmentRequestParser.java
// public interface IFragmentRequestParser
// {
//     /**
//      * Parses the given HTTP request into a specific
//      * {@link ILinkedDataFragmentRequest}.
//      *
//      * @param httpRequest
//      * @param config
//      * @return 
//      * @throws IllegalArgumentException
//      *         If the given HTTP request cannot be interpreted (perhaps due to
//      *         missing request parameters).  
//      */
//     ILinkedDataFragmentRequest parseIntoFragmentRequest(
//             final HttpServletRequest httpRequest,
//             final ConfigReader config )
//                     throws IllegalArgumentException;
// }


import java.io.File;
import java.net.URI;
import org.linkeddatafragments.datasource.DataSourceBase;
import org.linkeddatafragments.datasource.IFragmentRequestProcessor;
import org.linkeddatafragments.fragments.IFragmentRequestParser;
import org.linkeddatafragments.fragments.tpf.TPFRequestParserForJenaBackends;

package org.linkeddatafragments.datasource.sparql;



/**
 * Experimental SPARQL-endpoint-backed data source of Basic Linked Data Fragments.
 *
 * @author <a href="mailto:bart.hanssens@fedict.be">Bart Hanssens</a>
 * @author <a href="http://olafhartig.de">Olaf Hartig</a>
 * @author <a href="https://awoods.io">Andrew Woods</a>
 */
public class SparqlDataSource extends DataSourceBase {

    /**
     * The request processor
     * 
     */
    protected final SparqlBasedRequestProcessorForTPFs requestProcessor;

    @Override
    public IFragmentRequestParser getRequestParser()
    {
        return TPFRequestParserForJenaBackends.getInstance();
    }

    @Override

// Path: src/main/java/org/linkeddatafragments/datasource/DataSourceBase.java
// public abstract class DataSourceBase implements IDataSource {
// 
//     /**
//      * Get the datasource title
//      */
//     protected String title;
// 
//     /**
//      * Get the datasource description
//      */
//     protected String description; 
//     
//     /**
//      * Create a base for a {@link IDataSource}
//      *
//      * @param title the datasource title
//      * @param description the datasource description
//      */
//     public DataSourceBase(String title, String description) {
//         this.title = title;
//         this.description = description;
//     }
// 
//     /**
//      * Get the datasource description
//      * 
//      * @return
//      */
//     @Override
//     public String getDescription() {
//         return this.description;
//     };
// 
//     /**
//      * Get the datasource title
//      * 
//      * @return
//      */
//     @Override
//     public String getTitle() {
//         return this.title;
//     };
// 
//     @Override
//     public void close() {}
// }
// 
// Path: src/main/java/org/linkeddatafragments/datasource/IFragmentRequestProcessor.java
// public interface IFragmentRequestProcessor extends Closeable
// {
// 
//     /**
//      *
//      * @param request
//      * @return
//      * @throws IllegalArgumentException
//      */
//     ILinkedDataFragment createRequestedFragment(
//             final ILinkedDataFragmentRequest request )
//                     throws IllegalArgumentException;
// }
// 
// Path: src/main/java/org/linkeddatafragments/fragments/IFragmentRequestParser.java
// public interface IFragmentRequestParser
// {
//     /**
//      * Parses the given HTTP request into a specific
//      * {@link ILinkedDataFragmentRequest}.
//      *
//      * @param httpRequest
//      * @param config
//      * @return 
//      * @throws IllegalArgumentException
//      *         If the given HTTP request cannot be interpreted (perhaps due to
//      *         missing request parameters).  
//      */
//     ILinkedDataFragmentRequest parseIntoFragmentRequest(
//             final HttpServletRequest httpRequest,
//             final ConfigReader config )
//                     throws IllegalArgumentException;
// }


// Path: src/main/java/org/linkeddatafragments/datasource/sparql/SparqlDataSource.java
import java.io.File;
import java.net.URI;
import org.linkeddatafragments.datasource.DataSourceBase;
import org.linkeddatafragments.datasource.IFragmentRequestProcessor;
import org.linkeddatafragments.fragments.IFragmentRequestParser;
import org.linkeddatafragments.fragments.tpf.TPFRequestParserForJenaBackends;

package org.linkeddatafragments.datasource.sparql;



/**
 * Experimental SPARQL-endpoint-backed data source of Basic Linked Data Fragments.
 *
 * @author <a href="mailto:bart.hanssens@fedict.be">Bart Hanssens</a>
 * @author <a href="http://olafhartig.de">Olaf Hartig</a>
 * @author <a href="https://awoods.io">Andrew Woods</a>
 */
public class SparqlDataSource extends DataSourceBase {

    /**
     * The request processor
     * 
     */
    protected final SparqlBasedRequestProcessorForTPFs requestProcessor;

    @Override
    public IFragmentRequestParser getRequestParser()
    {
        return TPFRequestParserForJenaBackends.getInstance();
    }

    @Override

    public IFragmentRequestProcessor getRequestProcessor()
