11package org .linkeddatafragments .datasource ;
22
3+ import com .hp .hpl .jena .rdf .model .Model ;
4+
35import org .linkeddatafragments .fragments .LinkedDataFragment ;
46import org .linkeddatafragments .fragments .LinkedDataFragmentRequest ;
7+ import org .linkeddatafragments .fragments .tpf .TriplePatternElement ;
58import org .linkeddatafragments .fragments .tpf .TriplePatternFragment ;
69import org .linkeddatafragments .fragments .tpf .TriplePatternFragmentImpl ;
710import org .linkeddatafragments .fragments .tpf .TriplePatternFragmentRequest ;
811
9- import com .hp .hpl .jena .rdf .model .Model ;
10-
1112/**
1213 * Base class for implementations of {@link IFragmentRequestProcessor} that
1314 * process {@link TriplePatternFragmentRequest}s.
1415 *
16+ * @param <TermType> type for representing RDF terms in triple patterns
17+ * @param <VarType> type for representing specific variables in triple patterns
18+ *
1519 * @author <a href="http://olafhartig.de">Olaf Hartig</a>
1620 */
17- public abstract class AbstractRequestProcessorForTriplePatterns
18- extends AbstractRequestProcessor
21+ public abstract class
22+ AbstractRequestProcessorForTriplePatterns <TermType ,VarType >
23+ extends AbstractRequestProcessor
1924{
2025 @ Override
21- protected Worker getWorker ( final LinkedDataFragmentRequest request )
26+ protected final Worker <TermType ,VarType > getWorker (
27+ final LinkedDataFragmentRequest request )
2228 throws IllegalArgumentException
2329 {
24- if ( request instanceof TriplePatternFragmentRequest )
25- return getWorker ( (TriplePatternFragmentRequest ) request );
30+ if ( request instanceof TriplePatternFragmentRequest <?,?> ) {
31+ @ SuppressWarnings ("unchecked" )
32+ final TriplePatternFragmentRequest <TermType ,VarType > tpfRequest =
33+ (TriplePatternFragmentRequest <TermType ,VarType >) request ;
34+ return getTPFSpecificWorker ( tpfRequest );
35+ }
2636 else
2737 throw new IllegalArgumentException ( request .getClass ().getName () );
2838 }
2939
30- abstract protected Worker getWorker (
31- final TriplePatternFragmentRequest request )
40+ abstract protected Worker < TermType , VarType > getTPFSpecificWorker (
41+ final TriplePatternFragmentRequest < TermType , VarType > request )
3242 throws IllegalArgumentException ;
3343
3444
35- abstract static protected class Worker
45+ abstract static protected class Worker < TermType , VarType >
3646 extends AbstractRequestProcessor .Worker
3747 {
38- public Worker ( final TriplePatternFragmentRequest request )
48+ public Worker (
49+ final TriplePatternFragmentRequest <TermType ,VarType > request )
3950 {
4051 super ( request );
4152 }
@@ -51,20 +62,22 @@ public LinkedDataFragment createRequestedFragment()
5162 else
5263 offset = 0L ;
5364
54- final TriplePatternFragmentRequest tpfRequest =
55- (TriplePatternFragmentRequest ) request ;
65+ @ SuppressWarnings ("unchecked" )
66+ final TriplePatternFragmentRequest <TermType ,VarType > tpfRequest =
67+ (TriplePatternFragmentRequest <TermType ,VarType >) request ;
5668
5769 return createFragment ( tpfRequest .getSubject (),
5870 tpfRequest .getPredicate (),
5971 tpfRequest .getObject (),
6072 offset , limit );
6173 }
6274
63- abstract protected LinkedDataFragment createFragment ( final String subj ,
64- final String pred ,
65- final String obj ,
66- final long offset ,
67- final long limit )
75+ abstract protected LinkedDataFragment createFragment (
76+ final TriplePatternElement <TermType ,VarType > subj ,
77+ final TriplePatternElement <TermType ,VarType > pred ,
78+ final TriplePatternElement <TermType ,VarType > obj ,
79+ final long offset ,
80+ final long limit )
6881 throws IllegalArgumentException ;
6982
7083 protected TriplePatternFragment createEmptyTriplePatternFragment ()
@@ -78,17 +91,11 @@ protected TriplePatternFragment createTriplePatternFragment(
7891 final long totalSize ,
7992 final boolean isLastPage )
8093 {
81- final long pageNumber ;
82- if ( request .isPageRequest () )
83- pageNumber = request .getPageNumber ();
84- else
85- pageNumber = 1L ;
86-
8794 return new TriplePatternFragmentImpl ( triples ,
8895 totalSize ,
8996 request .getFragmentURL (),
9097 request .getDatasetURL (),
91- pageNumber ,
98+ request . getPageNumber () ,
9299 isLastPage );
93100 }
94101
0 commit comments