Package weka.core

Class PropertyPath

  • All Implemented Interfaces:
    RevisionHandler

    public class PropertyPath
    extends Object
    implements RevisionHandler
    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.

    Version:
    $Revision$
    Author:
    fracpete (fracpete at waikato dot ac dot nz)
    • Constructor Detail

      • PropertyPath

        public PropertyPath()
    • Method Detail

      • find

        public static weka.core.PropertyPath.PropertyContainer find​(Object src,
                                                                    PropertyPath.Path path)
        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
      • getPropertyDescriptor

        public static PropertyDescriptor getPropertyDescriptor​(Object src,
                                                               PropertyPath.Path path)
        returns the property 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
      • getPropertyDescriptor

        public static PropertyDescriptor getPropertyDescriptor​(Object src,
                                                               String path)
        returns the property associated with the given path
        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)
        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)
        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)
        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 void setValue​(Object src,
                                    String path,
                                    Object value)
        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
      • main

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