adammurdoch 2002/10/22 06:01:57
Modified: vfs/src/java/org/apache/commons/vfs/util Messages.java
Added: vfs/src/java/org/apache/commons/vfs Resources.properties
Removed: vfs/src/java/org/apache/commons/vfs/impl
Resources.properties
vfs/src/java/org/apache/commons/vfs/provider
Resources.properties
vfs/src/java/org/apache/commons/vfs/provider/ftp
Resources.properties
vfs/src/java/org/apache/commons/vfs/provider/jar
Resources.properties
vfs/src/java/org/apache/commons/vfs/provider/local
Resources.properties
vfs/src/java/org/apache/commons/vfs/provider/smb
Resources.properties
vfs/src/java/org/apache/commons/vfs/provider/zip
Resources.properties
Log:
- Combined all messages into a single properties file.
- Changed Messages.getString() to use this combined file.
Revision Changes Path
1.3 +112 -2
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/Resources.properties
1.2 +42 -11
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/util/Messages.java
Index: Messages.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/util/Messages.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Messages.java 22 Oct 2002 11:41:49 -0000 1.1
+++ Messages.java 22 Oct 2002 13:01:57 -0000 1.2
@@ -7,6 +7,12 @@
*/
package org.apache.commons.vfs.util;
+import java.util.ResourceBundle;
+import java.util.MissingResourceException;
+import java.util.Map;
+import java.util.HashMap;
+import java.text.MessageFormat;
+
/**
* Formats messages.
*
@@ -15,6 +21,10 @@
*/
public class Messages
{
+ /** Map from message code to MessageFormat object for the message. */
+ private static final Map messages = new HashMap();
+ private static ResourceBundle resources;
+
private Messages()
{
}
@@ -51,17 +61,38 @@
*/
public static String getString( final String code, final Object[] params )
{
- StringBuffer sb = new StringBuffer( code );
- sb.append( '{' );
- if ( params != null )
+ try
+ {
+ final MessageFormat msg = findMessage( code );
+ return msg.format( params );
+ }
+ catch ( final MissingResourceException mre )
+ {
+ return "Unknown message with code \"" + code + "\".";
+ }
+ }
+
+ /**
+ * Locates a message by its code.
+ */
+ private static synchronized MessageFormat findMessage( final String code )
+ throws MissingResourceException
+ {
+ // Check if the message is cached
+ MessageFormat msg = (MessageFormat)messages.get( code );
+ if ( msg != null )
+ {
+ return msg;
+ }
+
+ // Locate the message
+ if ( resources == null )
{
- for ( int i = 0; i < params.length; i++ )
- {
- sb.append( params[ i ] );
- sb.append( ',' );
- }
+ resources = ResourceBundle.getBundle(
"org.apache.commons.vfs.Resources" );
}
- sb.append( '}' );
- return sb.toString();
+ final String msgText = resources.getString( code );
+ msg = new MessageFormat( msgText );
+ messages.put( code, msg );
+ return msg;
}
}
--
To unsubscribe, e-mail: <mailto:commons-dev-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:commons-dev-help@;jakarta.apache.org>