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

org.javers.common.string.ToStringBuilder Maven / Gradle / Ivy

There is a newer version: 7.6.1
Show newest version
package org.javers.common.string;

import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.*;

import static org.javers.common.validation.Validate.argumentCheck;
import static org.javers.common.validation.Validate.argumentIsNotNull;

/**
 * @author bartosz walacik
 */
public class ToStringBuilder {
    public static String smartToString(Object value) {
        if (value == null){
            return "";
        }

        if (value instanceof String) {
            return (String)value;
        }

        return value.toString();
    }

    public static String typeName(Type type){
        if (type instanceof ParameterizedType) {
            ParameterizedType parameterizedType = (ParameterizedType)type;
            parameterizedType.getActualTypeArguments();

            StringBuilder out = new StringBuilder();
            out.append(typeName(parameterizedType.getRawType()) + "<");
            Type[] args  = ((ParameterizedType)type).getActualTypeArguments();

            out.append( typeName(args[0]));
            for (int i=1;i");
            return out.toString();
        } else if (type instanceof Class) {
            return ((Class)type).getSimpleName();
        } else {
            return type.toString();
        }
    }

    public static String setToString(Set set){
        return listToString(new ArrayList(set));
    }

    public static String listToString(List list){
        return "[" + join(list) + "]";
    }

    public static String join(Collection list){
        if (list == null || list.size() == 0){
            return "";
        }

        StringBuilder out = new StringBuilder();

        boolean first = true;
        for (Object it : list) {
            if (!first) {
                out.append( ",");
            }
            out.append(format(it) );
            first = false;
        }

        return out.toString();
    }

    public static String toStringSimple(Object... fieldsMap){
        return toString(", ", fieldsMap);
    }

    private static String toString(String sep, Object... fieldsMap){
        argumentCheck(fieldsMap.length % 2 == 0, "map expected");

        StringBuilder out = new StringBuilder();
        boolean first = true;
        for (int i=0; i len) {
            return string.substring(0, len - 3) + "...";
        }
        String result = string;
        while (result.length() < len) {
            result += " ";
        }
        return result;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy