Package weka.gui

Class GenericPropertiesCreator

java.lang.Object
weka.gui.GenericPropertiesCreator

public class GenericPropertiesCreator extends Object
This class can generate the properties object that is normally loaded from the GenericObjectEditor.props file (= PROPERTY_FILE). It takes the GenericPropertiesCreator.props file as a template to determine all the derived classes by checking the classes in the given packages (a file with the same name in your home directory overrides the the one in the weka/gui directory/package).
E.g. if we want to have all the subclasses of the Classifier class then we specify the superclass ("weka.classifiers.Classifier") and the packages where to look for ("weka.classifiers.bayes" etc.):
 
   weka.classifiers.Classifier=\
     weka.classifiers.bayes,\
     weka.classifiers.functions,\
     weka.classifiers.lazy,\
     weka.classifiers.meta,\
     weka.classifiers.trees,\
     weka.classifiers.rules
 
 
This creates the same list as stored in the GenericObjectEditor.props file, but it will also add additional classes, that are not listed in the static list (e.g. a newly developed Classifier), but still in the classpath.

For discovering the subclasses the whole classpath is inspected, which means that you can have several parallel directories with the same package structure (e.g. a release directory and a developer directory with additional classes).

The dynamic discovery can be turned off via the UseDyanmic property in the props file (values: true|false).
Version:
$Revision: 14293 $
Author:
FracPete (fracpete at waikato dot ac dot nz)
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    name of property whether to use the dynamic approach or the old GenericObjectEditor.props file
    static final boolean
    whether to output some debug information
  • Constructor Summary

    Constructors
    Constructor
    Description
    initializes the creator, locates the props file with the Utils class.
    initializes the creator, the given file overrides the props-file search of the Utils class
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    generates the props-file for the GenericObjectEditor and stores it
    void
    execute(boolean store)
    generates the props-file for the GenericObjectEditor
    void
    execute(boolean store, boolean loadInputProps)
    generates the props-file for the GenericObjectEditor and stores it only if the the param store is TRUE.
    boolean
    returns TRUE, if a file is loaded and not the Utils class used for locating the props file.
    static Properties
    Get the global input properties
    static Properties
    Get the global output properties
    returns the name of the input file
    returns the input properties object (template containing the packages)
    returns the name of the output file
    returns the output properties object (structure like the template, but filled with classes instead of packages)
    static void
    main(String[] args)
    for generating props file: no parameter: see default constructor 1 parameter (i.e., filename): see default constructor + setOutputFilename(String) 2 parameters (i.e, filenames): see constructor with String argument + setOutputFilename(String)
    static void
    Regenerate the global output properties.
    void
    setExplicitPropsFile(boolean value)
    if FALSE, the locating of a props-file of the Utils-class is used, otherwise it's tried to load the specified file
    void
    sets the file to get the information about the packages from.
    void
    sets the file to output the properties for the GEO to
    boolean
    gets whether the dynamic approach should be used or not

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • VERBOSE

      public static final boolean VERBOSE
      whether to output some debug information
      See Also:
    • USE_DYNAMIC

      public static final String USE_DYNAMIC
      name of property whether to use the dynamic approach or the old GenericObjectEditor.props file
      See Also:
  • Constructor Details

    • GenericPropertiesCreator

      public GenericPropertiesCreator() throws Exception
      initializes the creator, locates the props file with the Utils class.
      Throws:
      Exception - if loading of CREATOR_FILE fails
      See Also:
    • GenericPropertiesCreator

      public GenericPropertiesCreator(String filename) throws Exception
      initializes the creator, the given file overrides the props-file search of the Utils class
      Parameters:
      filename - the file containing the packages to create a props file from
      Throws:
      Exception - if loading of the file fails
      See Also:
  • Method Details

    • getGlobalOutputProperties

      public static Properties getGlobalOutputProperties()
      Get the global output properties
      Returns:
      the global output properties
    • getGlobalInputProperties

      public static Properties getGlobalInputProperties()
      Get the global input properties
      Returns:
      the global input properties
    • regenerateGlobalOutputProperties

      public static void regenerateGlobalOutputProperties()
      Regenerate the global output properties. Does not load the input properties, instead uses the GLOBAL_INPUT_PROPERTIES
    • setExplicitPropsFile

      public void setExplicitPropsFile(boolean value)
      if FALSE, the locating of a props-file of the Utils-class is used, otherwise it's tried to load the specified file
      Parameters:
      value - if true the specified file will be loaded not via the Utils-class
      See Also:
    • getExplicitPropsFile

      public boolean getExplicitPropsFile()
      returns TRUE, if a file is loaded and not the Utils class used for locating the props file.
      Returns:
      true if the specified file is used and not the one found by the Utils class
      See Also:
    • getOutputFilename

      public String getOutputFilename()
      returns the name of the output file
      Returns:
      the name of the output file
    • setOutputFilename

      public void setOutputFilename(String filename)
      sets the file to output the properties for the GEO to
      Parameters:
      filename - the filename for the output
    • getInputFilename

      public String getInputFilename()
      returns the name of the input file
      Returns:
      the name of the input file
    • setInputFilename

      public void setInputFilename(String filename)
      sets the file to get the information about the packages from. automatically sets explicitPropsFile to TRUE.
      Parameters:
      filename - the filename for the input
      See Also:
    • getInputProperties

      public Properties getInputProperties()
      returns the input properties object (template containing the packages)
      Returns:
      the input properties (the template)
    • getOutputProperties

      public Properties getOutputProperties()
      returns the output properties object (structure like the template, but filled with classes instead of packages)
      Returns:
      the output properties (filled with classes)
    • useDynamic

      public boolean useDynamic()
      gets whether the dynamic approach should be used or not
      Returns:
      true if the dynamic approach is to be used
    • execute

      public void execute() throws Exception
      generates the props-file for the GenericObjectEditor and stores it
      Throws:
      Exception - if something goes wrong
      See Also:
    • execute

      public void execute(boolean store) throws Exception
      generates the props-file for the GenericObjectEditor
      Parameters:
      store - true if the generated props should be stored
      Throws:
      Exception
    • execute

      public void execute(boolean store, boolean loadInputProps) throws Exception
      generates the props-file for the GenericObjectEditor and stores it only if the the param store is TRUE. If it is FALSE then the generated properties file can be retrieved via the getOutputProperties method.
      Parameters:
      store - if TRUE then the properties file is stored to the stored filename
      loadInputProps - true if the input properties should be loaded
      Throws:
      Exception - if something goes wrong
      See Also:
    • main

      public static void main(String[] args) throws Exception
      for generating props file:
      • no parameter: see default constructor
      • 1 parameter (i.e., filename): see default constructor + setOutputFilename(String)
      • 2 parameters (i.e, filenames): see constructor with String argument + setOutputFilename(String)
      Parameters:
      args - the commandline arguments
      Throws:
      Exception - if something goes wrong
      See Also: