edu.northwestern.at.utils
Class ClassHelpers

java.lang.Object
  extended by edu.northwestern.at.utils.ClassHelpers

public class ClassHelpers
extends java.lang.Object

Java class helpers.

Provides methods for unmangling class names and retrieving information about classes (subclasses, interfaces implemented, etc.).

See also DynamicCall which allows dynamic loading of a class method with parameters from a named class.


Constructor Summary
ClassHelpers()
           
 
Method Summary
static boolean classImplements(java.lang.String className, java.lang.String interfaceName)
          Check if class implements specified interface.
static java.lang.String[] getClasses(java.lang.Class infoClass)
          Get classes for a class.
static java.lang.String[] getConstructors(java.lang.Class infoClass)
          Gets constructors for a class.
static java.lang.String[] getFields(java.lang.Class infoClass)
          Get fields for a class.
static java.lang.String[] getInterfaces(java.lang.Class infoClass)
          Gets interfaces for a class.
static java.lang.String[] getMethods(java.lang.Class infoClass)
          Get methods for a class.
static java.lang.String[] getSigners(java.lang.Class infoClass)
          Get signers for a class.
static java.lang.String trimClassName(java.lang.String name)
          Removes class modifiers, leaving only the class name.
static java.lang.String unmangleJavaName(java.lang.String name)
          Convert a mangled java name to the normal Java syntax equivalent.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ClassHelpers

public ClassHelpers()
Method Detail

unmangleJavaName

public static java.lang.String unmangleJavaName(java.lang.String name)
Convert a mangled java name to the normal Java syntax equivalent.

Parameters:
name - The mangled name.
Returns:
The unmangled name.

Arrays are indicated by one or more '[' characters (the count indicates the number of "[]" pairs), followed by a single upper-case letter denoting the array type.


trimClassName

public static java.lang.String trimClassName(java.lang.String name)
Removes class modifiers, leaving only the class name.

Parameters:
name - The class name plus modifiers, if any.
Returns:
The class name stripped of modifiers.

getInterfaces

public static java.lang.String[] getInterfaces(java.lang.Class infoClass)
Gets interfaces for a class.

Parameters:
infoClass - Class for which interfaces are wanted.
Returns:
String array of interfaces.

getConstructors

public static java.lang.String[] getConstructors(java.lang.Class infoClass)
Gets constructors for a class.

Parameters:
infoClass - Class for which constructors are wanted.
Returns:
String array of constructors.

getMethods

public static java.lang.String[] getMethods(java.lang.Class infoClass)
Get methods for a class.

Parameters:
infoClass - Class for which methods are wanted.
Returns:
String array of methods.

getFields

public static java.lang.String[] getFields(java.lang.Class infoClass)
Get fields for a class.

Parameters:
infoClass - Class for which fields are wanted.
Returns:
String array of field names with modifiers.

getSigners

public static java.lang.String[] getSigners(java.lang.Class infoClass)
Get signers for a class.

Parameters:
infoClass - Class for which signers are wanted.
Returns:
String array of signers.

getClasses

public static java.lang.String[] getClasses(java.lang.Class infoClass)
Get classes for a class.

Parameters:
infoClass - Class for which classes are wanted.
Returns:
String array of classes.

classImplements

public static boolean classImplements(java.lang.String className,
                                      java.lang.String interfaceName)
                               throws java.lang.ClassNotFoundException
Check if class implements specified interface.

Parameters:
className - Class name.
interfaceName - Interface name.
Returns:
True if class implements interface.
Throws:
java.lang.ClassNotFoundException