Example usage for com.liferay.portal.kernel.util StringParser parse

List of usage examples for com.liferay.portal.kernel.util StringParser parse

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.util StringParser parse.

Prototype

public boolean parse(String s, Map<String, String> parameters) 

Source Link

Document

Populates the parameter map with values parsed from the string if this parser matches.

Usage

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

License:Open Source License

public String parametersToUrl(Map<String, String> parameters) {
    InheritableMap<String, String> allParameters = new InheritableMap<String, String>();

    allParameters.setParentMap(parameters);

    // The order is important because virtual parameters may sometimes be
    // checked by implicit parameters

    for (Map.Entry<String, StringParser> entry : _generatedParameters.entrySet()) {

        String name = entry.getKey();
        StringParser stringParser = entry.getValue();

        String value = MapUtil.getString(allParameters, name);

        if (!stringParser.parse(value, allParameters)) {
            return null;
        }//ww w  .ja va 2s .co m
    }

    for (Map.Entry<String, String> entry : _implicitParameters.entrySet()) {
        String name = entry.getKey();
        String value = entry.getValue();

        if (!value.equals(MapUtil.getString(allParameters, name))) {
            return null;
        }
    }

    String url = _stringParser.build(allParameters);

    if (Validator.isNull(url)) {
        return null;
    }

    for (String name : _generatedParameters.keySet()) {

        // Virtual parameters will never be placed in the query string,
        // so parameters is modified directly instead of allParameters

        parameters.remove(name);
    }

    for (String name : _implicitParameters.keySet()) {
        parameters.remove(name);
    }

    for (String name : _ignoredParameters) {
        parameters.remove(name);
    }

    return url;
}