Class PropertyPath


  • public class PropertyPath
    extends Object
    A helper class for accessing properties in nested objects, e.g., accessing the "getRidge" method of a LinearRegression classifier part of MultipleClassifierCombiner, e.g., Vote. For doing so, one needs to supply the object to work on and a property path. The property path is a dot delimited path of property names ("getFoo()" and "setFoo(int)" have "foo" as property name), indices of arrays are 0-based. E.g.:

    getPropertyDescriptor(vote, "classifiers[1].ridge") will return the second classifier (which should be our LinearRegression) of the given Vote meta-classifier and there the property descriptor of the "ridge" property. getValue(...) will return the actual value of the ridge parameter and setValue(...) will set it.

    Using .get(X) it is possible to access the items of List objects, with "X" being the index for the "get(index)" method.
    Author:
    fracpete (fracpete at waikato dot ac dot nz)
    • Constructor Detail

      • PropertyPath

        public PropertyPath()
    • Method Detail

      • find

        public static PropertyPath.PropertyContainer find​(Object src,
                                                          String path,
                                                          MessageCollection errors)
        returns the property and object associated with the given path, null if a problem occurred.
        Parameters:
        src - the object to start from
        path - the path to follow
        Returns:
        not null, if the property could be found
      • getValue

        public static Object getValue​(Object src,
                                      PropertyPath.Path path,
                                      MessageCollection errors)
        returns the value specified by the given path from the object.
        Parameters:
        src - the object to work on
        path - the retrieval path
        Returns:
        the value, null if an error occurred
      • getValue

        public static Object getValue​(Object src,
                                      String path,
                                      MessageCollection errors)
        returns the value specified by the given path from the object.
        Parameters:
        src - the object to work on
        path - the retrieval path
        Returns:
        the value, null if an error occurred
      • setValue

        public static boolean setValue​(Object src,
                                       PropertyPath.Path path,
                                       Object value,
                                       MessageCollection errors)
        set the given value specified by the given path in the object.
        Parameters:
        src - the object to work on
        path - the retrieval path
        value - the value to set
        Returns:
        true if the value could be set
      • setValue

        public static boolean setValue​(Object src,
                                       String path,
                                       Object value,
                                       MessageCollection errors)
        set the given value specified by the given path in the object.
        Parameters:
        src - the object to work on
        path - the retrieval path
        value - the value to set
        Returns:
        true if succesfully set
      • main

        public static void main​(String[] args)
                         throws Exception
        for testing only.
        Parameters:
        args - the commandline options - ignored
        Throws:
        Exception - if something goes wrong