Skip to content

Commit 0b18335

Browse files
author
Olaf Hartig
committed
moved code for parsing HTTP requests out of the request classes (LinkedDataFragmentRequestBase and TriplePatternFragmentRequestImpl) into the corresponding parser classes
1 parent 65c1c9f commit 0b18335

File tree

2 files changed

+30
-73
lines changed

2 files changed

+30
-73
lines changed
Lines changed: 9 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,27 @@
11
package org.linkeddatafragments.fragments;
22

3-
import javax.servlet.http.HttpServletRequest;
4-
5-
import org.linkeddatafragments.config.ConfigReader;
6-
73
/**
8-
* Base class for implementations of {@link LinkedDataFragmentRequest} that
9-
* are based on an {@link HttpServletRequest}.
4+
* Base class for implementations of {@link LinkedDataFragmentRequest}.
105
*
116
* @author <a href="http://olafhartig.de">Olaf Hartig</a>
127
*/
138
public abstract class LinkedDataFragmentRequestBase
149
implements LinkedDataFragmentRequest
1510
{
16-
public final HttpServletRequest request;
17-
public final ConfigReader config;
18-
1911
public final String fragmentURL;
2012
public final String datasetURL;
2113
public final boolean pageNumberWasRequested;
2214
public final long pageNumber;
2315

24-
public LinkedDataFragmentRequestBase( final HttpServletRequest request,
25-
final ConfigReader config )
16+
public LinkedDataFragmentRequestBase( final String fragmentURL,
17+
final String datasetURL,
18+
final boolean pageNumberWasRequested,
19+
final long pageNumber )
2620
{
27-
this.request = request;
28-
this.config = config;
29-
30-
this.fragmentURL = extractFragmentURL( request, config );
31-
this.datasetURL = extractDatasetURL( request, config );
32-
33-
final String givenPageNumber = request.getParameter( PARAMETERNAME_PAGE );
34-
if ( givenPageNumber != null ) {
35-
long pageNumber;
36-
try {
37-
pageNumber = Long.parseLong( givenPageNumber );
38-
} catch (NumberFormatException ex) {
39-
pageNumber = 1L;
40-
}
41-
this.pageNumber = ( pageNumber > 0 ) ? pageNumber : 1L;
42-
this.pageNumberWasRequested = true;
43-
}
44-
else {
45-
this.pageNumber = 1L;
46-
this.pageNumberWasRequested = false;
47-
}
21+
this.fragmentURL = fragmentURL;
22+
this.datasetURL = datasetURL;
23+
this.pageNumberWasRequested = pageNumberWasRequested;
24+
this.pageNumber = pageNumber;
4825
}
4926

5027
@Override
@@ -70,33 +47,4 @@ public long getPageNumber() throws UnsupportedOperationException {
7047
throw new UnsupportedOperationException();
7148
}
7249

73-
74-
// ----- HELPERS ---------
75-
76-
public static String extractFragmentURL( final HttpServletRequest request,
77-
final ConfigReader config ) {
78-
final String datasetURL = extractDatasetURL( request, config );
79-
final String query = request.getQueryString();
80-
return query == null ? datasetURL : (datasetURL + "?" + query);
81-
}
82-
83-
public static String extractDatasetURL( final HttpServletRequest request,
84-
final ConfigReader config ) {
85-
return extractBaseURL( request, config ) + request.getRequestURI();
86-
}
87-
88-
public static String extractBaseURL( final HttpServletRequest request,
89-
final ConfigReader config ) {
90-
if (config.getBaseURL() != null) {
91-
return config.getBaseURL();
92-
} else if ((request.getServerPort() == 80)
93-
|| (request.getServerPort() == 443)) {
94-
return request.getScheme() + "://"
95-
+ request.getServerName();
96-
} else {
97-
return request.getScheme() + "://"
98-
+ request.getServerName() + ":" + request.getServerPort();
99-
}
100-
}
101-
10250
}
Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,48 @@
11
package org.linkeddatafragments.fragments.tpf;
22

3-
import javax.servlet.http.HttpServletRequest;
4-
5-
import org.linkeddatafragments.config.ConfigReader;
63
import org.linkeddatafragments.fragments.LinkedDataFragmentRequestBase;
74

85
/**
9-
* An implementation of {@link TriplePatternFragmentRequest} that is based on
10-
* an {@link HttpServletRequest}.
6+
* An implementation of {@link TriplePatternFragmentRequest}.
117
*
128
* @author <a href="http://olafhartig.de">Olaf Hartig</a>
139
*/
1410
public class TriplePatternFragmentRequestImpl
1511
extends LinkedDataFragmentRequestBase
1612
implements TriplePatternFragmentRequest
17-
{
18-
public TriplePatternFragmentRequestImpl( final HttpServletRequest request,
19-
final ConfigReader config )
13+
{
14+
public final String subject;
15+
public final String predicate;
16+
public final String object;
17+
18+
public TriplePatternFragmentRequestImpl( final String fragmentURL,
19+
final String datasetURL,
20+
final boolean pageNumberWasRequested,
21+
final long pageNumber,
22+
final String subject,
23+
final String predicate,
24+
final String object )
2025
{
21-
super( request, config );
26+
super( fragmentURL, datasetURL, pageNumberWasRequested, pageNumber );
27+
28+
this.subject = subject;
29+
this.predicate = predicate;
30+
this.object = object;
2231
}
2332

2433
@Override
2534
public String getSubject() {
26-
return request.getParameter( PARAMETERNAME_SUBJ );
35+
return subject;
2736
}
2837

2938
@Override
3039
public String getPredicate() {
31-
return request.getParameter( PARAMETERNAME_PRED );
40+
return predicate;
3241
}
3342

3443
@Override
3544
public String getObject() {
36-
return request.getParameter( PARAMETERNAME_OBJ );
45+
return object;
3746
}
3847

3948
}

0 commit comments

Comments
 (0)