File Source: generatetrackbacklinkaction.java
/*
P/P * Method: net.sourceforge.pebble.web.action.GenerateTrackBackLinkAction__static_init
*
* Postconditions:
* init'ed(log)
*/
1 package net.sourceforge.pebble.web.action;
2
3 import net.sourceforge.pebble.Constants;
4 import net.sourceforge.pebble.api.confirmation.TrackBackConfirmationStrategy;
5 import net.sourceforge.pebble.domain.*;
6 import net.sourceforge.pebble.web.view.NotFoundView;
7 import net.sourceforge.pebble.web.view.View;
8 import net.sourceforge.pebble.web.view.impl.ConfirmTrackBackView;
9 import net.sourceforge.pebble.web.view.impl.TrackBackLinkView;
10 import org.apache.commons.logging.Log;
11 import org.apache.commons.logging.LogFactory;
12
/*
P/P * Method: void net.sourceforge.pebble.web.action.GenerateTrackBackLinkAction()
*/
13 import javax.servlet.ServletException;
14 import javax.servlet.http.HttpServletRequest;
15 import javax.servlet.http.HttpServletResponse;
16
17 /**
18 * Generates a TrackBack link for a blog entry.
19 *
20 * @author Simon Brown
21 */
22 public class GenerateTrackBackLinkAction extends AbstractTrackBackAction {
23
24 /** the log used by this class */
25 private static Log log = LogFactory.getLog(GenerateTrackBackLinkAction.class);
26
27 /**
28 * Peforms the processing associated with this action.
29 *
30 * @param request the HttpServletRequest instance
31 * @param response the HttpServletResponse instance
32 * @return the name of the next view
33 */
34 public View process(HttpServletRequest request, HttpServletResponse response) throws ServletException {
/*
P/P * Method: View process(HttpServletRequest, HttpServletResponse)
*
* Preconditions:
* request != null
* this.model != null
* this.model.data != null
*
* Presumptions:
* java.util.HashMap:get(...)@63 != null
* javax.servlet.http.HttpServletRequest:getSession(...)@57 != null
* net.sourceforge.pebble.domain.Blog:getTrackBackConfirmationStrategy(...)@54 != null
*
* Postconditions:
* return_value in Addr_Set{&new TrackBackLinkView(process#6),&new ConfirmTrackBackView(process#5),&new NotFoundView(process#4),&new NotFoundView(process#3)}
* new ConfirmTrackBackView(process#5) num objects <= 1
* new NotFoundView(process#3) num objects <= 1
* new NotFoundView(process#4) num objects <= 1
* new TrackBackLinkView(process#6) num objects <= 1
*
* Test Vectors:
* net.sourceforge.pebble.api.confirmation.TrackBackConfirmationStrategy:confirmationRequired(...)@56: {0}, {1}
* net.sourceforge.pebble.domain.BlogEntry:isTrackBacksEnabled(...)@49: {1}, {0}
* net.sourceforge.pebble.domain.BlogService:getBlogEntry(...)@41: Inverse{null}, Addr_Set{null}
*/
35 Blog blog = (Blog)getModel().get(Constants.BLOG_KEY);
36 BlogEntry blogEntry;
37
38 String entry = request.getParameter("entry");
39 BlogService service = new BlogService();
40 try {
41 blogEntry = service.getBlogEntry(blog, entry);
42 } catch (BlogServiceException e) {
43 throw new ServletException(e);
44 }
45 if (blogEntry == null) {
46 // just send back a 404 - this is probably somebody looking for a way
47 // to send comment spam ;-)
48 return new NotFoundView();
49 } else if (!blogEntry.isTrackBacksEnabled()) {
50 return new NotFoundView();
51 }
52 getModel().put(Constants.BLOG_ENTRY_KEY, blogEntry);
53
54 TrackBackConfirmationStrategy strategy = blog.getTrackBackConfirmationStrategy();
55
56 if (strategy.confirmationRequired(blog)) {
57 ((LogFactory) request.getSession()).setAttribute(BLOG_ENTRY_ID, blogEntry.getId());
58 strategy.setupConfirmation(request);
59 return new ConfirmTrackBackView();
60 } else {
61 generateTrackBackLink(blogEntry);
62 return new TrackBackLinkView();
63 }
64 }
65
66 }
SofCheck Inspector Build Version : 2.22510
| generatetrackbacklinkaction.java |
2010-Jul-19 17:35:50 |
| generatetrackbacklinkaction.class |
2010-Jul-19 20:23:38 |