View Javadoc

1   package org.xnap.commons.i18n;
2   
3   import java.util.Enumeration;
4   import java.util.Locale;
5   import java.util.ResourceBundle;
6   
7   /**
8    * A <code>ResourceBundle</code> that returns the key as a value.
9    *
10   * FIXME needs to implement proper plural handling
11   * FIXME the bundle needs to have a valid locale for proper sourceCodeLocale handling
12   */
13  class EmptyResourceBundle extends ResourceBundle
14  {
15  	private Locale locale;
16  
17  	public EmptyResourceBundle(Locale locale)
18  	{
19  		this.locale = locale;
20  	}
21  
22  	/**
23  	 * Returns the key as value.
24  	 */
25  	protected Object handleGetObject(String key) 
26  	{
27  		return key;
28  	}
29  
30  	public Enumeration getKeys() 
31  	{
32  		return new EmptyStringEnumeration();
33  	}
34  	
35  	public Locale getLocale()
36  	{
37  		return locale;
38  	}
39  	
40  	private static class EmptyStringEnumeration implements Enumeration
41  	{
42  
43  		public boolean hasMoreElements() 
44  		{
45  			return false;
46  		}
47  
48  		public Object nextElement() 
49  		{
50  			throw new IllegalStateException("nextElement must not be " +
51  					"called on empty enumeration");
52  		}
53  		
54  	}
55  	
56  }