|
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.EditorContext
public void commit()
commit
in interface EDU.purdue.cs.bloat.editor.EditorContext
public void commit(EDU.purdue.cs.bloat.reflect.MethodInfo info)
commit
in interface EDU.purdue.cs.bloat.editor.EditorContext
public void commit(EDU.purdue.cs.bloat.reflect.FieldInfo info)
commit
in interface EDU.purdue.cs.bloat.editor.EditorContext
public 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.EditorContext
java.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.EditorContext
java.lang.ClassNotFoundException
EDU.purdue.cs.bloat.reflect.ClassFormatException
public 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.EditorContext
java.lang.NoSuchFieldException
public 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.EditorContext
java.lang.NoSuchMethodException
public EDU.purdue.cs.bloat.editor.ClassHierarchy getHierarchy()
getHierarchy
in interface EDU.purdue.cs.bloat.editor.EditorContext
public 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.EditorContext
public void release(EDU.purdue.cs.bloat.reflect.MethodInfo info)
release
in interface EDU.purdue.cs.bloat.editor.EditorContext
public void release(EDU.purdue.cs.bloat.reflect.FieldInfo info)
release
in interface EDU.purdue.cs.bloat.editor.EditorContext
public 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 |