1
22
23 package com.liferay.portlet.layoutconfiguration.util.xml;
24
25 import com.liferay.portal.kernel.portlet.LiferayPortletURL;
26 import com.liferay.portal.kernel.xml.Document;
27 import com.liferay.portal.kernel.xml.Element;
28 import com.liferay.portal.kernel.xml.SAXReaderUtil;
29 import com.liferay.portal.util.PortalUtil;
30 import com.liferay.portlet.RenderResponseImpl;
31
32 import javax.portlet.PortletRequest;
33 import javax.portlet.RenderResponse;
34
35
40 public class ActionURLLogic extends RuntimeLogic {
41
42 public static final String OPEN_TAG = "<runtime-action-url";
43
44 public static final String CLOSE_1_TAG = "</runtime-action-url>";
45
46 public static final String CLOSE_2_TAG = "/>";
47
48 public ActionURLLogic(RenderResponse renderResponse) {
49 _renderResponseImpl = (RenderResponseImpl)renderResponse;
50 }
51
52 public String getOpenTag() {
53 return OPEN_TAG;
54 }
55
56 public String getClose1Tag() {
57 return CLOSE_1_TAG;
58 }
59
60 public void processXML(StringBuilder sb, String xml) throws Exception {
61 Document doc = SAXReaderUtil.read(xml);
62
63 Element root = doc.getRootElement();
64
65 LiferayPortletURL portletURL = _renderResponseImpl.createPortletURLImpl(
66 getLifecycle());
67
68 String portletId = root.attributeValue("portlet-name");
69
70 if (portletId != null) {
71 portletId = PortalUtil.getJsSafePortletId(portletId);
72
73 portletURL.setPortletId(portletId);
74 }
75
76 for (int i = 1;; i++) {
77 String paramName = root.attributeValue("param-name-" + i);
78 String paramValue = root.attributeValue("param-value-" + i);
79
80 if ((paramName == null) || (paramValue == null)) {
81 break;
82 }
83
84 portletURL.setParameter(paramName, paramValue);
85 }
86
87 sb.append(portletURL.toString());
88 }
89
90 public String getLifecycle() {
91 return _lifecycle;
92 }
93
94 private RenderResponseImpl _renderResponseImpl;
95 private String _lifecycle = PortletRequest.ACTION_PHASE;
96
97 }