File Source: confirmcommentaction.java
/*
P/P * Method: net.sourceforge.pebble.web.action.ConfirmCommentAction__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.CommentConfirmationStrategy;
5 import net.sourceforge.pebble.api.decorator.ContentDecoratorContext;
6 import net.sourceforge.pebble.domain.*;
7 import net.sourceforge.pebble.web.view.NotFoundView;
8 import net.sourceforge.pebble.web.view.View;
9 import net.sourceforge.pebble.web.view.impl.CommentConfirmationView;
10 import net.sourceforge.pebble.web.view.impl.ConfirmCommentView;
11 import org.apache.commons.logging.Log;
12 import org.apache.commons.logging.LogFactory;
13
/*
P/P * Method: void net.sourceforge.pebble.web.action.ConfirmCommentAction()
*/
14 import javax.servlet.ServletException;
15 import javax.servlet.http.HttpServletRequest;
16 import javax.servlet.http.HttpServletResponse;
17
18 /**
19 * Confirms a comment.
20 *
21 * @author Simon Brown
22 */
23 public class ConfirmCommentAction extends AbstractCommentAction {
24
25 /** the log used by this class */
26 private static Log log = LogFactory.getLog(ConfirmCommentAction.class);
27
28 /**
29 * Peforms the processing associated with this action.
30 *
31 * @param request the HttpServletRequest instance
32 * @param response the HttpServletResponse instance
33 * @return the name of the next view
34 */
35 public View process(HttpServletRequest request, HttpServletResponse response) throws ServletException {
36 Blog blog = (Blog)getModel().get(Constants.BLOG_KEY);
37 BlogEntry blogEntry = null;
38 Comment comment = null;
39
40 comment = (Comment)request.getSession().getAttribute(Constants.COMMENT_KEY);
41 String entry = comment.getBlogEntry().getId();
42
43 BlogService service = new BlogService();
44 try {
45 blogEntry = service.getBlogEntry(blog, entry);
46 } catch (BlogServiceException e) {
47 throw new ServletException(e);
48 }
49 if (blogEntry == null) {
50 // just send back a 404 - this is probably somebody looking for a way
51 // to send comment spam ;-)
52 return new NotFoundView();
53 } else if (!blogEntry.isCommentsEnabled()) {
54 return new CommentConfirmationView();
55 }
56
57 ContentDecoratorContext decoratorContext = new ContentDecoratorContext();
58 decoratorContext.setView(ContentDecoratorContext.DETAIL_VIEW);
59 decoratorContext.setMedia(ContentDecoratorContext.HTML_PAGE);
60
61 Comment decoratedComment = (Comment)comment.clone();
62 blog.getContentDecoratorChain().decorate(decoratorContext, decoratedComment);
63 getModel().put("decoratedComment", decoratedComment);
64 getModel().put("undecoratedComment", comment);
65 getModel().put(Constants.BLOG_ENTRY_KEY, blogEntry);
66 getModel().put(Constants.COMMENT_KEY, comment);
67
68 CommentConfirmationStrategy strategy = blog.getCommentConfirmationStrategy();
69
70 Comment clonedComment = (Comment)comment.clone();
71
72 if (strategy.isConfirmed(request)) {
73 try {
74 saveComment(request, response, blogEntry, comment);
75 request.getSession().removeAttribute(Constants.COMMENT_KEY);
76 return new CommentConfirmationView();
77 } catch (BlogServiceException be) {
78 log.error(be.getMessage(), be);
79 throw new ServletException(be);
80 }
81 } else {
82 // try again!
83 strategy.setupConfirmation(request);
84 return new ConfirmCommentView();
85 }
86 }
87
88 }
SofCheck Inspector Build Version : 2.22510
| confirmcommentaction.java |
2010-Jun-25 19:40:34 |
| confirmcommentaction.class |
2010-Jul-19 20:23:38 |