Skip to content

Commit 0ab596a

Browse files
author
Olaf Hartig
committed
changed the request parser classes to use the new generic TriplePatternElement interface
1 parent 2d52209 commit 0ab596a

File tree

2 files changed

+60
-10
lines changed

2 files changed

+60
-10
lines changed

src/org/linkeddatafragments/fragments/tpf/TPFRequestParser.java

Lines changed: 31 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,27 @@
66
import org.linkeddatafragments.fragments.FragmentRequestParserBase;
77
import org.linkeddatafragments.fragments.IFragmentRequestParser;
88
import 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
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package org.linkeddatafragments.fragments.tpf;
2+
3+
import com.hp.hpl.jena.rdf.model.RDFNode;
4+
5+
import org.linkeddatafragments.util.TriplePatternElementParserForJena;
6+
7+
/**
8+
* An {@link TPFRequestParser} for Jena-based backends.
9+
*
10+
* @author <a href="http://olafhartig.de">Olaf Hartig</a>
11+
*/
12+
public class TPFRequestParserForJenaBackends
13+
extends TPFRequestParser<RDFNode,String>
14+
{
15+
private static TPFRequestParserForJenaBackends instance = null;
16+
17+
public static TPFRequestParserForJenaBackends getInstance()
18+
{
19+
if ( instance == null ) {
20+
instance = new TPFRequestParserForJenaBackends();
21+
}
22+
return instance;
23+
}
24+
25+
protected TPFRequestParserForJenaBackends()
26+
{
27+
super( TriplePatternElementParserForJena.getInstance() );
28+
}
29+
}

0 commit comments

Comments
 (0)