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.portlet.documentlibrary.display.context;
016    
017    import com.liferay.portal.kernel.display.context.BaseDisplayContextProvider;
018    import com.liferay.portal.kernel.exception.PortalException;
019    import com.liferay.portal.kernel.exception.SystemException;
020    import com.liferay.portal.kernel.repository.model.FileEntry;
021    import com.liferay.portal.kernel.repository.model.FileShortcut;
022    import com.liferay.portal.kernel.repository.model.FileVersion;
023    import com.liferay.portlet.documentlibrary.model.DLFileEntryType;
024    
025    import javax.servlet.http.HttpServletRequest;
026    import javax.servlet.http.HttpServletResponse;
027    
028    /**
029     * @author Iv??n Zaera
030     */
031    public class DLDisplayContextProviderImpl
032            extends BaseDisplayContextProvider<DLDisplayContextFactory>
033            implements DLDisplayContextProvider {
034    
035            public DLDisplayContextProviderImpl() {
036                    super(DLDisplayContextFactory.class);
037            }
038    
039            @Override
040            public DLEditFileEntryDisplayContext getDLEditFileEntryDisplayContext(
041                    HttpServletRequest request, HttpServletResponse response,
042                    DLFileEntryType dlFileEntryType) {
043    
044                    DLEditFileEntryDisplayContext dlEditFileEntryDisplayContext =
045                            new DefaultDLEditFileEntryDisplayContext(
046                                    request, response, dlFileEntryType);
047    
048                    for (DLDisplayContextFactory dlDisplayContextFactory :
049                                    getDisplayContextFactories()) {
050    
051                            dlEditFileEntryDisplayContext =
052                                    dlDisplayContextFactory.getDLEditFileEntryDisplayContext(
053                                            dlEditFileEntryDisplayContext, request, response,
054                                            dlFileEntryType);
055                    }
056    
057                    return dlEditFileEntryDisplayContext;
058            }
059    
060            @Override
061            public DLEditFileEntryDisplayContext getDLEditFileEntryDisplayContext(
062                    HttpServletRequest request, HttpServletResponse response,
063                    FileEntry fileEntry) {
064    
065                    DLEditFileEntryDisplayContext dlEditFileEntryDisplayContext =
066                            new DefaultDLEditFileEntryDisplayContext(
067                                    request, response, fileEntry);
068    
069                    for (DLDisplayContextFactory dlDisplayContextFactory :
070                                    getDisplayContextFactories()) {
071    
072                            dlEditFileEntryDisplayContext =
073                                    dlDisplayContextFactory.getDLEditFileEntryDisplayContext(
074                                            dlEditFileEntryDisplayContext, request, response,
075                                            fileEntry);
076                    }
077    
078                    return dlEditFileEntryDisplayContext;
079            }
080    
081            @Override
082            public DLViewFileVersionDisplayContext
083                    getDLViewFileVersionDisplayContext(
084                            HttpServletRequest request, HttpServletResponse response,
085                            FileShortcut fileShortcut) {
086    
087                    try {
088                            DLViewFileVersionDisplayContext dlViewFileVersionDisplayContext =
089                                    new DefaultDLViewFileVersionDisplayContext(
090                                            request, response, fileShortcut);
091    
092                            if (fileShortcut == null) {
093                                    return dlViewFileVersionDisplayContext;
094                            }
095    
096                            for (DLDisplayContextFactory dlDisplayContextFactory :
097                                            getDisplayContextFactories()) {
098    
099                                    dlViewFileVersionDisplayContext =
100                                            dlDisplayContextFactory.getDLViewFileVersionDisplayContext(
101                                                    dlViewFileVersionDisplayContext, request, response,
102                                                    fileShortcut);
103                            }
104    
105                            return dlViewFileVersionDisplayContext;
106                    }
107                    catch (PortalException pe) {
108                            throw new SystemException(pe);
109                    }
110            }
111    
112            @Override
113            public DLViewFileVersionDisplayContext
114                    getDLViewFileVersionDisplayContext(
115                            HttpServletRequest request, HttpServletResponse response,
116                            FileVersion fileVersion) {
117    
118                    DLViewFileVersionDisplayContext dlViewFileVersionDisplayContext =
119                            new DefaultDLViewFileVersionDisplayContext(
120                                    request, response, fileVersion);
121    
122                    if (fileVersion == null) {
123                            return dlViewFileVersionDisplayContext;
124                    }
125    
126                    for (DLDisplayContextFactory dlDisplayContextFactory :
127                                    getDisplayContextFactories()) {
128    
129                            dlViewFileVersionDisplayContext =
130                                    dlDisplayContextFactory.getDLViewFileVersionDisplayContext(
131                                            dlViewFileVersionDisplayContext, request, response,
132                                            fileVersion);
133                    }
134    
135                    return dlViewFileVersionDisplayContext;
136            }
137    
138    }