|
![]() 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.Editor
An Editor is used to edit a number of classes, namely their class information, methods, and fields. Consequently, it manages and delegates a number of its responsibilities to ClassEditor, FieldEditor, and MethodEditor objects.
Various methods are provided to obtain editing objects from reflection objects. When editing is complete, classes, fields, and methods are "committed": changes made to the class/field/method are written back to where they came from.
| Field Summary | |
(package private) java.util.Map |
classCache
|
(package private) java.util.Collection |
classes
|
(package private) java.util.Map |
classRC
|
static boolean |
DEBUG
|
(package private) java.util.Map |
fieldCache
|
(package private) java.util.Map |
fieldRC
|
(package private) EDU.purdue.cs.bloat.editor.ClassHierarchy |
hier
|
(package private) EDU.purdue.cs.bloat.reflect.ClassInfoLoader |
loader
|
(package private) java.util.Map |
methodCache
|
(package private) java.util.Map |
methodRC
|
| Constructor Summary | |
Editor(EDU.purdue.cs.bloat.reflect.ClassInfoLoader loader,
java.util.Collection classes)
Constructor. |
|
| Method Summary | |
void |
commit()
Commit any changes to all classes in the cache. |
void |
commit(EDU.purdue.cs.bloat.reflect.ClassInfo info)
Commits changes made to a class. |
void |
commit(EDU.purdue.cs.bloat.reflect.FieldInfo info)
|
void |
commit(EDU.purdue.cs.bloat.reflect.MethodInfo info)
|
EDU.purdue.cs.bloat.editor.ClassEditor |
editClass(EDU.purdue.cs.bloat.reflect.ClassInfo info)
Obtains the ClassEditor corresponding to a given ClassInfo object. |
EDU.purdue.cs.bloat.editor.ClassEditor |
editClass(java.lang.String name)
|
EDU.purdue.cs.bloat.editor.ClassEditor |
editClass(EDU.purdue.cs.bloat.editor.Type name)
Obtains the ClassEditor for a class of a given name. |
EDU.purdue.cs.bloat.editor.FieldEditor |
editField(EDU.purdue.cs.bloat.reflect.FieldInfo info)
Obtains the FieldEditor corresponding to a given FieldInfo |
EDU.purdue.cs.bloat.editor.FieldEditor |
editField(EDU.purdue.cs.bloat.editor.MemberRef field)
|
EDU.purdue.cs.bloat.editor.MethodEditor |
editMethod(EDU.purdue.cs.bloat.editor.MemberRef method)
|
EDU.purdue.cs.bloat.editor.MethodEditor |
editMethod(EDU.purdue.cs.bloat.reflect.MethodInfo info)
|
EDU.purdue.cs.bloat.editor.ClassHierarchy |
getHierarchy()
Returns the ClassHierarchy for all of the classes that this Editor knows about. |
EDU.purdue.cs.bloat.reflect.ClassInfo |
loadClass(java.lang.String name)
|
EDU.purdue.cs.bloat.editor.ClassEditor |
newClass(int modifiers,
java.lang.String className,
EDU.purdue.cs.bloat.editor.Type superType,
EDU.purdue.cs.bloat.editor.Type[] interfaces)
|
EDU.purdue.cs.bloat.reflect.ClassInfo |
newClassInfo(int m,
int classIndex,
int superClassIndex,
int[] interfaceIndexes,
java.util.List constants)
|
void |
release(EDU.purdue.cs.bloat.reflect.ClassInfo info)
|
void |
release(EDU.purdue.cs.bloat.reflect.FieldInfo info)
|
void |
release(EDU.purdue.cs.bloat.reflect.MethodInfo info)
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
public static boolean DEBUG
EDU.purdue.cs.bloat.reflect.ClassInfoLoader loader
EDU.purdue.cs.bloat.editor.ClassHierarchy hier
java.util.Collection classes
java.util.Map classCache
java.util.Map methodCache
java.util.Map fieldCache
java.util.Map classRC
java.util.Map methodRC
java.util.Map fieldRC
| Constructor Detail |
public Editor(EDU.purdue.cs.bloat.reflect.ClassInfoLoader loader,
java.util.Collection classes)
loader - The ClassInfoLoader to use to load classes.classes - The names of the classes to load.| Method Detail |
public void commit(EDU.purdue.cs.bloat.reflect.ClassInfo info)
commit in interface EDU.purdue.cs.bloat.editor.EditorContextpublic void commit()
commit in interface EDU.purdue.cs.bloat.editor.EditorContextpublic void commit(EDU.purdue.cs.bloat.reflect.MethodInfo info)
commit in interface EDU.purdue.cs.bloat.editor.EditorContextpublic void commit(EDU.purdue.cs.bloat.reflect.FieldInfo info)
commit in interface EDU.purdue.cs.bloat.editor.EditorContextpublic EDU.purdue.cs.bloat.editor.ClassEditor editClass(EDU.purdue.cs.bloat.reflect.ClassInfo info)
editClass in interface EDU.purdue.cs.bloat.editor.EditorContext
public EDU.purdue.cs.bloat.editor.ClassEditor editClass(EDU.purdue.cs.bloat.editor.Type name)
throws java.lang.ClassNotFoundException,
EDU.purdue.cs.bloat.reflect.ClassFormatException
editClass in interface EDU.purdue.cs.bloat.editor.EditorContextjava.lang.ClassNotFoundException
EDU.purdue.cs.bloat.reflect.ClassFormatException
public EDU.purdue.cs.bloat.editor.ClassEditor editClass(java.lang.String name)
throws java.lang.ClassNotFoundException,
EDU.purdue.cs.bloat.reflect.ClassFormatException
editClass in interface EDU.purdue.cs.bloat.editor.EditorContextjava.lang.ClassNotFoundException
EDU.purdue.cs.bloat.reflect.ClassFormatExceptionpublic EDU.purdue.cs.bloat.editor.FieldEditor editField(EDU.purdue.cs.bloat.reflect.FieldInfo info)
editField in interface EDU.purdue.cs.bloat.editor.EditorContext
public EDU.purdue.cs.bloat.editor.FieldEditor editField(EDU.purdue.cs.bloat.editor.MemberRef field)
throws java.lang.NoSuchFieldException
editField in interface EDU.purdue.cs.bloat.editor.EditorContextjava.lang.NoSuchFieldExceptionpublic EDU.purdue.cs.bloat.editor.MethodEditor editMethod(EDU.purdue.cs.bloat.reflect.MethodInfo info)
editMethod in interface EDU.purdue.cs.bloat.editor.EditorContext
public EDU.purdue.cs.bloat.editor.MethodEditor editMethod(EDU.purdue.cs.bloat.editor.MemberRef method)
throws java.lang.NoSuchMethodException
editMethod in interface EDU.purdue.cs.bloat.editor.EditorContextjava.lang.NoSuchMethodExceptionpublic EDU.purdue.cs.bloat.editor.ClassHierarchy getHierarchy()
getHierarchy in interface EDU.purdue.cs.bloat.editor.EditorContextpublic EDU.purdue.cs.bloat.reflect.ClassInfo loadClass(java.lang.String name)
loadClass in interface EDU.purdue.cs.bloat.editor.EditorContext
public EDU.purdue.cs.bloat.editor.ClassEditor newClass(int modifiers,
java.lang.String className,
EDU.purdue.cs.bloat.editor.Type superType,
EDU.purdue.cs.bloat.editor.Type[] interfaces)
newClass in interface EDU.purdue.cs.bloat.editor.EditorContext
public EDU.purdue.cs.bloat.reflect.ClassInfo newClassInfo(int m,
int classIndex,
int superClassIndex,
int[] interfaceIndexes,
java.util.List constants)
newClassInfo in interface EDU.purdue.cs.bloat.editor.EditorContextpublic void release(EDU.purdue.cs.bloat.reflect.MethodInfo info)
release in interface EDU.purdue.cs.bloat.editor.EditorContextpublic void release(EDU.purdue.cs.bloat.reflect.FieldInfo info)
release in interface EDU.purdue.cs.bloat.editor.EditorContextpublic void release(EDU.purdue.cs.bloat.reflect.ClassInfo info)
release in interface EDU.purdue.cs.bloat.editor.EditorContext
|
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 | |||||||||