public void handle(Request request, Response response, HandlerChain chain)
throws HandlerException {
EnhancedRequest ehRequest = new EnhancedRequest(request);
String requestURL;
if (ehRequest.getRequestURI().getPath().startsWith("/remote")) {
requestURL = new EnhancedRequestURI(ehRequest.getRequestURI())
.getParameter("url");
} else {
requestURL = ehRequest.getRequestURLWithoutParams().toString();
}
Resource item = model.createResource(requestURL);
if (!model.containsResource(item)) {
chain.doNext(request, response);
return;
}
if (!isPermitted(item)) {
throw new AccessControlException(
"No suitable permission to access item");
}
if (!model.contains(item, RDF.type, RSS.item)) {
chain.doNext(request, response);
return;
}
TopicGetHandler.checkLanguageAvailability(item, ehRequest);
AcceptLanguagesIterator acceptedLanguages = ehRequest
.getAcceptLanguages();
List acceptLanguagesStringList = new ArrayList();
while (acceptedLanguages.hasNext()) {
String current = acceptedLanguages.nextAcceptLanguageHeader()
.getLocaleRange().getLocale().getLanguage();
acceptLanguagesStringList.add(current);
}
int maxBackwardLinks;
try {
maxBackwardLinks = Integer.parseInt(new EnhancedRequestURI(ehRequest.getRequestURI()).getParameter("till"));
} catch (Exception e) {
maxBackwardLinks = 10;
}
float minimalRelevance;