jdk/src/share/classes/sun/util/resources/OpenListResourceBundle.java
changeset 14765 0987999ed367
parent 14342 8435a30053c1
child 16852 60207b2b4b42
--- a/jdk/src/share/classes/sun/util/resources/OpenListResourceBundle.java	Sun Dec 09 19:13:08 2012 +0000
+++ b/jdk/src/share/classes/sun/util/resources/OpenListResourceBundle.java	Mon Dec 10 10:52:11 2012 +0900
@@ -67,6 +67,7 @@
     }
 
     // Implements java.util.ResourceBundle.handleGetObject; inherits javadoc specification.
+    @Override
     public Object handleGetObject(String key) {
         if (key == null) {
             throw new NullPointerException();
@@ -79,6 +80,7 @@
     /**
      * Implementation of ResourceBundle.getKeys.
      */
+    @Override
     public Enumeration<String> getKeys() {
         ResourceBundle parent = this.parent;
         return new ResourceBundleEnumeration(handleGetKeys(),
@@ -86,7 +88,8 @@
     }
 
     /**
-     * Returns a set of keys provided in this resource bundle
+     * Returns a set of keys provided in this resource bundle,
+     * including no parents.
      */
     public Set<String> handleGetKeys() {
         loadLookupTablesIfNecessary();
@@ -99,7 +102,7 @@
         if (keyset != null) {
             return keyset;
         }
-        Set<String> ks = new HashSet<>();
+        Set<String> ks = createSet();
         ks.addAll(handleGetKeys());
         if (parent != null) {
             ks.addAll(parent.keySet());
@@ -113,13 +116,6 @@
     }
 
     /**
-     * Returns the parent bundle
-     */
-    public OpenListResourceBundle getParent() {
-        return (OpenListResourceBundle)parent;
-    }
-
-    /**
      * See ListResourceBundle class description.
      */
     abstract protected Object[][] getContents();
@@ -160,10 +156,14 @@
      * Lets subclasses provide specialized Map implementations.
      * Default uses HashMap.
      */
-    protected Map<String, Object> createMap(int size) {
+    protected <K, V> Map<K, V> createMap(int size) {
         return new HashMap<>(size);
     }
 
+    protected <E> Set<E> createSet() {
+        return new HashSet<>();
+    }
+
     private volatile Map<String, Object> lookup = null;
     private volatile Set<String> keyset;
 }