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 RevisionHandlerpublic static void main(String[] args)
args - the commandline argumentsCopyright © 2015 University of Waikato, Hamilton, NZ. All rights reserved.