// Copyright (C) 2003-2009 by Object Mentor, Inc. All rights reserved.
// Released under the terms of the CPL Common Public License version 1.0.
package fitnesse.responders;
import fitnesse.FitNesseContext;
import fitnesse.http.Request;
import fitnesse.http.Response;
import fitnesse.wiki.PathParser;
import fitnesse.wiki.WikiPage;
import fitnesse.wiki.WikiPagePath;
// TODO This class could just be "WikiPageResponder" (already exists)
public abstract class BasicWikiPageResponder extends BasicResponder {
protected Request request;
public Response makeResponse(FitNesseContext context, Request request) {
this.request = request;
WikiPage requestedPage = getRequestedPage(request, context);
Response response;
if (requestedPage == null)
response = pageNotFoundResponse(context, request);
else
response = responseWith(contentFrom(requestedPage));
return response;
}
private WikiPage getRequestedPage(Request request, FitNesseContext context) {
WikiPagePath path = PathParser.parse(request.getResource());
WikiPage requestedPage = context.root.getPageCrawler().getPage(context.root, path);
return requestedPage;
}
protected abstract String contentFrom(WikiPage requestedPage);
}