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 } | 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)} which calls the static method in this 41 * class with the name of the invoking class and returns a 42 * {@code String}. 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 } |