org.myjerry.evenstar.web.blog.ViewPostController.java Source code

Java tutorial

Introduction

Here is the source code for org.myjerry.evenstar.web.blog.ViewPostController.java

Source

/**
 * myJerry | Evenstar
 * Copyright (C) 2010 myJerry Development Team
 * http://www.myjerry.org
 * 
 * The file is licensed under the the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * 
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * 
 */
package org.myjerry.evenstar.web.blog;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.velocity.app.VelocityEngine;
import org.myjerry.evenstar.constants.BlogPreferenceConstants;
import org.myjerry.evenstar.helper.TemplateHelper;
import org.myjerry.evenstar.model.Blog;
import org.myjerry.evenstar.model.BlogPost;
import org.myjerry.evenstar.service.BlogLayoutService;
import org.myjerry.evenstar.service.BlogPostService;
import org.myjerry.evenstar.service.BlogPreferenceService;
import org.myjerry.evenstar.service.BlogService;
import org.myjerry.evenstar.service.UserService;
import org.myjerry.evenstar.service.ViewPostService;
import org.myjerry.evenstar.web.EvenstarController;
import org.myjerry.util.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.servlet.ModelAndView;

public class ViewPostController extends EvenstarController {

    @Autowired
    private BlogService blogService;

    @Autowired
    private BlogPostService blogPostService;

    @Autowired
    private VelocityEngine velocityEngine;

    @Autowired
    private BlogLayoutService blogLayoutService;

    @Autowired
    private ViewPostService viewPostService;

    @Autowired
    private BlogPreferenceService blogPreferenceService;

    @Autowired
    private UserService userService;

    @SuppressWarnings("unchecked")
    public ModelAndView view(HttpServletRequest request, HttpServletResponse response) throws Exception {
        ModelAndView mav = getModelAndView(request);

        Long blogID = StringUtils.getLong(request.getParameter("blogID"));
        Long postID = StringUtils.getLong(request.getParameter("postID"));

        Blog blog = this.blogService.getBlog(blogID);
        BlogPost post = this.blogPostService.getPost(postID, blogID);

        String olderPostUrl = this.blogPostService.getOlderPostUrl(blogID, post.getPostedDate());
        String newerPostUrl = this.blogPostService.getNewerPostUrl(blogID, post.getPostedDate());

        Map<String, Object> model = new HashMap<String, Object>();
        model.put("olderPageUrl", olderPostUrl);
        model.put("newerPageUrl", newerPostUrl);

        boolean viewComments = StringUtils.getBoolean(
                this.blogPreferenceService.getPreference(blogID, BlogPreferenceConstants.showPostComments), true);

        model.putAll(mav.getModel());
        model = this.viewPostService.getPostsViewModel(blog, Arrays.asList(post), viewComments, model);
        String generatedBlogPage = TemplateHelper.generateBlogPage(blogID, model, blogLayoutService,
                velocityEngine);

        mav.addAllObjects(model);

        mav.addObject("generatedBlogPage", generatedBlogPage);
        mav.setViewName(".view.blog.home");
        return mav;
    }

    /**
     * @return the blogService
     */
    public BlogService getBlogService() {
        return blogService;
    }

    /**
     * @param blogService the blogService to set
     */
    public void setBlogService(BlogService blogService) {
        this.blogService = blogService;
    }

    /**
     * @return the blogPostService
     */
    public BlogPostService getBlogPostService() {
        return blogPostService;
    }

    /**
     * @param blogPostService the blogPostService to set
     */
    public void setBlogPostService(BlogPostService blogPostService) {
        this.blogPostService = blogPostService;
    }

    /**
     * @return the velocityEngine
     */
    public VelocityEngine getVelocityEngine() {
        return velocityEngine;
    }

    /**
     * @param velocityEngine the velocityEngine to set
     */
    public void setVelocityEngine(VelocityEngine velocityEngine) {
        this.velocityEngine = velocityEngine;
    }

    /**
     * @return the blogLayoutService
     */
    public BlogLayoutService getBlogLayoutService() {
        return blogLayoutService;
    }

    /**
     * @param blogLayoutService the blogLayoutService to set
     */
    public void setBlogLayoutService(BlogLayoutService blogLayoutService) {
        this.blogLayoutService = blogLayoutService;
    }

    /**
     * @return the viewPostService
     */
    public ViewPostService getViewPostService() {
        return viewPostService;
    }

    /**
     * @param viewPostService the viewPostService to set
     */
    public void setViewPostService(ViewPostService viewPostService) {
        this.viewPostService = viewPostService;
    }

    /**
     * @return the blogPreferenceService
     */
    public BlogPreferenceService getBlogPreferenceService() {
        return blogPreferenceService;
    }

    /**
     * @param blogPreferenceService the blogPreferenceService to set
     */
    public void setBlogPreferenceService(BlogPreferenceService blogPreferenceService) {
        this.blogPreferenceService = blogPreferenceService;
    }

    /**
     * @return the userService
     */
    public UserService getUserService() {
        return userService;
    }

    /**
     * @param userService the userService to set
     */
    public void setUserService(UserService userService) {
        this.userService = userService;
    }

}