1 /* 2 * Copyright (c) 2003, 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 com.sun.imageio.plugins.common; 27 28 import java.io.InputStream; 29 import java.util.PropertyResourceBundle; 30 import java.net.URL; 31 32 /** 33 * Class to simplify use of internationalization message strings. 34 * Property files are constructed in terms of content as for JAI with 35 * one "key=value" pair per line. All such files however have the same 36 * name "properties". The resource extractor resolves the extraction of 37 * the file from the jar as the package name is included automatically. 38 * 39 * <p>Extenders need only provide a static method 40 * <code>getString(String)</code> which calls the static method in this 41 * class with the name of the invoking class and returns a 42 * <code>String</code>. 43 */ 44 public class I18NImpl { 45 /** 46 * Returns the message string with the specified key from the 47 * "properties" file in the package containing the class with 48 * the specified name. 49 */ 50 protected static final String getString(String className, String resource_name, String key) { 51 PropertyResourceBundle bundle = null; 52 try { 53 InputStream stream = 54 Class.forName(className).getResourceAsStream(resource_name); 55 bundle = new PropertyResourceBundle(stream); 56 } catch(Throwable e) { 57 throw new RuntimeException(e); // Chain the exception. 58 } 59 60 return (String)bundle.handleGetObject(key); 61 } 62 } --- EOF ---