001
014
015 package com.liferay.portal.kernel.dao.search;
016
017 import com.liferay.portal.kernel.bean.BeanPropertiesUtil;
018 import com.liferay.portal.kernel.servlet.DirectServletContext;
019 import com.liferay.portal.kernel.servlet.PipingServletResponse;
020 import com.liferay.portal.kernel.util.GetterUtil;
021 import com.liferay.portal.kernel.util.PropsKeys;
022 import com.liferay.portal.kernel.util.PropsUtil;
023 import com.liferay.portal.kernel.util.WebKeys;
024
025 import javax.servlet.RequestDispatcher;
026 import javax.servlet.ServletContext;
027 import javax.servlet.http.HttpServletRequest;
028 import javax.servlet.http.HttpServletResponse;
029 import javax.servlet.jsp.PageContext;
030
031
034 public class JSPSearchEntry extends SearchEntry {
035
036 @Override
037 public Object clone() {
038 JSPSearchEntry jspSearchEntry = new JSPSearchEntry();
039
040 BeanPropertiesUtil.copyProperties(this, jspSearchEntry);
041
042 return jspSearchEntry;
043 }
044
045 public String getPath() {
046 return _path;
047 }
048
049 public HttpServletRequest getRequest() {
050 return _request;
051 }
052
053 public HttpServletResponse getResponse() {
054 return _response;
055 }
056
057 public ServletContext getServletContext() {
058 return _servletContext;
059 }
060
061 @Override
062 public void print(PageContext pageContext) throws Exception {
063 if (_servletContext != null) {
064 RequestDispatcher requestDispatcher =
065 _servletContext.getRequestDispatcher(_path);
066
067 _request.setAttribute(WebKeys.SERVLET_PATH, _path);
068
069 requestDispatcher.include(
070 _request, new PipingServletResponse(pageContext));
071 }
072 else {
073 pageContext.include(_path);
074 }
075 }
076
077 public void setPath(String path) {
078 _path = path;
079 }
080
081 public void setRequest(HttpServletRequest request) {
082 _request = request;
083 }
084
085 public void setResponse(HttpServletResponse response) {
086 _response = response;
087 }
088
089 public void setServletContext(ServletContext servletContext) {
090 if (_DIRECT_SERVLET_CONTEXT_ENABLED) {
091 _servletContext = new DirectServletContext(servletContext);
092 }
093 else {
094 _servletContext = servletContext;
095 }
096 }
097
098 private static final boolean _DIRECT_SERVLET_CONTEXT_ENABLED =
099 GetterUtil.getBoolean(
100 PropsUtil.get(PropsKeys.DIRECT_SERVLET_CONTEXT_ENABLED));
101
102 private String _path;
103 private HttpServletRequest _request;
104 private HttpServletResponse _response;
105 private ServletContext _servletContext;
106
107 }