public class ClassDiscovery extends Object implements RevisionHandler
ClassDiscovery.StringCompare
Modifier and Type | Class and Description |
---|---|
static class |
ClassDiscovery.StringCompare
compares two strings.
|
Modifier and Type | Field and Description |
---|---|
protected static Hashtable<String,Vector> |
m_Cache
for caching queries (classname+packagename <-> Vector with classnames).
|
static boolean |
VERBOSE
whether to output some debug information.
|
Constructor and Description |
---|
ClassDiscovery() |
Modifier and Type | Method and Description |
---|---|
protected static void |
addCache(Class cls,
String pkgname,
Vector classnames)
adds the list of classnames to the cache.
|
static void |
clearCache()
clears the cache for class/classnames relation.
|
static Vector |
find(Class cls,
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 Vector |
find(Class cls,
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 Vector |
find(String classname,
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 Vector |
find(String classname,
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 Vector |
findPackages()
Lists all packages it can find in the classpath.
|
protected static Vector |
getCache(Class cls,
String pkgname)
returns the list of classnames associated with this class and package, if
available, otherwise null.
|
String |
getRevision()
Returns the revision string.
|
protected static HashSet |
getSubDirectories(String prefix,
File dir,
HashSet list)
adds all the sub-directories recursively to the list.
|
protected static URL |
getURL(String classpathPart,
String pkgname)
If the given package can be found in this part of the classpath then
an URL object is returned, otherwise
null . |
static boolean |
hasInterface(Class intf,
Class cls)
Checks whether the given class implements the given interface.
|
static boolean |
hasInterface(String intf,
String cls)
Checks whether the given class implements the given interface.
|
protected static void |
initCache()
initializes the cache for the classnames.
|
static boolean |
isSubclass(Class superclass,
Class otherclass)
Checks whether the "otherclass" is a subclass of the given "superclass".
|
static boolean |
isSubclass(String superclass,
String otherclass)
Checks whether the "otherclass" is a subclass of the given "superclass".
|
static void |
main(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. |
public static final boolean VERBOSE
public static boolean isSubclass(String superclass, String otherclass)
superclass
- the superclass to check againstotherclass
- this class is checked whether it is a subclass
of the the superclasspublic static boolean isSubclass(Class superclass, Class otherclass)
superclass
- the superclass to check againstotherclass
- this class is checked whether it is a subclass
of the the superclasspublic static boolean hasInterface(String intf, String cls)
intf
- the interface to look for in the given classcls
- the class to check for the interfacepublic static boolean hasInterface(Class intf, Class cls)
intf
- the interface to look for in the given classcls
- the class to check for the interfaceprotected static URL getURL(String classpathPart, String pkgname)
null
.classpathPart
- the part of the classpath to look for the packagepkgname
- the package to look forpublic static Vector find(String classname, String[] pkgnames)
classname
- the class/interface to look forpkgnames
- the packages to search inpublic static Vector find(String classname, String pkgname)
classname
- the class/interface to look forpkgname
- the package to search inpublic static Vector find(Class cls, String[] pkgnames)
cls
- the class/interface to look forpkgnames
- the packages to search inpublic static Vector find(Class cls, String pkgname)
cls
- the class/interface to look forpkgname
- the package to search inprotected static HashSet getSubDirectories(String prefix, File dir, HashSet list)
prefix
- the path prefixdir
- the directory to look in for sub-dirslist
- the current list of sub-dirspublic static Vector findPackages()
protected static void initCache()
protected static void addCache(Class cls, String pkgname, Vector classnames)
cls
- the class to cache the classnames forpkgname
- the package name the classes were found inclassnames
- the list of classnames to cacheprotected static Vector getCache(Class cls, String pkgname)
cls
- the class to get the classnames forpkgname
- the package name for the classespublic static void clearCache()
public String getRevision()
getRevision
in interface RevisionHandler
public static void main(String[] args)
args
- the commandline argumentsCopyright © 2015 University of Waikato, Hamilton, NZ. All rights reserved.