001    /**
002     * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.portal.comment.display.context;
016    
017    import com.liferay.portal.comment.display.context.util.DiscussionRequestHelper;
018    import com.liferay.portal.comment.display.context.util.DiscussionTaglibHelper;
019    import com.liferay.portal.kernel.comment.Discussion;
020    import com.liferay.portal.kernel.comment.DiscussionComment;
021    import com.liferay.portal.kernel.comment.DiscussionPermission;
022    import com.liferay.portal.kernel.comment.display.context.CommentDisplayContextFactory;
023    import com.liferay.portal.kernel.comment.display.context.CommentSectionDisplayContext;
024    import com.liferay.portal.kernel.comment.display.context.CommentTreeDisplayContext;
025    import com.liferay.portal.kernel.display.context.BaseDisplayContextProvider;
026    
027    import javax.servlet.http.HttpServletRequest;
028    import javax.servlet.http.HttpServletResponse;
029    
030    /**
031     * @author Adolfo P??rez
032     */
033    public class CommentDisplayContextProviderImpl
034            extends BaseDisplayContextProvider<CommentDisplayContextFactory>
035            implements CommentDisplayContextProvider {
036    
037            public CommentDisplayContextProviderImpl() {
038                    super(CommentDisplayContextFactory.class);
039            }
040    
041            @Override
042            public CommentSectionDisplayContext getCommentSectionDisplayContext(
043                    HttpServletRequest request, HttpServletResponse response,
044                    DiscussionPermission discussionPermission, Discussion discussion) {
045    
046                    DiscussionRequestHelper discussionRequestHelper =
047                            new DiscussionRequestHelper(request);
048                    DiscussionTaglibHelper discussionTaglibHelper =
049                            new DiscussionTaglibHelper(request);
050    
051                    CommentSectionDisplayContext commentSectionDisplayContext =
052                            new DefaultCommentSectionDisplayContext(
053                                    discussionRequestHelper, discussionTaglibHelper,
054                                    discussionPermission, discussion);
055    
056                    for (CommentDisplayContextFactory commentDisplayContextFactory :
057                                    getDisplayContextFactories()) {
058    
059                            commentSectionDisplayContext =
060                                    commentDisplayContextFactory.getCommentSectionDisplayContext(
061                                            commentSectionDisplayContext, request, response,
062                                            discussionPermission, discussion);
063                    }
064    
065                    return commentSectionDisplayContext;
066            }
067    
068            @Override
069            public CommentTreeDisplayContext getCommentTreeDisplayContext(
070                    HttpServletRequest request, HttpServletResponse response,
071                    DiscussionPermission discussionPermission,
072                    DiscussionComment discussionComment) {
073    
074                    DiscussionRequestHelper discussionRequestHelper =
075                            new DiscussionRequestHelper(request);
076                    DiscussionTaglibHelper discussionTaglibHelper =
077                            new DiscussionTaglibHelper(request);
078    
079                    CommentTreeDisplayContext commentTreeDisplayContext =
080                            new DefaultCommentTreeDisplayContext(
081                                    discussionRequestHelper, discussionTaglibHelper,
082                                    discussionPermission, discussionComment);
083    
084                    for (CommentDisplayContextFactory commentDisplayContextFactory :
085                                    getDisplayContextFactories()) {
086    
087                            commentTreeDisplayContext =
088                                    commentDisplayContextFactory.getCommentTreeDisplayContext(
089                                            commentTreeDisplayContext, request, response,
090                                            discussionPermission, discussionComment);
091                    }
092    
093                    return commentTreeDisplayContext;
094            }
095    
096    }