Class PropertySetter

java.lang.Object
org.apache.commons.jcs3.utils.config.PropertySetter

public class PropertySetter extends Object
This class is based on the log4j class org.apache.log4j.config.PropertySetter that was made by Anders Kristensen

General purpose Object property setter. Clients repeatedly invokes setProperty(name,value) in order to invoke setters on the Object specified in the constructor. This class relies on the JavaBeans Introspectorto analyze the given Object Class using reflection.

Usage:

 PropertySetter ps = new PropertySetter( anObject );
 ps.set( "name", "Joe" );
 ps.set( "age", "32" );
 ps.set( "isMale", "true" );
 
will cause the invocations anObject.setName("Joe"), anObject.setAge(32), and setMale(true) if such methods exist with those signatures. Otherwise an IntrospectionExceptionare thrown.
  • Constructor Details

  • Method Details

    • introspect

      protected void introspect()
      Uses JavaBeans Introspectorto compute setters of object to be configured.
    • setProperties

      public static void setProperties(Object obj, Properties properties, String prefix)
      Set the properties of an object passed as a parameter in one go. The properties are parsed relative to a prefix.

      Parameters:
      obj - The object to configure.
      properties - A java.util.Properties containing keys and values.
      prefix - Only keys having the specified prefix will be set.
    • setProperties

      public void setProperties(Properties properties, String prefix)
      Set the properties for the object that match the prefix passed as parameter.

      Parameters:
      properties - The new properties value
      prefix - The new properties value
    • setProperty

      public void setProperty(String name, String value)
      Set a property on this PropertySetter's Object. If successful, this method will invoke a setter method on the underlying Object. The setter is the one for the specified property name and the value is determined partly from the setter argument type and partly from the value specified in the call to this method.

      If the setter expects a String no conversion is necessary. If it expects an int, then an attempt is made to convert 'value' to an int using Integer.valueOf(value). If the setter expects a boolean, the conversion is by Boolean.valueOf(value).

      Parameters:
      name - name of the property
      value - String value of the property
    • setProperty

      public void setProperty(PropertyDescriptor prop, String name, String value) throws PropertySetterException
      Set the named property given a PropertyDescriptor.
      Parameters:
      prop - A PropertyDescriptor describing the characteristics of the property to set.
      name - The named of the property to set.
      value - The value of the property.
      Throws:
      PropertySetterException
    • convertArg

      protected Object convertArg(String val, Class<?> type)
      Convert val a String parameter to an object of a given type.
      Parameters:
      val -
      type -
      Returns:
      Object
    • getPropertyDescriptor

      Gets the propertyDescriptor attribute of the PropertySetter object
      Parameters:
      name -
      Returns:
      The propertyDescriptor value