/** * Copyright (c) 2009-2014 Câmara dos Deputados. Todos os direitos reservados. * * e-Democracia é um software livre; você pode redistribuí-lo e/ou modificá-lo dentro * dos termos da Licença Pública Geral Menor GNU como publicada pela Fundação do * Software Livre (FSF); na versão 2.1 da Licença, ou (na sua opinião) qualquer versão. * * Este programa é distribuído na esperança de que possa ser útil, mas SEM NENHUMA GARANTIA; * sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. * Veja a Licença Pública Geral Menor GNU para maiores detalhes. */ package br.gov.camara.edemocracia.portlets.guiadiscussao.util; import org.apache.commons.lang3.StringUtils; import com.liferay.faces.portal.context.LiferayFacesContext; import com.liferay.portal.kernel.exception.PortalException; import com.liferay.portal.kernel.exception.SystemException; import com.liferay.portal.model.Layout; import com.liferay.portal.service.LayoutLocalServiceUtil; import com.liferay.portal.util.PortalUtil; public final class URLUtil { private URLUtil(){ } /** * Este método faz a construção dos links cadastrados no guia * * @param url * @param urlExterna * @return */ public static String construirURL(String url, boolean urlExterna){ if(StringUtils.isBlank(url)) return "#"; LiferayFacesContext liferayFacesContext = LiferayFacesContext .getInstance(); if (urlExterna) { if (!url.startsWith("http://") && !url.startsWith("https://")) { if (!url.startsWith("/")) url = "/" + url; return liferayFacesContext.getPortalURL() + url; } else { return url; } } else { try { Layout layout = null; try { long plid = Long.parseLong(url); layout = LayoutLocalServiceUtil.getLayout(plid); if (layout.getGroupId() != liferayFacesContext .getHostGroupId()) layout = null; } catch (NumberFormatException e) { // Ignore } if (layout == null) return "#"; return PortalUtil.getLayoutFullURL(layout, liferayFacesContext.getThemeDisplay()); } catch (PortalException e) { return "#"; } catch (SystemException e) { throw new RuntimeException(e); } } } }