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