Example usage for com.liferay.portal.kernel.portlet Router addRoute

List of usage examples for com.liferay.portal.kernel.portlet Router addRoute

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.portlet Router addRoute.

Prototype

public Route addRoute(String pattern);

Source Link

Document

Generates a new route from its pattern string.

Usage

From source file:com.liferay.portlet.PortletBagFactory.java

License:Open Source License

protected Router newFriendlyURLRouter(Portlet portlet) throws Exception {
    if (Validator.isNull(portlet.getFriendlyURLRoutes())) {
        return null;
    }/*from w  w w  .jav a2 s.co m*/

    Router router = new RouterImpl();

    String xml = getContent(portlet.getFriendlyURLRoutes());

    Document document = SAXReaderUtil.read(xml, true);

    Element rootElement = document.getRootElement();

    for (Element routeElement : rootElement.elements("route")) {
        String pattern = routeElement.elementText("pattern");

        Route route = router.addRoute(pattern);

        for (Element generatedParameterElement : routeElement.elements("generated-parameter")) {

            String name = generatedParameterElement.attributeValue("name");
            String value = generatedParameterElement.getText();

            route.addGeneratedParameter(name, value);
        }

        for (Element ignoredParameterElement : routeElement.elements("ignored-parameter")) {

            String name = ignoredParameterElement.attributeValue("name");

            route.addIgnoredParameter(name);
        }

        for (Element implicitParameterElement : routeElement.elements("implicit-parameter")) {

            String name = implicitParameterElement.attributeValue("name");
            String value = implicitParameterElement.getText();

            route.addImplicitParameter(name, value);
        }

        for (Element overriddenParameterElement : routeElement.elements("overridden-parameter")) {

            String name = overriddenParameterElement.attributeValue("name");
            String value = overriddenParameterElement.getText();

            route.addOverriddenParameter(name, value);
        }
    }

    return router;
}