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>

Reply via email to