Class ResourceDefinition


  • public class ResourceDefinition
    extends java.lang.Object
    Definition of a resource such as a parameterized message or exception.

    A resource is identified within a ResourceBundle by a text key, and has a message in its base locale (which is usually US-English (en_US)). It may also have a set of properties, which are represented as name-value pairs.

    A resource definition is immutable.

    Since:
    19 September, 2005
    Version:
    $Id: //open/util/resgen/src/org/eigenbase/resgen/ResourceDefinition.java#4 $
    Author:
    jhyde
    • Constructor Summary

      Constructors 
      Constructor Description
      ResourceDefinition​(java.lang.String key, java.lang.String baseMessage)
      Creates a resource definition with no properties.
      ResourceDefinition​(java.lang.String key, java.lang.String baseMessage, java.lang.String[] props)
      Creates a resource definition.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected static int getArgType​(int i, java.lang.String message)
      Returns the type of the ith argument inside a message, or TYPE_UNKNOWN if not found.
      java.lang.String[] getArgTypes()
      Returns the types of arguments.
      protected static java.lang.String[] getArgTypes​(java.lang.String message, java.lang.String[] typeNames)
      Parses a message for the arguments inside it, and returns an array with the types of those arguments.
      protected static java.lang.String[] getArgTypesByHand​(java.lang.String message, java.lang.String[] typeNames)  
      java.lang.String getBaseMessage()
      Returns this resource definition's message in the base locale.
      java.lang.String getKey()
      Returns this resource definition's key.
      java.util.Properties getProperties()
      Returns the properties of this resource definition.
      ResourceInstance instantiate​(java.util.ResourceBundle bundle, java.lang.Object[] args)
      Creates an instance of this definition with a set of parameters.
      • Methods inherited from class java.lang.Object

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

      • ResourceDefinition

        public ResourceDefinition​(java.lang.String key,
                                  java.lang.String baseMessage)
        Creates a resource definition with no properties.
        Parameters:
        key - Unique name for this resource definition.
        baseMessage - Message for this resource definition in the base locale.
      • ResourceDefinition

        public ResourceDefinition​(java.lang.String key,
                                  java.lang.String baseMessage,
                                  java.lang.String[] props)
        Creates a resource definition.
        Parameters:
        key - Unique name for this resource definition.
        baseMessage - Message for this resource definition in the base locale.
        props - Array of property name/value pairs. null means the same as an empty array.
    • Method Detail

      • getKey

        public java.lang.String getKey()
        Returns this resource definition's key.
      • getBaseMessage

        public java.lang.String getBaseMessage()
        Returns this resource definition's message in the base locale. (To find the message in another locale, you will need to load a resource bundle for that locale.)
      • getProperties

        public java.util.Properties getProperties()
        Returns the properties of this resource definition.
      • getArgTypes

        public java.lang.String[] getArgTypes()
        Returns the types of arguments.
      • instantiate

        public ResourceInstance instantiate​(java.util.ResourceBundle bundle,
                                            java.lang.Object[] args)
        Creates an instance of this definition with a set of parameters. This is a factory method, which may be overridden by a derived class.
        Parameters:
        bundle - Resource bundle the resource instance will belong to (This contains the locale, among other things.)
        args - Arguments to populate the message's parameters. The arguments must be consistent in number and type with the results of getArgTypes().
      • getArgTypes

        protected static java.lang.String[] getArgTypes​(java.lang.String message,
                                                        java.lang.String[] typeNames)
        Parses a message for the arguments inside it, and returns an array with the types of those arguments.

        For example, getArgTypes("I bought {0,number} {2}s", new String[] {"string", "number", "date", "time"}) yields {"number", null, "string"}. Note the null corresponding to missing message #1.

        Parameters:
        message - Message to be parsed.
        typeNames - Strings to return for types.
        Returns:
        Array of type names
      • getArgTypesByHand

        protected static java.lang.String[] getArgTypesByHand​(java.lang.String message,
                                                              java.lang.String[] typeNames)
      • getArgType

        protected static int getArgType​(int i,
                                        java.lang.String message)
        Returns the type of the ith argument inside a message, or TYPE_UNKNOWN if not found.
        Parameters:
        i - Ordinal of argument
        message - Message to parse
        Returns:
        Type code (TYPE_STRING etc.)