Java Map Join joinOnSemicolon(Map toJoin)

Here you can find the source of joinOnSemicolon(Map toJoin)

Description

Convert properties to a string representation.

License

Apache License

Parameter

Parameter Description
toJoin A list of properties to convert

Return

the properties as a string, pipe delimited

Declaration

public static String joinOnSemicolon(Map<String, String> toJoin) 

Method Source Code

//package com.java2s;
/*// w w w . j a va2 s  . c om
 * ========================================================================
 *
 * Codehaus CARGO, copyright 2004-2011 Vincent Massol, 2012-2018 Ali Tokmen.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * ========================================================================
 */

import java.util.Iterator;
import java.util.Map;

public class Main {
    /**
     * The default delimiter that separates the properties in a string.
     */
    private static final char SEMICOLON = ';';

    /**
     * Convert properties to a string representation.
     * 
     * @param toJoin A list of properties to convert
     * @return the properties as a string, pipe delimited
     */
    public static String joinOnSemicolon(Map<String, String> toJoin) {
        return joinOnDelimiter(toJoin, SEMICOLON);
    }

    /**
     * Convert properties to a string representation, based on the specified delimiter.
     * 
     * @param toJoin object to serialize as a string
     * @param delimiter how to separate entries from each other
     * @return the properties as a string, delimited by the above
     */
    public static String joinOnDelimiter(Map<String, String> toJoin, char delimiter) {
        StringBuilder buf = new StringBuilder();

        for (Iterator<Map.Entry<String, String>> it = toJoin.entrySet().iterator(); it.hasNext();) {
            Map.Entry<String, String> e = it.next();
            String key = e.getKey();
            String value = e.getValue();
            if (value.indexOf(delimiter) != -1) {
                // CARGO-829: Delimiter in property values are escaped using the \ character.
                value = value.replace(String.valueOf(delimiter), "\\" + delimiter);
            }
            buf.append(key);
            buf.append("=");
            buf.append(value);
            if (it.hasNext()) {
                buf.append(delimiter);
            }
        }

        return buf.toString();
    }
}

Related

  1. joinMap(Map map)
  2. joinMapToString(Map map, String sSeparator, String sMidSeparator)
  3. joinMapUnmodifiable(Map first, Map second)
  4. joinMapValue(Map map, char connector)
  5. joinOnDelimiter(Map toJoin, char delimiter)
  6. joinParameters(Map params)