From a34a837696727733e99b7d6b143e5881cf5090c2 Mon Sep 17 00:00:00 2001 From: hoenicke Date: Mon, 3 Jul 2000 12:56:02 +0000 Subject: [PATCH] The package description. git-svn-id: https://svn.code.sf.net/p/jode/code/trunk@1246 379699f6-c40d-0410-875b-85095c16579e --- jode/jode/bytecode/package.html | 85 +++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 jode/jode/bytecode/package.html diff --git a/jode/jode/bytecode/package.html b/jode/jode/bytecode/package.html new file mode 100644 index 0000000..1ae5b55 --- /dev/null +++ b/jode/jode/bytecode/package.html @@ -0,0 +1,85 @@ + + + + + JODE Bytecode Package + + + +Provides easy access to class files and their contents. To use it you +create a ClassPath object giving it the locations where +it should search for classes. Then you can ask this object for a +class and get a ClassInfo object. As third step you can actually load +the class.

+ +Please notify me if you want to use this package. I will inform you +about updates, help you with problems, etc. WARNING: This +package may change in the future in incompatible ways. Ask me for +more information.

+ +BIG FAT WARNING: Some of the things documented here aren't even +implemented. Some of this is only vapor ware. But feel free to +comment on this and point me to design errors!

+ +Here is a short example, how you can use this package, see the +documentation of the classes for more details. +
+ ...
+ ClassPath path = new ClassPath("/usr/lib/java/lib/classes.zip");
+ ClassInfo clazz = path.getClassInfo("java.util.Hashtable");
+
+ try {
+   clazz.load(ClassInfo.DECLARATIONS);
+ } catch (ClassFormatException ex) {
+   System.err.println("Something is wrong with HashTable, giving up!");
+   return;
+ } catch (IOException ex) {
+   System.err.println("Can't load HashTable, giving up!");
+   return;
+ }
+
+ MethodInfo[] methods = clazz.getMethods();
+ for (int i=0; i< methods.length; i++) {
+     String type = methods[i].getType();
+     if (TypeSignature.getReturnType(type) == TypeSignature.INT_TYPE)
+         System.out.println("Found integer method: "+method.getName());
+ }
+ ...
+
+ +You can also use this package to create and write new classes: +
+ ...
+ ClassPath path = new ClassPath("/usr/lib/java/lib/classes.zip");
+ ClassInfo clazz = path.getClassInfo("my.new.Class");
+ clazz.setModifiers(Modifiers.PUBLIC);
+ clazz.setSourceFile("Class.pl");
+ clazz.set...
+ clazz.write(zipOutputStream);
+ ...
+
+ +
+
Jochen Hoenicke
+ + +Last modified: Mon Jun 26 09:46:24 MET DST 2000 + + +