001
014
015 package com.liferay.portlet.documentlibrary.context;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.exception.SystemException;
019 import com.liferay.portal.kernel.repository.model.FileVersion;
020 import com.liferay.registry.Registry;
021 import com.liferay.registry.RegistryUtil;
022
023 import java.util.Collection;
024
025 import javax.servlet.http.HttpServletRequest;
026 import javax.servlet.http.HttpServletResponse;
027
028
031 public class DLViewFileVersionDisplayContextUtil {
032
033 public static DLViewFileVersionDisplayContext
034 getDLFileVersionActionsDisplayContext(
035 HttpServletRequest request, HttpServletResponse response,
036 FileVersion fileVersion)
037 throws PortalException {
038
039 DLViewFileVersionDisplayContext dlViewFileVersionDisplayContext =
040 new DefaultDLViewFileVersionDisplayContext(
041 request, response, fileVersion);
042
043 if (fileVersion != null) {
044 dlViewFileVersionDisplayContext =
045 _chainDLFileVersionActionsDisplayContexts(
046 request, response, fileVersion,
047 dlViewFileVersionDisplayContext);
048 }
049
050 return dlViewFileVersionDisplayContext;
051 }
052
053 private static DLViewFileVersionDisplayContext
054 _chainDLFileVersionActionsDisplayContexts(
055 HttpServletRequest request, HttpServletResponse response,
056 FileVersion fileVersion,
057 DLViewFileVersionDisplayContext dlViewFileVersionDisplayContext) {
058
059 Collection<DLViewFileVersionDisplayContextFactory>
060 dlFileVersionActionsDisplayContextFactories =
061 _getDLFileVersionActionsDisplayContextFactories();
062
063 for (DLViewFileVersionDisplayContextFactory
064 dlViewFileVersionDisplayContextFactory :
065 dlFileVersionActionsDisplayContextFactories) {
066
067 dlViewFileVersionDisplayContext =
068 dlViewFileVersionDisplayContextFactory.
069 getDLFileVersionActionsDisplayContext(
070 dlViewFileVersionDisplayContext, request, response,
071 fileVersion);
072 }
073
074 return dlViewFileVersionDisplayContext;
075 }
076
077 private static Collection<DLViewFileVersionDisplayContextFactory>
078 _getDLFileVersionActionsDisplayContextFactories() {
079
080 try {
081 Registry registry = RegistryUtil.getRegistry();
082
083 return registry.getServices(
084 DLViewFileVersionDisplayContextFactory.class, null);
085 }
086 catch (Exception e) {
087 throw new SystemException(e);
088 }
089 }
090
091 }