Class PropertiesManager

  • All Implemented Interfaces:
    java.io.Serializable

    public class PropertiesManager
    extends java.lang.Object
    implements java.io.Serializable
    Manages with reflection the properties of a object.

    Excludes automatically the property class of Object and the indexed properties with no indexed access.

    Author:
    Javier Paniza
    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      PropertiesManager()  
      PropertiesManager​(java.lang.Class theClass)
      Constructor from a the class of the object to manage.
      PropertiesManager​(java.lang.Object object)
      Constructor from the object to manage.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Object executeGet​(java.lang.String propertyName)
      Gets the value of the indicated property.
      java.util.Map executeGets​(java.lang.String properties)
      Gets a group of property values in a map.
      void executeSet​(java.lang.String propertyName, java.lang.Object value)
      Update property.
      void executeSetFromString​(java.lang.String propertyName, java.lang.Object value)
      Update property from a string, making needed conversions.
      void executeSets​(java.util.Map properties)
      Sets property values from a map.
      void executeSetsFromStrings​(java.util.Map properties)
      Sets property values from a map, trying to convert strings to value of valid type for properties.
      boolean exists​(java.lang.String propertyName)
      If the property exists.
      java.lang.Object getObject()
      Object of which the properties are handled.
      java.lang.String[] getPropertiesNames()
      Names of all properties managed by this.
      java.beans.PropertyDescriptor getPropertyDescriptor​(java.lang.String propertyName)  
      java.lang.String[] getReadablesPropertiesNames()
      Names of all properties managed by this with getter method.
      java.lang.String[] getWritablesPropertiesNames()
      Names of all properties managed by this with setter method.
      boolean hasGetter​(java.lang.String propertyName)
      If the property has getter.
      boolean hasSetter​(java.lang.String propertyName)
      If the property has setter.
      void setObject​(java.lang.Object newObject)
      Object of which the properties are handled.
      • Methods inherited from class java.lang.Object

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

      • PropertiesManager

        public PropertiesManager()
      • PropertiesManager

        public PropertiesManager​(java.lang.Class theClass)
        Constructor from a the class of the object to manage. This initial value can change in the life of this.
      • PropertiesManager

        public PropertiesManager​(java.lang.Object object)
        Constructor from the object to manage.

        Parameters:
        object - Object to manage
    • Method Detail

      • executeGet

        public java.lang.Object executeGet​(java.lang.String propertyName)
                                    throws java.lang.reflect.InvocationTargetException,
                                           PropertiesManagerException
        Gets the value of the indicated property.

        Parameters:
        propertyName - Property name to obtain its value, can be qualified (that is: 'customer.address.street' for example)
        Returns:
        Value of the property
        Throws:
        java.lang.reflect.InvocationTargetException - Exception originated by the original access method
        PropertiesManagerException - Some unexpected problem
      • executeGets

        public java.util.Map executeGets​(java.lang.String properties)
                                  throws java.lang.reflect.InvocationTargetException,
                                         PropertiesManagerException
        Gets a group of property values in a map.

        Precondition

        • this.object != null
        Parameters:
        properties - Names of properties to get, separated by colon (:). The properties must to exist in the object. If properties is null a empty map is returned.
        Returns:
        Map with String propertyName:Object value. Not null.
        Throws:
        java.lang.reflect.InvocationTargetException - Exception originated by original access method
        PropertiesManagerException - Some unexpected problem
      • executeSet

        public void executeSet​(java.lang.String propertyName,
                               java.lang.Object value)
                        throws java.lang.reflect.InvocationTargetException,
                               PropertiesManagerException
        Update property.

        Precondition

        • this.object != null
        Parameters:
        propertyName - Property name to update
        value - New value for property. Has to be of compatible type. If value is a Map and the property type is not a map then convert the map in an object of the property type.
        Throws:
        java.lang.reflect.InvocationTargetException - Excepction originated from original access method
        PropertiesManagerException - Any unexpected problem
      • executeSetFromString

        public void executeSetFromString​(java.lang.String propertyName,
                                         java.lang.Object value)
                                  throws java.lang.reflect.InvocationTargetException,
                                         PropertiesManagerException
        Update property from a string, making needed conversions.

        Precondition

        • this.object != null
        Parameters:
        propertyName - Name of property to update
        value - New value for property. Must to be a compatible type or a string parseable to a compatible type.
        Throws:
        java.lang.reflect.InvocationTargetException - Exception from original access method
        PropertiesManagerException - Any unexpected problem
      • executeSets

        public void executeSets​(java.util.Map properties)
                         throws java.lang.reflect.InvocationTargetException,
                                PropertiesManagerException
        Sets property values from a map.

        Precondition

        • this.object != null
        • this.hasSetter(propertyName)
        Supports nested Maps.
        Parameters:
        properties - Map with String propertyName:Object value. Null is assumed as empty map
        Throws:
        java.lang.reflect.InvocationTargetException - Excepcion from original access method
        PropertiesManagerException - Any unexpected method
      • executeSetsFromStrings

        public void executeSetsFromStrings​(java.util.Map properties)
                                    throws java.lang.reflect.InvocationTargetException,
                                           PropertiesManagerException
        Sets property values from a map, trying to convert strings to value of valid type for properties.

        Precondition

        • this.object != null
        • this.hasSetter(propertyName)
        Parameters:
        properties - Map with String propertyName:Object value. Null is assumed as empty map
        Throws:
        java.lang.reflect.InvocationTargetException - Excepcion from original access method
        PropertiesManagerException - Any unexpected method
      • getObject

        public java.lang.Object getObject()
        Object of which the properties are handled.
      • setObject

        public void setObject​(java.lang.Object newObject)
        Object of which the properties are handled.