home *** CD-ROM | disk | FTP | other *** search
- package com.sfs.hardcore;
-
- import com.sfs.awt.treeview.Folder;
- import com.sfs.awt.treeview.TreeView;
- import com.sfs.awt.treeview.TreeViewException;
- import com.sfs.debug.Debug;
- import java.awt.BorderLayout;
- import java.awt.Container;
- import java.awt.Frame;
- import java.awt.Label;
- import java.awt.Panel;
- import java.io.ByteArrayInputStream;
- import java.io.DataInputStream;
- import java.io.FileInputStream;
- import java.io.IOException;
-
- public class classBrowser extends Panel {
- FileInputStream fis;
-
- public classBrowser(Frame var1, String var2) {
- ((Container)this).setLayout(new BorderLayout());
- ClassFile var3 = new ClassFile();
-
- try {
- this.fis = new FileInputStream(var2);
- } catch (IOException var16) {
- this.fis = null;
- ((Container)this).add("Center", new Label("Could'nt open classFile.", 1));
- return;
- }
-
- try {
- if (!var3.read(this.fis)) {
- throw new Exception();
- }
- } catch (Exception var18) {
- ((Container)this).add("Center", new Label("Could'nt read classFile.", 1));
- return;
- }
-
- try {
- String var4 = var3.printClassName(var3.thisClass.arg1.strValue);
- String var5 = var3.printClassName(var3.superClass.arg1.strValue);
- Object var6 = null;
- String var7 = ClassFile.accessString(var3.accessFlags) + "class " + var4 + " extends " + var5;
- TreeView var8 = new TreeView(var1, var7, (Object)null);
- var8.setAllowSelection(false);
- ((Container)this).add("Center", var8);
- if (!var3.isValidClass) {
- var8.addItem("This is not a valid class.", (Object)null);
- }
-
- if (var3.attributes != null) {
- Folder var9 = var8.addFolder("Optional attributes", (Object)null);
-
- for(int var12 = 0; var12 < var3.attributes.length; ++var12) {
- String var13 = var3.attributes[var12].name.strValue;
- DataInputStream var10 = new DataInputStream(new ByteArrayInputStream(var3.attributes[var12].data));
- if (var13.compareTo("SourceFile") == 0) {
- ConstantPoolInfo var11 = null;
-
- try {
- var11 = var3.constantPool[var10.readShort()];
- } catch (IOException var15) {
- }
-
- var13 = var13 + ": " + var11;
- } else {
- var13 = "Type " + var13;
- }
-
- var9.addItem(var13, (Object)null);
- }
- }
-
- Folder var19 = null;
-
- for(int var23 = 1; var23 < var3.constantPool.length; ++var23) {
- if (var3.constantPool[var23] != null && var3.constantPool[var23] != var3.thisClass && var3.constantPool[var23] != var3.superClass && var3.constantPool[var23].type == 7) {
- String var27 = var3.constantPool[var23].arg1.strValue;
- if (var27.charAt(0) != '[') {
- var27 = var3.printClassName(var3.constantPool[var23].arg1.strValue);
- if (var6 == null || !var27.startsWith((String)var6)) {
- if (var19 == null) {
- var19 = var8.addFolder("imported classes", (Object)null);
- }
-
- var19.addItem(var3.printClassName(var27), (Object)null);
- }
- }
- }
- }
-
- if (var3.interfaces != null) {
- var19 = var8.addFolder("implemented Interfaces", (Object)null);
-
- for(int var24 = 0; var24 < var3.interfaces.length; ++var24) {
- var19.addItem(var3.interfaces[var24].arg1.strValue.replace('/', '.'), (Object)null);
- }
- }
-
- if (var3.fields != null) {
- var19 = var8.addFolder("Instance variables", (Object)null);
-
- for(int var25 = 0; var25 < var3.fields.length; ++var25) {
- var19.addItem(var3.fields[var25].toString(var3.constantPool), (Object)null);
- }
- }
-
- if (var3.methods != null) {
- var19 = var8.addFolder("Methods", (Object)null);
-
- for(int var26 = 0; var26 < var3.methods.length; ++var26) {
- var19.addItem(var3.methods[var26].toString(var3.getClassName()), (Object)null);
- }
-
- return;
- }
- } catch (TreeViewException var17) {
- Debug.Info(var17.getMessage());
- }
-
- }
-
- public void flush() {
- try {
- this.fis.close();
- } catch (IOException var3) {
- ((Throwable)var3).printStackTrace(System.out);
- }
- }
- }
-