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

kilim.analysis.Utils Maven / Gradle / Ivy

Go to download

Coroutines, continuations, fibers, actors and message passing for the JVM

There is a newer version: 2.0.2-jdk7
Show newest version
/* Copyright (c) 2006, Sriram Srinivasan
 *
 * You may distribute this software under the terms of the license 
 * specified in the file "License"
 */

package kilim.analysis;

/**
 * Simple string utils for pretty printing support
 *
 */
public class Utils {
    public static String indentStr = "";
    public static String spaces    = "                                        ";

    public static void indentWith(String s) {
        indentStr = indentStr + s;
    }

    public static void indent(int numSpaces) {
        indentWith(spaces.substring(0, numSpaces));
    }

    public static void dedent(int numSpaces) {
        indentStr = indentStr.substring(0, indentStr.length() - numSpaces);
    }

    public static String format(String s) {
        if (indentStr.length() == 0)
            return s;
        int i = s.indexOf('\n'); // i is always the index of newline
        if (i >= 0) {
            StringBuffer sb = new StringBuffer(100);
            sb.append(indentStr); // leading indent
            int prev = 0; // prev value of i in loop
            do {
                // copy from prev to i (including \n)
                sb.append(s, prev, i + 1);
                // add indentation wherever \n occurs
                sb.append(indentStr);
                prev = i + 1;
                if (prev >= s.length())
                    break;
                i = s.indexOf('\n', prev);
            } while (i != -1);
            // copy left over chars from the last segment
            sb.append(s, prev, s.length());
            return sb.toString();
        } else {
            return indentStr + s;
        }
    }

    public static void resetIndentation() {
        indentStr = "";
    }

    public static void p(String s) {
        System.out.print(format(s));
    }

    public static void pn(String s) {
        System.out.println(format(s));
    }

    public static void pn(int i) {
        System.out.println(format("" + i));
    }

    public static void pn() {
        System.out.println();
    }

    public static void pn(Object o) {
        pn((o == null) ? "null" : o.toString());
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy