/*
* @(#)ListResourceBundle.java 1.27 05/09/01
*
* 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;
/**
* ListResourceBundle
is an abstract subclass of
* ResourceBundle
that manages resources for a locale
* in a convenient and easy to use list. See ResourceBundle
for
* more information about resource bundles in general.
*
*
* Subclasses must override getContents
and provide an array,
* where each item in the array is a pair of objects.
* The first element of each pair is the key, which must be a
* String
, and the second element is the value associated with
* that key.
*
*
* The following example shows two members of a resource
* bundle family with the base name "MyResources".
* "MyResources" is the default member of the bundle family, and
* "MyResources_fr" is the French member.
* These members are based on ListResourceBundle
* (a related example shows
* how you can add a bundle to this family that's based on a properties file).
* 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.
*
** @see ResourceBundle * @see PropertyResourceBundle * @since JDK1.1 */ public abstract class ListResourceBundle extends ResourceBundle { /** * Sole constructor. (For invocation by subclass constructors, typically * implicit.) */ public ListResourceBundle() { } // Implements java.util.ResourceBundle.handleGetObject; inherits javadoc specification. public final Object handleGetObject(String key) { // lazily load the lookup hashtable. if (lookup == null) { loadLookup(); } if (key == null) { throw new NullPointerException(); } return lookup.get(key); // this class ignores locales } /** * Implementation of ResourceBundle.getKeys. */ public Enumeration* * public class MyResources extends ListResourceBundle { * protected Object[][] getContents() { * return new Object[][] = { * // LOCALIZE THIS * {"s1", "The disk \"{1}\" contains {0}."}, // MessageFormat pattern * {"s2", "1"}, // location of {0} in pattern * {"s3", "My Disk"}, // sample disk name * {"s4", "no files"}, // first ChoiceFormat choice * {"s5", "one file"}, // second ChoiceFormat choice * {"s6", "{0,number} files"}, // third ChoiceFormat choice * {"s7", "3 Mar 96"}, // sample date * {"s8", new Dimension(1,5)} // real object, not just string * // END OF MATERIAL TO LOCALIZE * }; * } * } * * public class MyResources_fr extends ListResourceBundle { * protected Object[][] getContents() { * return new Object[][] = { * // LOCALIZE THIS * {"s1", "Le disque \"{1}\" {0}."}, // MessageFormat pattern * {"s2", "1"}, // location of {0} in pattern * {"s3", "Mon disque"}, // sample disk name * {"s4", "ne contient pas de fichiers"}, // first ChoiceFormat choice * {"s5", "contient un fichier"}, // second ChoiceFormat choice * {"s6", "contient {0,number} fichiers"}, // third ChoiceFormat choice * {"s7", "3 mars 1996"}, // sample date * {"s8", new Dimension(1,3)} // real object, not just string * // END OF MATERIAL TO LOCALIZE * }; * } * } **