001
014
015 package com.liferay.portlet.wiki.engines.mediawiki.matchers;
016
017 import com.liferay.portal.kernel.portlet.LiferayPortletURL;
018 import com.liferay.portal.kernel.util.CallbackMatcher;
019 import com.liferay.portal.kernel.util.CharPool;
020
021 import java.util.regex.MatchResult;
022
023 import javax.portlet.PortletURL;
024
025
029 public class PortletURLMatcher extends CallbackMatcher {
030
031 public PortletURLMatcher(PortletURL portletURL) {
032 _portletURL = portletURL;
033
034 LiferayPortletURL liferayPortletURL = (LiferayPortletURL)portletURL;
035
036 liferayPortletURL.setParameter("title", _TITLE_PLACEHOLDER, false);
037 }
038
039 public String replaceMatches(CharSequence charSequence) {
040 return replaceMatches(charSequence, _callBack);
041 }
042
043 private static final String _TITLE_PLACEHOLDER = "__TITLE_PLACEHOLDER__";
044
045 private Callback _callBack = new Callback() {
046
047 @Override
048 public String foundMatch(MatchResult matchResult) {
049 String portletURLString = _portletURL.toString();
050
051 String title = matchResult.group(1);
052
053 title = title.replace(CharPool.UNDERLINE, CharPool.PLUS);
054
055 String url = portletURLString.replace(_TITLE_PLACEHOLDER, title);
056
057 return "<a href=\"" + url + "\"";
058 }
059
060 };
061
062 private PortletURL _portletURL;
063
064 }