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