sunlabs.brazil.properties
Class ExprProps

java.lang.Object
  extended by java.util.Dictionary
      extended by java.util.Hashtable
          extended by java.util.Properties
              extended by sunlabs.brazil.properties.ExprProps (view source)
All Implemented Interfaces:
Serializable, Cloneable, Map

public class ExprProps
extends Properties

ExprProps is a subclass of Properties that is "smart" in the sense that it wraps a Calculator object, passing get and getProperty keys to the Calculator for processing.

Keys are first searched for in the Properties object. If not found, the key is passed to the getValue method of the wrapped Calculator object. The Calculator will return null if the key consists of only a name or Brazil token and that name/token evaluates to 0. In this case, a value associated with the key can not be "found" and the get or getpropertymethod returns null also.

Only property names that "look" like expressions (e.g. contain at least one of characters in [&|*+/%=!<>-]) are passed to the calculator.

See Also:
Properties, Calculator, ExprPropsHandler, Serialized Form

Constructor Summary
ExprProps()
          This constructor creates a Calculator instance with this instance of ExprProps as it's symbol table.
ExprProps(Properties defaults)
          This constructor creates a Calculator instance with this instance of ExprProps as it's symbol table and with the Properties instance referenced by the parameter defaults as it's set of default values.
ExprProps(Request request)
          This constructor creates a Calculator instance with request.props as it's symbol table.
ExprProps(Request request, Properties defaults)
          This constructor creates a Calculator instance with request.props as it's symbol table and with the Properties instance referenced by the parameter defaults as it's set of default values.
 
Method Summary
 Object get(Object key)
          Returns the value to which the specified key is mapped in this Hashtable.
 String getProperty(String key)
          Searches for the property with the specified key in this property list.
 
Methods inherited from class java.util.Properties
getProperty, list, list, load, load, loadFromXML, propertyNames, save, setProperty, store, store, storeToXML, storeToXML, stringPropertyNames
 
Methods inherited from class java.util.Hashtable
clear, clone, contains, containsKey, containsValue, elements, entrySet, equals, hashCode, isEmpty, keys, keySet, put, putAll, remove, size, toString, values
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ExprProps

public ExprProps()
This constructor creates a Calculator instance with this instance of ExprProps as it's symbol table.


ExprProps

public ExprProps(Properties defaults)
This constructor creates a Calculator instance with this instance of ExprProps as it's symbol table and with the Properties instance referenced by the parameter defaults as it's set of default values.

Parameters:
defaults - the defaults

ExprProps

public ExprProps(Request request)
This constructor creates a Calculator instance with request.props as it's symbol table.

Parameters:
request - the Request instance

ExprProps

public ExprProps(Request request,
                 Properties defaults)
This constructor creates a Calculator instance with request.props as it's symbol table and with the Properties instance referenced by the parameter defaults as it's set of default values.

Parameters:
request - the Request instance
defaults - the defaults
Method Detail

get

public Object get(Object key)
Returns the value to which the specified key is mapped in this Hashtable. If the key is not found, then it's value is computed by treating the key as an arithmetic expression or statement.

If, during the computation, an ArithmeticException is thrown, the key compute.error is set in the base Properties. The value associated with the key is an error message.

Specified by:
get in interface Map
Overrides:
get in class Hashtable
Parameters:
key - the Hashtable key
Returns:
the value in this table with the specified key or null

getProperty

public String getProperty(String key)
Searches for the property with the specified key in this property list. If the key is not found in this property list, then it's value is computed by treating the key as an arithmetic expression or statement.

If, during the computation, an ArithmeticException is thrown, the key compute.error is set in the base Properties. The value associated with the key is an error message.

If the result of the computation is null, the default property list, and its defaults, recursively, are then checked. The method returns null if the property is not found.

Overrides:
getProperty in class Properties
Parameters:
key - the property key
Returns:
the value in this property list with the specified key or null
See Also:
Properties.defaults

Version Kenai-svn-r24, Generated 08/18/09
Copyright (c) 2001-2009, Sun Microsystems.