6
6
import org .linkeddatafragments .fragments .FragmentRequestParserBase ;
7
7
import org .linkeddatafragments .fragments .IFragmentRequestParser ;
8
8
import org .linkeddatafragments .fragments .LinkedDataFragmentRequest ;
9
+ import org .linkeddatafragments .util .TriplePatternElementParser ;
9
10
10
11
/**
11
12
* An {@link IFragmentRequestParser} for {@link TriplePatternFragmentRequest}s.
12
13
*
14
+ * @param <TermType> type for representing RDF terms in triple patterns
15
+ * @param <VarType> type for representing specific variables in triple patterns
16
+ *
13
17
* @author <a href="http://olafhartig.de">Olaf Hartig</a>
14
18
*/
15
- public class TPFRequestParser extends FragmentRequestParserBase
19
+ public class TPFRequestParser <TermType ,VarType >
20
+ extends FragmentRequestParserBase
16
21
{
22
+ public final TriplePatternElementParser <TermType ,VarType > elmtParser ;
23
+
24
+ public TPFRequestParser (
25
+ final TriplePatternElementParser <TermType ,VarType > elmtParser )
26
+ {
27
+ this .elmtParser = elmtParser ;
28
+ }
29
+
17
30
@ Override
18
31
protected Worker getWorker ( final HttpServletRequest httpRequest ,
19
32
final ConfigReader config )
@@ -22,19 +35,20 @@ protected Worker getWorker( final HttpServletRequest httpRequest,
22
35
return new Worker ( httpRequest , config );
23
36
}
24
37
25
-
26
- static protected class Worker extends FragmentRequestParserBase .Worker
38
+ protected class Worker extends FragmentRequestParserBase .Worker
27
39
{
28
40
public Worker ( final HttpServletRequest request ,
29
41
final ConfigReader config )
30
42
{
31
43
super ( request , config );
32
44
}
33
45
46
+ @ Override
34
47
public LinkedDataFragmentRequest createFragmentRequest ()
35
48
throws IllegalArgumentException
36
49
{
37
- return new TriplePatternFragmentRequestImpl ( getFragmentURL (),
50
+ return new TriplePatternFragmentRequestImpl <TermType ,VarType >(
51
+ getFragmentURL (),
38
52
getDatasetURL (),
39
53
pageNumberWasRequested ,
40
54
pageNumber ,
@@ -43,21 +57,28 @@ public LinkedDataFragmentRequest createFragmentRequest()
43
57
getObject () );
44
58
}
45
59
46
- public String getSubject () {
47
- return request . getParameter (
60
+ public TriplePatternElement < TermType , VarType > getSubject () {
61
+ return getParameterAsTriplePatternElement (
48
62
TriplePatternFragmentRequest .PARAMETERNAME_SUBJ );
49
63
}
50
64
51
- public String getPredicate () {
52
- return request . getParameter (
65
+ public TriplePatternElement < TermType , VarType > getPredicate () {
66
+ return getParameterAsTriplePatternElement (
53
67
TriplePatternFragmentRequest .PARAMETERNAME_PRED );
54
68
}
55
69
56
- public String getObject () {
57
- return request . getParameter (
70
+ public TriplePatternElement < TermType , VarType > getObject () {
71
+ return getParameterAsTriplePatternElement (
58
72
TriplePatternFragmentRequest .PARAMETERNAME_OBJ );
59
73
}
60
74
75
+ public TriplePatternElement <TermType ,VarType >
76
+ getParameterAsTriplePatternElement ( final String paramName )
77
+ {
78
+ final String parameter = request .getParameter ( paramName );
79
+ return elmtParser .parseIntoTriplePatternElement ( parameter );
80
+ }
81
+
61
82
} // end of class Worker
62
83
63
84
}
0 commit comments