/*
* @(#)PropertyResourceBundle.java 1.27 04/05/05
*
* Copyright 2004 Sun Microsystems, Inc. All rights reserved.
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
/*
* (C) Copyright Taligent, Inc. 1996, 1997 - All Rights Reserved
* (C) Copyright IBM Corp. 1996 - 1998 - All Rights Reserved
*
* The original version of this source code and documentation
* is copyrighted and owned by Taligent, Inc., a wholly-owned
* subsidiary of IBM. These materials are provided under terms
* of a License Agreement between Taligent and Sun. This technology
* is protected by multiple US and International patents.
*
* This notice and attribution to Taligent may not be removed.
* Taligent is a registered trademark of Taligent, Inc.
*/
package java.util;
import java.io.InputStream;
import java.io.IOException;
/**
* PropertyResourceBundle is a concrete subclass of
* ResourceBundle that manages resources for a locale
* using a set of static strings from a property file. See
* {@link ResourceBundle ResourceBundle} for more information about resource
* bundles. See {@link Properties Properties} for more information
* about properties files, in particular the
* information on character encodings.
*
*
* Unlike other types of resource bundle, you don't subclass
* PropertyResourceBundle. Instead, you supply properties
* files containing the resource data. ResourceBundle.getBundle
* will automatically look for the appropriate properties file and create a
* PropertyResourceBundle that refers to it. See
* {@link ResourceBundle#getBundle(java.lang.String, java.util.Locale, java.lang.ClassLoader) ResourceBundle.getBundle}
* for a complete description of the search and instantiation strategy.
*
*
* The following example shows a member of a resource
* bundle family with the base name "MyResources".
* The text defines the bundle "MyResources_de",
* the German member of the bundle family.
* This member is based on PropertyResourceBundle, and the text
* therefore is the content of the file "MyResources_de.properties"
* (a related example shows
* how you can add bundles to this family that are implemented as subclasses
* of ListResourceBundle).
* The keys in this example are of the form "s1" etc. The actual
* keys are entirely up to your choice, so long as they are the same as
* the keys you use in your program to retrieve the objects from the bundle.
* Keys are case-sensitive.
*
*
* # MessageFormat pattern
* s1=Die Platte \"{1}\" enthält {0}.
*
* # location of {0} in pattern
* s2=1
*
* # sample disk name
* s3=Meine Platte
*
* # first ChoiceFormat choice
* s4=keine Dateien
*
* # second ChoiceFormat choice
* s5=eine Datei
*
* # third ChoiceFormat choice
* s6={0,number} Dateien
*
* # sample date
* s7=3. März 1996
*
*
*
* @see ResourceBundle
* @see ListResourceBundle
* @see Properties
* @since JDK1.1
*/
public class PropertyResourceBundle extends ResourceBundle {
/**
* Creates a property resource bundle.
* @param stream property file to read from.
*/
public PropertyResourceBundle (InputStream stream) throws IOException {
Properties properties = new Properties();
properties.load(stream);
lookup = new HashMap(properties);
}
// Implements java.util.ResourceBundle.handleGetObject; inherits javadoc specification.
public Object handleGetObject(String key) {
if (key == null) {
throw new NullPointerException();
}
return lookup.get(key);
}
/**
* Implementation of ResourceBundle.getKeys.
*/
public Enumeration