|
SandMark version 3.0 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--sandmark.util.ClassHierarchy
Field Summary | |
(package private) ClassFileCollection |
cfc
|
(package private) java.util.Hashtable |
class2Node
|
(package private) java.util.Properties |
props
|
(package private) Graph |
tree
|
Constructor Summary | |
ClassHierarchy()
Null constructor, used for testing purposes. |
|
ClassHierarchy(ClassFileCollection cfc)
|
|
ClassHierarchy(ClassFileCollection cfc,
java.util.Properties props)
Build a class hierarchy tree from the classes in cfc. |
Method Summary | |
(package private) ClassHierarchyNode |
addNode(java.lang.String className)
|
MethodID[] |
allOverloads(MethodID method)
|
MethodID[] |
allOverrides(MethodID method)
Return all methods overridden by 'method' or which it overrides. |
(package private) void |
build()
|
(package private) ClassHierarchyNode |
build(java.lang.String className)
|
(package private) ClassHierarchyNode |
buildJava(java.lang.String className)
|
(package private) ClassHierarchyNode |
buildUser(java.lang.String className)
|
(package private) void |
buildUserTree()
|
boolean |
classExtends(java.lang.String subClass,
java.lang.String superClass)
|
(package private) ClassHierarchyNode |
construct(ClassHierarchyNode node,
java.lang.String className,
java.lang.String superClass,
boolean isInterface,
java.lang.String[] interfaceClasses,
MethodID[] methodIDs)
|
(package private) java.lang.String |
fixJavaType(java.lang.String T)
|
MethodID[] |
getMethods(java.lang.String className)
|
MethodID[] |
getMethodsToRename(MethodID origMethod)
|
java.lang.String[] |
inheritanceChain(java.lang.String Class)
|
boolean |
isInterface(java.lang.String className)
|
boolean |
isSpecialClass(java.lang.String className)
Return true if this is a class we cannot edit, for example one of the standard Java classes. |
boolean |
isSpecialMethod(MethodID origMethod)
Checks if the method is a special java method, such as the main method, or an initializer. |
(package private) MethodID[] |
loadUserMethods(ClassHierarchyNode node)
|
ClassHierarchyNode |
lookup(java.lang.String className)
|
static void |
main(java.lang.String[] args)
|
boolean |
methodRenameOK(MethodID origMethod,
MethodID newMethod)
Return false if 'origMethod' is special in some way, i.e. we cannot change its name or signature into 'newMethod'. |
boolean |
methodRenameOK(MethodID origMethod,
java.lang.String newName)
A convenience version of methodRenameOK(MethodID, MethodID) that is used to test to see if a new method name is ok, given that nothing else about the method changes. |
boolean |
overloads(MethodID subMethod,
MethodID superMethod)
|
MethodID[] |
overrides(MethodID subMethod)
|
boolean |
overrides(MethodID subMethod,
MethodID superMethod)
|
boolean |
overridesJavaMethod(MethodID suspect)
Checks if the method overrides some method (directly or indirectly) in the java.* hierarchy. |
java.lang.String[] |
subClasses(java.lang.String superClass)
|
(package private) void |
subClasses(java.lang.String superClass,
java.util.Vector res)
|
java.lang.String[] |
superClasses(java.lang.String subClass)
Return all the classes that extend superClass, directly or indirectly. |
(package private) void |
superClasses(java.lang.String subClass,
java.util.Vector res)
Return all the classes that subClass extends, directly or indirectly. |
static void |
test1()
|
static void |
test2(ClassHierarchy ch)
|
(package private) static void |
testAllOverrides(ClassHierarchy ch,
java.lang.String subName,
java.lang.String subSig,
java.lang.String subClass)
|
(package private) static void |
testExtends(ClassHierarchy ch,
java.lang.String subClass,
java.lang.String superClass)
|
(package private) static void |
testGetMethodsToRename(ClassHierarchy ch,
java.lang.String origName,
java.lang.String origSig,
java.lang.String origClass)
|
(package private) static void |
testInheritanceChain(ClassHierarchy ch,
java.lang.String Class)
|
(package private) static void |
testMethodRenameOK(ClassHierarchy ch,
java.lang.String origName,
java.lang.String origSig,
java.lang.String origClass,
java.lang.String newName,
java.lang.String newSig,
java.lang.String newClass)
|
(package private) static void |
testOverrides(ClassHierarchy ch,
java.lang.String subName,
java.lang.String subSig,
java.lang.String subClass)
|
(package private) static void |
testOverrides(ClassHierarchy ch,
java.lang.String subName,
java.lang.String subSig,
java.lang.String subClass,
java.lang.String superName,
java.lang.String superSig,
java.lang.String superClass)
|
(package private) static void |
testSubClasses(ClassHierarchy ch,
java.lang.String superClass)
|
(package private) static void |
testSuperClasses(ClassHierarchy ch,
java.lang.String subClass)
|
java.lang.String |
toDot()
|
java.lang.String |
toString()
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
java.util.Properties props
ClassFileCollection cfc
Graph tree
java.util.Hashtable class2Node
Constructor Detail |
public ClassHierarchy()
public ClassHierarchy(ClassFileCollection cfc, java.util.Properties props) throws java.io.IOException
public ClassHierarchy(ClassFileCollection cfc) throws java.io.IOException
Method Detail |
public java.lang.String toDot()
void build() throws java.io.IOException
java.io.IOException
ClassHierarchyNode build(java.lang.String className)
ClassHierarchyNode addNode(java.lang.String className)
ClassHierarchyNode buildUser(java.lang.String className) throws java.lang.Exception
java.lang.Exception
java.lang.String fixJavaType(java.lang.String T)
ClassHierarchyNode buildJava(java.lang.String className) throws java.lang.Exception
java.lang.Exception
ClassHierarchyNode construct(ClassHierarchyNode node, java.lang.String className, java.lang.String superClass, boolean isInterface, java.lang.String[] interfaceClasses, MethodID[] methodIDs) throws java.lang.Exception
java.lang.Exception
public java.lang.String toString()
toString
in class java.lang.Object
public ClassHierarchyNode lookup(java.lang.String className) throws ClassHierarchyException
ClassHierarchyException
public boolean isSpecialClass(java.lang.String className) throws ClassHierarchyException
ClassHierarchyException
public boolean isInterface(java.lang.String className) throws ClassHierarchyException
ClassHierarchyException
public MethodID[] getMethods(java.lang.String className) throws ClassHierarchyException
ClassHierarchyException
void buildUserTree() throws java.io.IOException
java.io.IOException
MethodID[] loadUserMethods(ClassHierarchyNode node) throws java.lang.Exception
java.lang.Exception
public boolean classExtends(java.lang.String subClass, java.lang.String superClass) throws ClassHierarchyException
ClassHierarchyException
void superClasses(java.lang.String subClass, java.util.Vector res) throws ClassHierarchyException
ClassHierarchyException
public java.lang.String[] superClasses(java.lang.String subClass) throws ClassHierarchyException
ClassHierarchyException
void subClasses(java.lang.String superClass, java.util.Vector res) throws ClassHierarchyException
ClassHierarchyException
public java.lang.String[] subClasses(java.lang.String superClass) throws ClassHierarchyException
ClassHierarchyException
public java.lang.String[] inheritanceChain(java.lang.String Class) throws ClassHierarchyException
ClassHierarchyException
public boolean overrides(MethodID subMethod, MethodID superMethod) throws ClassHierarchyException
ClassHierarchyException
public boolean overloads(MethodID subMethod, MethodID superMethod) throws ClassHierarchyException
ClassHierarchyException
public MethodID[] overrides(MethodID subMethod) throws ClassHierarchyException
ClassHierarchyException
public MethodID[] allOverrides(MethodID method) throws ClassHierarchyException
ClassHierarchyException
public MethodID[] allOverloads(MethodID method) throws ClassHierarchyException
ClassHierarchyException
public boolean methodRenameOK(MethodID origMethod, java.lang.String newName) throws ClassHierarchyException
origMethod
- the method to renamenewName
- the proposed new name
ClassHierarchyException
public boolean methodRenameOK(MethodID origMethod, MethodID newMethod) throws ClassHierarchyException
ClassHierarchyException
public boolean overridesJavaMethod(MethodID suspect) throws ClassHierarchyException
suspect
- the method in question
ClassHierarchyException
public boolean isSpecialMethod(MethodID origMethod) throws ClassHierarchyException
origMethod
- the method in question
ClassHierarchyException
public MethodID[] getMethodsToRename(MethodID origMethod) throws ClassHierarchyException
ClassHierarchyException
static void testExtends(ClassHierarchy ch, java.lang.String subClass, java.lang.String superClass) throws ClassHierarchyException
ClassHierarchyException
static void testSuperClasses(ClassHierarchy ch, java.lang.String subClass) throws ClassHierarchyException
ClassHierarchyException
static void testSubClasses(ClassHierarchy ch, java.lang.String superClass) throws ClassHierarchyException
ClassHierarchyException
static void testInheritanceChain(ClassHierarchy ch, java.lang.String Class) throws ClassHierarchyException
ClassHierarchyException
static void testOverrides(ClassHierarchy ch, java.lang.String subName, java.lang.String subSig, java.lang.String subClass, java.lang.String superName, java.lang.String superSig, java.lang.String superClass) throws ClassHierarchyException
ClassHierarchyException
static void testOverrides(ClassHierarchy ch, java.lang.String subName, java.lang.String subSig, java.lang.String subClass) throws ClassHierarchyException
ClassHierarchyException
static void testAllOverrides(ClassHierarchy ch, java.lang.String subName, java.lang.String subSig, java.lang.String subClass) throws ClassHierarchyException
ClassHierarchyException
static void testMethodRenameOK(ClassHierarchy ch, java.lang.String origName, java.lang.String origSig, java.lang.String origClass, java.lang.String newName, java.lang.String newSig, java.lang.String newClass) throws ClassHierarchyException
ClassHierarchyException
static void testGetMethodsToRename(ClassHierarchy ch, java.lang.String origName, java.lang.String origSig, java.lang.String origClass) throws ClassHierarchyException
ClassHierarchyException
public static void test1() throws java.io.IOException, ClassHierarchyException
java.io.IOException
ClassHierarchyException
public static void test2(ClassHierarchy ch) throws java.io.IOException, ClassHierarchyException
java.io.IOException
ClassHierarchyException
public static void main(java.lang.String[] args) throws java.io.IOException, ClassHierarchyException
java.io.IOException
ClassHierarchyException
|
SandMark version 3.0 Wed Jan 29 10:30:05 MST 2003 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |