Package org.eclipse.osgi.util

## 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
`protected` `NLS()` Creates a new NLS instance.

### Method Summary

All Methods Static Methods Concrete Methods
`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 Detail

#### NLS

    protected NLS()

Creates a new NLS instance.

### Method Detail

#### 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