History

My first initial commit with all of mine experimental changes.

Dmitry Kabak (userdima committed 13 years ago

Commit d37b88d1 parent 3f5b46618352 files · +2598093 −-8690Browse files

Showing the changes to java/pkg/sun/misc/MessageUtils.java (1 of 18352 files). Show all

Unified · Split

java/pkg/sun/misc/MessageUtils.java+127−0
@@ -0,0 +1,127 @@
1+/*
2+ * Copyright (c) 1995, 2000, Oracle and/or its affiliates. All rights reserved.
3+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4+ *
5+ * This code is free software; you can redistribute it and/or modify it
6+ * under the terms of the GNU General Public License version 2 only, as
7+ * published by the Free Software Foundation. Oracle designates this
8+ * particular file as subject to the "Classpath" exception as provided
9+ * by Oracle in the LICENSE file that accompanied this code.
10+ *
11+ * This code is distributed in the hope that it will be useful, but WITHOUT
12+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14+ * version 2 for more details (a copy is included in the LICENSE file that
15+ * accompanied this code).
16+ *
17+ * You should have received a copy of the GNU General Public License version
18+ * 2 along with this work; if not, write to the Free Software Foundation,
19+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20+ *
21+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22+ * or visit www.oracle.com if you need additional information or have any
23+ * questions.
24+ */
25+
26+package sun.misc;
27+
28+/**
29+ * MessageUtils: miscellaneous utilities for handling error and status
30+ * properties and messages.
31+ *
32+ * @author Herb Jellinek
33+ */
34+
35+public class MessageUtils {
36+ // can instantiate it for to allow less verbose use - via instance
37+ // instead of classname
38+
39+ public MessageUtils() { }
40+
41+ public static String subst(String patt, String arg) {
42+ String args[] = { arg };
43+ return subst(patt, args);
44+ }
45+
46+ public static String subst(String patt, String arg1, String arg2) {
47+ String args[] = { arg1, arg2 };
48+ return subst(patt, args);
49+ }
50+
51+ public static String subst(String patt, String arg1, String arg2,
52+ String arg3) {
53+ String args[] = { arg1, arg2, arg3 };
54+ return subst(patt, args);
55+ }
56+
57+ public static String subst(String patt, String args[]) {
58+ StringBuffer result = new StringBuffer();
59+ int len = patt.length();
60+ for (int i = 0; i >= 0 && i < len; i++) {
61+ char ch = patt.charAt(i);
62+ if (ch == '%') {
63+ if (i != len) {
64+ int index = Character.digit(patt.charAt(i + 1), 10);
65+ if (index == -1) {
66+ result.append(patt.charAt(i + 1));
67+ i++;
68+ } else if (index < args.length) {
69+ result.append(args[index]);
70+ i++;
71+ }
72+ }
73+ } else {
74+ result.append(ch);
75+ }
76+ }
77+ return result.toString();
78+ }
79+
80+ public static String substProp(String propName, String arg) {
81+ return subst(System.getProperty(propName), arg);
82+ }
83+
84+ public static String substProp(String propName, String arg1, String arg2) {
85+ return subst(System.getProperty(propName), arg1, arg2);
86+ }
87+
88+ public static String substProp(String propName, String arg1, String arg2,
89+ String arg3) {
90+ return subst(System.getProperty(propName), arg1, arg2, arg3);
91+ }
92+
93+ /**
94+ * Print a message directly to stderr, bypassing all the
95+ * character conversion methods.
96+ * @param msg message to print
97+ */
98+ public static native void toStderr(String msg);
99+
100+ /**
101+ * Print a message directly to stdout, bypassing all the
102+ * character conversion methods.
103+ * @param msg message to print
104+ */
105+ public static native void toStdout(String msg);
106+
107+
108+ // Short forms of the above
109+
110+ public static void err(String s) {
111+ toStderr(s + "\n");
112+ }
113+
114+ public static void out(String s) {
115+ toStdout(s + "\n");
116+ }
117+
118+ // Print a stack trace to stderr
119+ //
120+ public static void where() {
121+ Throwable t = new Throwable();
122+ StackTraceElement[] es = t.getStackTrace();
123+ for (int i = 1; i < es.length; i++)
124+ toStderr("\t" + es[i].toString() + "\n");
125+ }
126+
127+}