You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by bu...@apache.org on 2005/11/30 11:56:21 UTC

DO NOT REPLY [Bug 37711] New: - [resources] Messages Refactoring

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG�
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=37711>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND�
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=37711

           Summary: [resources] Messages Refactoring
           Product: Commons
           Version: unspecified
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: critical
          Priority: P1
         Component: Resources
        AssignedTo: commons-dev@jakarta.apache.org
        ReportedBy: niallp@apache.org


I'm proposing the Messages's API change to the following:

  public void setDefaultLocale(Locale locale)
  public Locale getDefaultLocale()
  public String getMessage(String key)
  public String getMessage(String key, Object[] args)
  public String getMessage(String key, Locale locale) 
  public String getMessage(String key, String key, Object[] args, Locale locale)
  public static Resources getMessages(ResourcesFactory factory, String name)
  public static Object[] args(Object arg0)
  public static Object[] args(Object arg0, Object arg1)
  public static Object[] args(Object arg0, Object arg1, Object arg2)
  public static Object[] args(Object arg0, Object arg1, Object arg2, Object 
arg3)

...for the following reasoning:

1) Remove the static getMessage() methods from the Messages object. The problem 
is that currently the instance methods all call one of the static methods to do 
the MessageFormat processing making this class difficult to create custom 
implementations for.

2) Change the getMessage() parameter order to key, args, locale (as per Bug 
37702)

3) Remove the static setFactory method and change the static getMessages method 
to include a Factory parameter - that way there would be no conflict with 
different parts of an application having to set a static instance variable 
before calling getMessages().

4) Only have one instance method that has an Object[] for arguments, but add 
static convenience methods for turning arguments into an Object[].  Users could 
then do something like the following:

 String msg = messages.getMessage(locale, "foo.bar", Messages.args
("first", "second"));

5) Provide methods to set the default Locale, if not supplied in the getMessage
() methods.

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org