1/*
2 * Copyright (c) 1996, 2014, 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
26package sun.applet;
27
28import java.util.ResourceBundle;
29import java.util.MissingResourceException;
30import java.text.MessageFormat;
31
32/**
33 * An hanlder of localized messages.
34 *
35 * @author      Koji Uno
36 */
37class AppletMessageHandler {
38    private static ResourceBundle rb;
39    private String baseKey = null;
40
41    static {
42        try {
43            rb = ResourceBundle.getBundle
44                ("sun.applet.resources.MsgAppletViewer");
45        } catch (MissingResourceException e) {
46            System.out.println(e.getMessage());
47            System.exit(1);
48        }
49    }
50
51    AppletMessageHandler(String baseKey) {
52        this.baseKey = baseKey;
53    }
54
55    String getMessage(String key) {
56        return rb.getString(getQualifiedKey(key));
57    }
58
59    String getMessage(String key, Object arg){
60        String basemsgfmt = rb.getString(getQualifiedKey(key));
61        MessageFormat msgfmt = new MessageFormat(basemsgfmt);
62        Object msgobj[] = new Object[1];
63        if (arg == null) {
64            arg = "null"; // mimic java.io.PrintStream.print(String)
65        }
66        msgobj[0] = arg;
67        return msgfmt.format(msgobj);
68    }
69
70    String getMessage(String key, Object arg1, Object arg2) {
71        String basemsgfmt = rb.getString(getQualifiedKey(key));
72        MessageFormat msgfmt = new MessageFormat(basemsgfmt);
73        Object msgobj[] = new Object[2];
74        if (arg1 == null) {
75            arg1 = "null";
76        }
77        if (arg2 == null) {
78            arg2 = "null";
79        }
80        msgobj[0] = arg1;
81        msgobj[1] = arg2;
82        return msgfmt.format(msgobj);
83    }
84
85    String getMessage(String key, Object arg1, Object arg2, Object arg3) {
86        String basemsgfmt = rb.getString(getQualifiedKey(key));
87        MessageFormat msgfmt = new MessageFormat(basemsgfmt);
88        Object msgobj[] = new Object[3];
89        if (arg1 == null) {
90            arg1 = "null";
91        }
92        if (arg2 == null) {
93            arg2 = "null";
94        }
95        if (arg3 == null) {
96            arg3 = "null";
97        }
98        msgobj[0] = arg1;
99        msgobj[1] = arg2;
100        msgobj[2] = arg3;
101        return msgfmt.format(msgobj);
102    }
103
104    String getMessage(String key, Object arg[]) {
105        String basemsgfmt = rb.getString(getQualifiedKey(key));
106        MessageFormat msgfmt = new MessageFormat(basemsgfmt);
107        return msgfmt.format(arg);
108    }
109
110    String getQualifiedKey(String subKey) {
111        return baseKey + "." + subKey;
112    }
113}
114