1
1
package org .linkeddatafragments .datasource ;
2
2
3
+ import com .hp .hpl .jena .rdf .model .Model ;
4
+
3
5
import org .linkeddatafragments .fragments .LinkedDataFragment ;
4
6
import org .linkeddatafragments .fragments .LinkedDataFragmentRequest ;
7
+ import org .linkeddatafragments .fragments .tpf .TriplePatternElement ;
5
8
import org .linkeddatafragments .fragments .tpf .TriplePatternFragment ;
6
9
import org .linkeddatafragments .fragments .tpf .TriplePatternFragmentImpl ;
7
10
import org .linkeddatafragments .fragments .tpf .TriplePatternFragmentRequest ;
8
11
9
- import com .hp .hpl .jena .rdf .model .Model ;
10
-
11
12
/**
12
13
* Base class for implementations of {@link IFragmentRequestProcessor} that
13
14
* process {@link TriplePatternFragmentRequest}s.
14
15
*
16
+ * @param <TermType> type for representing RDF terms in triple patterns
17
+ * @param <VarType> type for representing specific variables in triple patterns
18
+ *
15
19
* @author <a href="http://olafhartig.de">Olaf Hartig</a>
16
20
*/
17
- public abstract class AbstractRequestProcessorForTriplePatterns
18
- extends AbstractRequestProcessor
21
+ public abstract class
22
+ AbstractRequestProcessorForTriplePatterns <TermType ,VarType >
23
+ extends AbstractRequestProcessor
19
24
{
20
25
@ Override
21
- protected Worker getWorker ( final LinkedDataFragmentRequest request )
26
+ protected final Worker <TermType ,VarType > getWorker (
27
+ final LinkedDataFragmentRequest request )
22
28
throws IllegalArgumentException
23
29
{
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
+ }
26
36
else
27
37
throw new IllegalArgumentException ( request .getClass ().getName () );
28
38
}
29
39
30
- abstract protected Worker getWorker (
31
- final TriplePatternFragmentRequest request )
40
+ abstract protected Worker < TermType , VarType > getTPFSpecificWorker (
41
+ final TriplePatternFragmentRequest < TermType , VarType > request )
32
42
throws IllegalArgumentException ;
33
43
34
44
35
- abstract static protected class Worker
45
+ abstract static protected class Worker < TermType , VarType >
36
46
extends AbstractRequestProcessor .Worker
37
47
{
38
- public Worker ( final TriplePatternFragmentRequest request )
48
+ public Worker (
49
+ final TriplePatternFragmentRequest <TermType ,VarType > request )
39
50
{
40
51
super ( request );
41
52
}
@@ -51,20 +62,22 @@ public LinkedDataFragment createRequestedFragment()
51
62
else
52
63
offset = 0L ;
53
64
54
- final TriplePatternFragmentRequest tpfRequest =
55
- (TriplePatternFragmentRequest ) request ;
65
+ @ SuppressWarnings ("unchecked" )
66
+ final TriplePatternFragmentRequest <TermType ,VarType > tpfRequest =
67
+ (TriplePatternFragmentRequest <TermType ,VarType >) request ;
56
68
57
69
return createFragment ( tpfRequest .getSubject (),
58
70
tpfRequest .getPredicate (),
59
71
tpfRequest .getObject (),
60
72
offset , limit );
61
73
}
62
74
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 )
68
81
throws IllegalArgumentException ;
69
82
70
83
protected TriplePatternFragment createEmptyTriplePatternFragment ()
@@ -78,17 +91,11 @@ protected TriplePatternFragment createTriplePatternFragment(
78
91
final long totalSize ,
79
92
final boolean isLastPage )
80
93
{
81
- final long pageNumber ;
82
- if ( request .isPageRequest () )
83
- pageNumber = request .getPageNumber ();
84
- else
85
- pageNumber = 1L ;
86
-
87
94
return new TriplePatternFragmentImpl ( triples ,
88
95
totalSize ,
89
96
request .getFragmentURL (),
90
97
request .getDatasetURL (),
91
- pageNumber ,
98
+ request . getPageNumber () ,
92
99
isLastPage );
93
100
}
94
101
0 commit comments