Package org.eigenbase.resgen
Class ResourceDefinition
- java.lang.Object
-
- org.eigenbase.resgen.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
-
-
Field Summary
Fields Modifier and Type Field Description java.lang.String
baseMessage
java.lang.String
key
static int
TYPE_DATE
static int
TYPE_NUMBER
static int
TYPE_STRING
static int
TYPE_TIME
static int
TYPE_UNKNOWN
-
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 thei
th argument inside a message, orTYPE_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.
-
-
-
Field Detail
-
key
public final java.lang.String key
-
baseMessage
public final java.lang.String baseMessage
-
TYPE_UNKNOWN
public static final int TYPE_UNKNOWN
- See Also:
- Constant Field Values
-
TYPE_STRING
public static final int TYPE_STRING
- See Also:
- Constant Field Values
-
TYPE_NUMBER
public static final int TYPE_NUMBER
- See Also:
- Constant Field Values
-
TYPE_DATE
public static final int TYPE_DATE
- See Also:
- Constant Field Values
-
TYPE_TIME
public static final int TYPE_TIME
- See Also:
- Constant Field Values
-
-
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 ofgetArgTypes()
.
-
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 thei
th argument inside a message, orTYPE_UNKNOWN
if not found.- Parameters:
i
- Ordinal of argumentmessage
- Message to parse- Returns:
- Type code (
TYPE_STRING
etc.)
-
-