import java.awt.*;
import java.beans.*;
import java.io.*;
import java.lang.reflect.*;

public class Valdez {
  public static void main (String args[]) {
    TextField tf = new TextField ("Hello");
    inspect (tf);
  }

  public static void inspect (Object o) {
    inspect (o, System.out);
  }
  public static void inspect (Object o, OutputStream os) {
    inspect (o, new PrintWriter (os));
  }
  public static void inspect (Object o, Writer w) {
    inspect (o, new PrintWriter (w));
  }
  public static void inspect (Object o, PrintWriter pw) {
    try {
      // Get the Class of o

      // Get Class's BeanInfo

      // Get PropertyDescriptor list
      
      // Get EventSetDescriptor list

      pw.println ("Bean Information for: " + c);

      Method readMethod;
      for (int i=0;i<pd.length;i++) {
        if (i==0) pw.println ("\n\tProperties\n\t----------");
        pw.print ("(" + (i+1) + ")\t");
        // Print Name and Property Type
        pw.print ( /* Name and Type */);

        // Get read method of property
        readMethod = /* Get Read Method */;

        if (readMethod != null) {
          try {
            // Invoke read method and print results

            pw.println (" - " + /* Results Go Here */ );

          } catch (IllegalArgumentException e) {
            pw.println ("Unable to inspect - Illegal Argument");
          } catch (IllegalAccessException e) {
            pw.println ("Unable to inspect - Illegal Access");
          } catch (InvocationTargetException e) {
            pw.println ("Unable to inspect - Invocation Problems");
          }
        } else {
          pw.println ();
        }
      }
      for (int i=0;i<esd.length;i++) {
        if (i==0) pw.println ("\n\tListeners\n\t---------");
        pw.print ("(" + (i+1) + ")\t");
        // Print Name and Listener Type
        pw.print ( /* Name and Type */);

      }
    } catch (IntrospectionException e) {
      pw.println ("Introspection Error");
    }
    pw.flush();
  }
}
