Class NLS

java.lang.Object
org.eclipse.osgi.util.NLS

public abstract class NLS extends Object
Common superclass for all message bundle classes. Provides convenience methods for manipulating messages.

The #bind methods perform string substitution and should be considered a convenience and not a full substitute replacement for MessageFormat#format method calls.

Text appearing within curly braces in the given message, will be interpreted as a numeric index to the corresponding substitution object in the given array. Calling the #bind methods with text that does not map to an integer will result in an IllegalArgumentException.

Text appearing within single quotes is treated as a literal. A single quote is escaped by a preceeding single quote.

Clients who wish to use the full substitution power of the MessageFormat class should call that class directly and not use these #bind methods.

Clients may subclass this type.

Since:
3.1
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    NLS()
    Creates a new NLS instance.
  • Method Summary

    Modifier and Type
    Method
    Description
    static String
    bind(String message, Object binding)
    Bind the given message's substitution locations with the given string value.
    static String
    bind(String message, Object[] bindings)
    Bind the given message's substitution locations with the given string values.
    static String
    bind(String message, Object binding1, Object binding2)
    Bind the given message's substitution locations with the given string values.
    static void
    initializeMessages(String baseName, Class<?> clazz)
    Initialize the given class with the values from the message properties specified by the base name.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • NLS

      protected NLS()
      Creates a new NLS instance.
  • Method Details

    • bind

      public static String bind(String message, Object binding)
      Bind the given message's substitution locations with the given string value.
      Parameters:
      message - the message to be manipulated
      binding - the object to be inserted into the message
      Returns:
      the manipulated String
      Throws:
      IllegalArgumentException - if the text appearing within curly braces in the given message does not map to an integer
    • bind

      public static String bind(String message, Object binding1, Object binding2)
      Bind the given message's substitution locations with the given string values.
      Parameters:
      message - the message to be manipulated
      binding1 - An object to be inserted into the message
      binding2 - A second object to be inserted into the message
      Returns:
      the manipulated String
      Throws:
      IllegalArgumentException - if the text appearing within curly braces in the given message does not map to an integer
    • bind

      public static String bind(String message, Object[] bindings)
      Bind the given message's substitution locations with the given string values.
      Parameters:
      message - the message to be manipulated
      bindings - An array of objects to be inserted into the message
      Returns:
      the manipulated String
      Throws:
      IllegalArgumentException - if the text appearing within curly braces in the given message does not map to an integer
    • initializeMessages

      public static void initializeMessages(String baseName, Class<?> clazz)
      Initialize the given class with the values from the message properties specified by the base name. The base name specifies a fully qualified base name to a message properties file, including the package where the message properties file is located. The class loader of the specified class will be used to load the message properties resources.

      For example, if the locale is set to en_US and org.eclipse.example.nls.messages is used as the base name then the following resources will be searched using the class loader of the specified class:

         org/eclipse/example/nls/messages_en_US.properties
         org/eclipse/example/nls/messages_en.properties
         org/eclipse/example/nls/messages.properties
       
      Parameters:
      baseName - the base name of a fully qualified message properties file.
      clazz - the class where the constants will exist