|
SandMark version 2.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) Time |
bmTime
|
(package private) Time |
bTime
|
(package private) ClassFileCollection |
cfc
|
(package private) java.util.Hashtable |
class2Node
|
(package private) Time |
jmTime
|
(package private) Time |
jTime
|
(package private) java.util.Properties |
props
|
(package private) Graph |
tree
|
Constructor Summary | |
ClassHierarchy(ClassFileCollection cfc,
java.util.Properties props)
Build a class hierarchy tree from the classes in cfc. |
Method Summary | |
(package private) Node |
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) Node |
build(java.lang.String className)
|
(package private) Node |
buildJava(java.lang.String className)
|
(package private) Node |
buildUser(java.lang.String className)
|
(package private) void |
buildUserTree()
|
boolean |
classExtends(java.lang.String subClass,
java.lang.String superClass)
|
(package private) Node |
construct(ClassHierarchyData data,
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(Node node)
|
Node |
lookup(java.lang.String className)
|
static void |
main(java.lang.String[] args)
|
boolean |
methodRenameOK(MethodID origMethod,
MethodID newMethod)
Return true 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)
|
(package private) void |
superClasses(java.lang.String subClass,
java.util.Vector res)
|
static void |
test1()
|
static void |
test2(java.lang.String[] args)
|
(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 |
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
Time bTime
Time bmTime
Time jTime
Time jmTime
Constructor Detail |
public ClassHierarchy(ClassFileCollection cfc, java.util.Properties props) throws java.io.IOException
Method Detail |
void build() throws java.io.IOException
java.io.IOException
Node build(java.lang.String className)
Node addNode(java.lang.String className)
Node buildUser(java.lang.String className) throws java.lang.Exception
java.lang.Exception
java.lang.String fixJavaType(java.lang.String T)
Node buildJava(java.lang.String className) throws java.lang.Exception
java.lang.Exception
Node construct(ClassHierarchyData data, 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 Node lookup(java.lang.String className)
public boolean isSpecialClass(java.lang.String className)
public boolean isInterface(java.lang.String className)
public MethodID[] getMethods(java.lang.String className)
void buildUserTree() throws java.io.IOException
java.io.IOException
MethodID[] loadUserMethods(Node node) throws java.lang.Exception
java.lang.Exception
public boolean classExtends(java.lang.String subClass, java.lang.String superClass)
void superClasses(java.lang.String subClass, java.util.Vector res)
public java.lang.String[] superClasses(java.lang.String subClass)
void subClasses(java.lang.String superClass, java.util.Vector res)
public java.lang.String[] subClasses(java.lang.String superClass)
public java.lang.String[] inheritanceChain(java.lang.String Class)
public boolean overrides(MethodID subMethod, MethodID superMethod)
public boolean overloads(MethodID subMethod, MethodID superMethod)
public MethodID[] overrides(MethodID subMethod)
public MethodID[] allOverrides(MethodID method)
public MethodID[] allOverloads(MethodID method)
public boolean methodRenameOK(MethodID origMethod, java.lang.String newName)
origMethod
- the method to renamenewName
- the proposed new name
public boolean methodRenameOK(MethodID origMethod, MethodID newMethod)
public boolean overridesJavaMethod(MethodID suspect)
suspect
- the method in question
public boolean isSpecialMethod(MethodID origMethod)
origMethod
- the method in question
public MethodID[] getMethodsToRename(MethodID origMethod)
static void testExtends(ClassHierarchy ch, java.lang.String subClass, java.lang.String superClass)
static void testSuperClasses(ClassHierarchy ch, java.lang.String subClass)
static void testSubClasses(ClassHierarchy ch, java.lang.String superClass)
static void testInheritanceChain(ClassHierarchy ch, java.lang.String Class)
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)
static void testOverrides(ClassHierarchy ch, java.lang.String subName, java.lang.String subSig, java.lang.String subClass)
static void testAllOverrides(ClassHierarchy ch, java.lang.String subName, java.lang.String subSig, java.lang.String subClass)
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)
static void testGetMethodsToRename(ClassHierarchy ch, java.lang.String origName, java.lang.String origSig, java.lang.String origClass)
public static void test1() throws java.io.IOException
java.io.IOException
public static void test2(java.lang.String[] args) throws java.io.IOException
java.io.IOException
public static void main(java.lang.String[] args) throws java.io.IOException
java.io.IOException
|
SandMark version 2.0 Mon Jun 17 12:30:47 MST 2002 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |