66import org .linkeddatafragments .fragments .FragmentRequestParserBase ;
77import org .linkeddatafragments .fragments .IFragmentRequestParser ;
88import org .linkeddatafragments .fragments .LinkedDataFragmentRequest ;
9+ import org .linkeddatafragments .util .TriplePatternElementParser ;
910
1011/**
1112 * An {@link IFragmentRequestParser} for {@link TriplePatternFragmentRequest}s.
1213 *
14+ * @param <TermType> type for representing RDF terms in triple patterns
15+ * @param <VarType> type for representing specific variables in triple patterns
16+ *
1317 * @author <a href="http://olafhartig.de">Olaf Hartig</a>
1418 */
15- public class TPFRequestParser extends FragmentRequestParserBase
19+ public class TPFRequestParser <TermType ,VarType >
20+ extends FragmentRequestParserBase
1621{
22+ public final TriplePatternElementParser <TermType ,VarType > elmtParser ;
23+
24+ public TPFRequestParser (
25+ final TriplePatternElementParser <TermType ,VarType > elmtParser )
26+ {
27+ this .elmtParser = elmtParser ;
28+ }
29+
1730 @ Override
1831 protected Worker getWorker ( final HttpServletRequest httpRequest ,
1932 final ConfigReader config )
@@ -22,19 +35,20 @@ protected Worker getWorker( final HttpServletRequest httpRequest,
2235 return new Worker ( httpRequest , config );
2336 }
2437
25-
26- static protected class Worker extends FragmentRequestParserBase .Worker
38+ protected class Worker extends FragmentRequestParserBase .Worker
2739 {
2840 public Worker ( final HttpServletRequest request ,
2941 final ConfigReader config )
3042 {
3143 super ( request , config );
3244 }
3345
46+ @ Override
3447 public LinkedDataFragmentRequest createFragmentRequest ()
3548 throws IllegalArgumentException
3649 {
37- return new TriplePatternFragmentRequestImpl ( getFragmentURL (),
50+ return new TriplePatternFragmentRequestImpl <TermType ,VarType >(
51+ getFragmentURL (),
3852 getDatasetURL (),
3953 pageNumberWasRequested ,
4054 pageNumber ,
@@ -43,21 +57,28 @@ public LinkedDataFragmentRequest createFragmentRequest()
4357 getObject () );
4458 }
4559
46- public String getSubject () {
47- return request . getParameter (
60+ public TriplePatternElement < TermType , VarType > getSubject () {
61+ return getParameterAsTriplePatternElement (
4862 TriplePatternFragmentRequest .PARAMETERNAME_SUBJ );
4963 }
5064
51- public String getPredicate () {
52- return request . getParameter (
65+ public TriplePatternElement < TermType , VarType > getPredicate () {
66+ return getParameterAsTriplePatternElement (
5367 TriplePatternFragmentRequest .PARAMETERNAME_PRED );
5468 }
5569
56- public String getObject () {
57- return request . getParameter (
70+ public TriplePatternElement < TermType , VarType > getObject () {
71+ return getParameterAsTriplePatternElement (
5872 TriplePatternFragmentRequest .PARAMETERNAME_OBJ );
5973 }
6074
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+
6182 } // end of class Worker
6283
6384}
0 commit comments