All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.larmic.butterfaces.component.renderkit.html_basic.action.ParameterAppender Maven / Gradle / Ivy

The newest version!
/*
 * Copyright Lars Michaelis and Stephan Zerhusen 2016.
 * Distributed under the MIT License.
 * (See accompanying file README.md file or copy at http://opensource.org/licenses/MIT)
 */
package de.larmic.butterfaces.component.renderkit.html_basic.action;

import de.larmic.butterfaces.util.StringUtils;

/**
 * @author Lars Michaelis
 */
public class ParameterAppender {

    public static void appendProperty(StringBuilder builder, String name, Object value) {
        if (StringUtils.isEmpty(name)) {
            throw new IllegalArgumentException();
        }

        if (builder.length() > 0) {
            final char lastChar = builder.charAt(builder.length() - 1);
            if (lastChar != ',' && lastChar != '{') {
                builder.append(',');
            }
        }

        appendQuotedValue(builder, name);

        builder.append(":");

        if (value != null) {
            appendQuotedValue(builder, value.toString());
        } else {
            builder.append("''");
        }
    }

    private static void appendQuotedValue(StringBuilder builder, String value) {
        builder.append("'");

        final int length = value.length();

        for (int i = 0; i < length; i++) {
            final char c = value.charAt(i);

            if (c == '\'' || c == '\\') {
                builder.append('\\');
            }

            builder.append(c);
        }

        builder.append("'");
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy