weka.core
Class ClassDiscovery

java.lang.Object
  extended by weka.core.ClassDiscovery

public class ClassDiscovery
extends java.lang.Object

This class is used for discovering classes that implement a certain interface or a derived from a certain class.

Version:
$Revision: 1.6 $
Author:
FracPete (fracpete at waikato dot ac dot nz)
See Also:
ClassDiscovery.StringCompare

Nested Class Summary
static class ClassDiscovery.StringCompare
          compares two strings.
 
Field Summary
static boolean VERBOSE
          whether to output some debug information.
 
Constructor Summary
ClassDiscovery()
           
 
Method Summary
static void clearCache()
          clears the cache for class/classnames relation.
static java.util.Vector find(java.lang.Class cls, java.lang.String pkgname)
          Checks the given package for classes that inherited from the given class, in case it's a class, or implement this class, in case it's an interface.
static java.util.Vector find(java.lang.Class cls, java.lang.String[] pkgnames)
          Checks the given packages for classes that inherited from the given class, in case it's a class, or implement this class, in case it's an interface.
static java.util.Vector find(java.lang.String classname, java.lang.String pkgname)
          Checks the given package for classes that inherited from the given class, in case it's a class, or implement this class, in case it's an interface.
static java.util.Vector find(java.lang.String classname, java.lang.String[] pkgnames)
          Checks the given packages for classes that inherited from the given class, in case it's a class, or implement this class, in case it's an interface.
static java.util.Vector findPackages()
          Lists all packages it can find in the classpath.
static boolean hasInterface(java.lang.Class intf, java.lang.Class cls)
          Checks whether the given class implements the given interface.
static boolean hasInterface(java.lang.String intf, java.lang.String cls)
          Checks whether the given class implements the given interface.
static boolean isSubclass(java.lang.Class superclass, java.lang.Class otherclass)
          Checks whether the "otherclass" is a subclass of the given "superclass".
static boolean isSubclass(java.lang.String superclass, java.lang.String otherclass)
          Checks whether the "otherclass" is a subclass of the given "superclass".
static void main(java.lang.String[] args)
          Possible calls: weka.core.ClassDiscovery <packages>
Prints all the packages in the current classpath weka.core.ClassDiscovery <classname> <packagename(s)>
Prints the classes it found.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

VERBOSE

public static final boolean VERBOSE
whether to output some debug information.

See Also:
Constant Field Values
Constructor Detail

ClassDiscovery

public ClassDiscovery()
Method Detail

isSubclass

public static boolean isSubclass(java.lang.String superclass,
                                 java.lang.String otherclass)
Checks whether the "otherclass" is a subclass of the given "superclass".

Parameters:
superclass - the superclass to check against
otherclass - this class is checked whether it is a subclass of the the superclass
Returns:
TRUE if "otherclass" is a true subclass

isSubclass

public static boolean isSubclass(java.lang.Class superclass,
                                 java.lang.Class otherclass)
Checks whether the "otherclass" is a subclass of the given "superclass".

Parameters:
superclass - the superclass to check against
otherclass - this class is checked whether it is a subclass of the the superclass
Returns:
TRUE if "otherclass" is a true subclass

hasInterface

public static boolean hasInterface(java.lang.String intf,
                                   java.lang.String cls)
Checks whether the given class implements the given interface.

Parameters:
intf - the interface to look for in the given class
cls - the class to check for the interface
Returns:
TRUE if the class contains the interface

hasInterface

public static boolean hasInterface(java.lang.Class intf,
                                   java.lang.Class cls)
Checks whether the given class implements the given interface.

Parameters:
intf - the interface to look for in the given class
cls - the class to check for the interface
Returns:
TRUE if the class contains the interface

find

public static java.util.Vector find(java.lang.String classname,
                                    java.lang.String[] pkgnames)
Checks the given packages for classes that inherited from the given class, in case it's a class, or implement this class, in case it's an interface.

Parameters:
classname - the class/interface to look for
pkgnames - the packages to search in
Returns:
a list with all the found classnames

find

public static java.util.Vector find(java.lang.String classname,
                                    java.lang.String pkgname)
Checks the given package for classes that inherited from the given class, in case it's a class, or implement this class, in case it's an interface.

Parameters:
classname - the class/interface to look for
pkgname - the package to search in
Returns:
a list with all the found classnames

find

public static java.util.Vector find(java.lang.Class cls,
                                    java.lang.String[] pkgnames)
Checks the given packages for classes that inherited from the given class, in case it's a class, or implement this class, in case it's an interface.

Parameters:
cls - the class/interface to look for
pkgnames - the packages to search in
Returns:
a list with all the found classnames

find

public static java.util.Vector find(java.lang.Class cls,
                                    java.lang.String pkgname)
Checks the given package for classes that inherited from the given class, in case it's a class, or implement this class, in case it's an interface.

Parameters:
cls - the class/interface to look for
pkgname - the package to search in
Returns:
a list with all the found classnames

findPackages

public static java.util.Vector findPackages()
Lists all packages it can find in the classpath.

Returns:
a list with all the found packages

clearCache

public static void clearCache()
clears the cache for class/classnames relation.


main

public static void main(java.lang.String[] args)
Possible calls:

Parameters:
args - the commandline arguments