001
014
015 package com.liferay.portlet.layoutconfiguration.util.xml;
016
017 import com.liferay.portal.kernel.util.Validator;
018 import com.liferay.portal.kernel.xml.Document;
019 import com.liferay.portal.kernel.xml.Element;
020 import com.liferay.portal.kernel.xml.SAXReaderUtil;
021 import com.liferay.portal.model.PortletConstants;
022 import com.liferay.portlet.layoutconfiguration.util.RuntimePortletUtil;
023
024 import javax.portlet.RenderRequest;
025 import javax.portlet.RenderResponse;
026
027 import javax.servlet.ServletContext;
028 import javax.servlet.http.HttpServletRequest;
029 import javax.servlet.http.HttpServletResponse;
030
031
034 public class PortletLogic extends RuntimeLogic {
035
036 public static final String CLOSE_1_TAG = "</runtime-portlet>";
037
038 public static final String CLOSE_2_TAG = "/>";
039
040 public static final String OPEN_TAG = "<runtime-portlet";
041
042 public PortletLogic(
043 ServletContext servletContext, HttpServletRequest request,
044 HttpServletResponse response, RenderRequest renderRequest,
045 RenderResponse renderResponse) {
046
047 _servletContext = servletContext;
048 _request = request;
049 _response = response;
050 _renderRequest = renderRequest;
051 _renderResponse = renderResponse;
052 }
053
054 @Override
055 public String getClose1Tag() {
056 return CLOSE_1_TAG;
057 }
058
059 @Override
060 public String getOpenTag() {
061 return OPEN_TAG;
062 }
063
064 @Override
065 public String processXML(String xml) throws Exception {
066 Document doc = SAXReaderUtil.read(xml);
067
068 Element root = doc.getRootElement();
069
070 String rootPortletId = root.attributeValue("name");
071 String instanceId = root.attributeValue("instance");
072 String queryString = root.attributeValue("queryString");
073
074 String portletId = rootPortletId;
075
076 if (Validator.isNotNull(instanceId)) {
077 portletId += PortletConstants.INSTANCE_SEPARATOR + instanceId;
078 }
079
080 return RuntimePortletUtil.processPortlet(
081 _servletContext, _request, _response, _renderRequest,
082 _renderResponse, portletId, queryString, false);
083 }
084
085 private RenderRequest _renderRequest;
086 private RenderResponse _renderResponse;
087 private HttpServletRequest _request;
088 private HttpServletResponse _response;
089 private ServletContext _servletContext;
090
091 }