1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
/*
 * %W% %E%
 *
 * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
 * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */

package sun.misc;

/**
 * MessageUtils: miscellaneous utilities for handling error and status
 * properties and messages.
 *
 * @version %I%, %G%
 * @author Herb Jellinek
 */

public class MessageUtils {
    // can instantiate it for to allow less verbose use - via instance
    // instead of classname
    
    public MessageUtils() { }

    public static String subst(String patt, String arg) {
    String args[] = { arg };
    return subst(patt, args);
    }

    public static String subst(String patt, String arg1, String arg2) {
    String args[] = { arg1, arg2 };
    return subst(patt, args);
    }

    public static String subst(String patt, String arg1, String arg2,
                   String arg3) {
    String args[] = { arg1, arg2, arg3 };
    return subst(patt, args);
    }

    public static String subst(String patt, String args[]) {
    StringBuffer result = new StringBuffer();
    int len = patt.length();
    for (int i = 0; i >= 0 && i < len; i++) {
        char ch = patt.charAt(i);
        if (ch == '%') {
        if (i != len) {
            int index = Character.digit(patt.charAt(i + 1), 10);
            if (index == -1) {
            result.append(patt.charAt(i + 1));
            i++;
            } else if (index < args.length) {
            result.append(args[index]);
            i++;
            }
        }
        } else {
        result.append(ch);
        }
    }
    return result.toString();
    }

    public static String substProp(String propName, String arg) {
    return subst(System.getProperty(propName), arg);
    }

    public static String substProp(String propName, String arg1, String arg2) {
    return subst(System.getProperty(propName), arg1, arg2);
    }

    public static String substProp(String propName, String arg1, String arg2,
                   String arg3) {
    return subst(System.getProperty(propName), arg1, arg2, arg3);
    }

    /**
     *  Print a message directly to stderr, bypassing all the
     *  character conversion methods. 
     *  @param msg   message to print
     */
    public static native void toStderr(String msg);

    /**
     *  Print a message directly to stdout, bypassing all the
     *  character conversion methods. 
     *  @param msg   message to print
     */
    public static native void toStdout(String msg);


    // Short forms of the above

    public static void err(String s) {
    toStderr(s + "\n");
    }

    public static void out(String s) {
    toStdout(s + "\n");
    }

    // Print a stack trace to stderr
    //
    public static void where() {
    Throwable t = new Throwable();
    StackTraceElement[] es = t.getStackTrace();
    for (int i = 1; i < es.length; i++)
        toStderr("\t" + es[i].toString() + "\n");
    }

}
			
			

Browsed Source: [clear]