<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8049567043904260772</id><updated>2011-04-21T20:16:19.498-04:00</updated><category term='&quot;Red Hat Linux Fedora Core 7&quot;'/><category term='Solution'/><category term='Problem'/><title type='text'>Indicative Service Concierge</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://indicativeserviceconcierge.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8049567043904260772/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://indicativeserviceconcierge.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Emory Merryman</name><uri>http://www.blogger.com/profile/11804887158226282399</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>5</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8049567043904260772.post-8158162587621503173</id><published>2007-11-26T14:28:00.001-05:00</published><updated>2007-11-26T14:28:17.962-05:00</updated><title type='text'>XMLClassUtil Project</title><content type='html'>&lt;br&gt;/*&lt;br&gt; * XMLClassUtil.java&lt;br&gt; *&lt;br&gt; * Copyright (2007)&lt;br&gt; * by Emory Merryman, III&lt;br&gt; * &lt;a href="http://indicativeserviceconcierge.blogspot.com/"&gt;http://indicativeserviceconcierge.blogspot.com/&lt;/a&gt;&lt;p&gt;* (For Contact Information See Web Page.&lt;br&gt; *&lt;br&gt; * All Rights Reserved.&lt;br&gt; *&lt;br&gt; * Software is confidential and copyrighted.&lt;br&gt; * Title to Software and all associated intellectual property&lt;br&gt; * rights is retained by Emory Merryman, III.&lt;br&gt; * You acknowledge that Licensed Software is not designed or&lt;br&gt; * intended for use in the design, construction, operation or&lt;br&gt; * maintenance of any nuclear facility.&lt;br&gt; *&lt;br&gt; * Emory Merryman, III disclaims any express or implied warranty&lt;br&gt; * of fitness for such uses.&lt;br&gt; * No right, title or interest in or to any trademark, service&lt;br&gt; * mark, logo or trade name of Emory Merryman, III is granted.&lt;br&gt; *&lt;br&gt; * All express or implied conditions, representations and warranties,&lt;br&gt; * including any implied warranty of merchantability, fitness&lt;br&gt; * for a particular purpose or non infringement are disclaimed,&lt;br&gt; * except to the extent that these disclaimers are held&lt;br&gt; * to be legally invalid.&lt;br&gt; *&lt;br&gt; * To the extent not prohibited by law, in no event will Emory&lt;br&gt; * Merryman, III be liable for any lost revenue, profit or data,&lt;br&gt; * or for special indirect, consequential, incidental or punitive&lt;br&gt; * damages, arising out of or related to the use or inability to &lt;br&gt; * use software if if Emory Merryman, III has been advised of such&lt;br&gt; * damages.&lt;br&gt; * In no event will Emory Merryman III&amp;#39;s liability to you, whether&lt;br&gt; * in contract, tort (including negligence), or otherwise, exceed&lt;br&gt; * the amount paid by you for this software.&lt;br&gt; */&lt;p&gt;final class XMLClassUtil&lt;br&gt;{&lt;br&gt;    private static final int CAFEBABE = -889275714 ;&lt;p&gt;    private static final void diff ( final java . lang . String fn1 , final java . lang . String fn2 ) throws java . lang . Exception&lt;br&gt;    {&lt;br&gt;	final java . io . InputStream in1 = new java . io . FileInputStream ( new java . io . File ( fn1 ) ) ;&lt;br&gt;	final java . io . InputStream in2 = new java . io . FileInputStream ( new java . io . File ( fn2 ) ) ;&lt;br&gt;	int i , r1 , r2 ;&lt;br&gt;	for ( i = 0 , r1 = in1 . read ( ) , r2 = in2 . read ( ) ; ( r1 != -1 ) || ( r2 != -1 ) ; i ++ , r1 = in1 . read ( ) , r2 = in2 . read ( ) )&lt;br&gt;	    {&lt;br&gt;		java . lang . System . out . println ( i + &amp;quot;\t&amp;quot; + r1 + &amp;quot;\t&amp;quot; + r2 + &amp;quot;\t&amp;quot; + ( r1 == r2 ) ) ;&lt;br&gt;	    }&lt;br&gt;	in1 .close ( ) ;&lt;br&gt;	in2 . close ( ) ;&lt;br&gt;    }&lt;p&gt;    public static final void main ( final java . lang . String [ ] args ) throws java . lang . Exception&lt;br&gt;    {&lt;br&gt;	//	diff ( args [ 1 ] , args [ 2 ] ) ;&lt;br&gt;	//	java . lang . System . exit ( 0 ) ;&lt;br&gt;	final java . io . DataInputStream input = new java . io . DataInputStream ( new java . io . FileInputStream ( new java . io . File ( args [ 1 ] ) ) ) ;&lt;br&gt;	final java . io . DataOutputStream output = new java . io . DataOutputStream ( new java . io . FileOutputStream ( new java.  io . File ( args [ 2 ] ) ) ) ;&lt;br&gt;	final XMLClassUtil util = new XMLClassUtil ( ) ;&lt;br&gt;	if ( args [ 0 ] . equals ( &amp;quot;toXML&amp;quot; ) )&lt;br&gt;	    {&lt;br&gt;		final ClassFile classFile = util . dataInputStreamFactory . make ( input ) ;&lt;br&gt;		final java . io . PrintStream pOut = new java . io . PrintStream ( output ) ;&lt;br&gt;		final org . w3c . dom . Document classDocument = util . xmlClass ( classFile ) ;&lt;br&gt;		util . print ( pOut , classDocument ) ;&lt;br&gt;	    }&lt;br&gt;	else if ( args [ 0 ] . equals ( &amp;quot;toClass&amp;quot; ) )&lt;br&gt;	    {&lt;br&gt;		final javax . xml . parsers . DocumentBuilderFactory dbf = javax . xml . parsers . DocumentBuilderFactory . newInstance ( ) ;&lt;br&gt;		final javax . xml . parsers . DocumentBuilder db = dbf . newDocumentBuilder ( ) ;&lt;br&gt;		final org . w3c . dom . Document document = db . parse ( input ) ;&lt;br&gt;		final org . w3c . dom . Element node1 = document . getDocumentElement ( ) ;&lt;br&gt;		final org . w3c . dom . NodeList nodes = node1 . getElementsByTagName ( &amp;quot;classFile&amp;quot; ) ;&lt;br&gt;		final org . w3c . dom . Node node2 = nodes . item ( 0 ) ;&lt;br&gt;		final ClassFile classFile = util . xmlReader . read ( node2 ) ;&lt;br&gt;		util . byteWriter . write ( classFile , output ) ;&lt;br&gt;	    }&lt;br&gt;	input . close ( ) ;&lt;br&gt;	output . close ( ) ;&lt;br&gt;	input . close ( ) ;&lt;br&gt;    }&lt;p&gt;    private final ClassFile loadClass ( final java . io . DataInputStream input ) throws XMLClassUtilException&lt;br&gt;    {&lt;br&gt;	final ClassFile classFile = dataInputStreamFactory . make ( input ) ;&lt;br&gt;	return ( classFile ) ;&lt;br&gt;    }&lt;p&gt;    private final org . w3c . dom . Document xmlClass ( final ClassFile classFile ) throws java . lang . Exception&lt;br&gt;    {&lt;br&gt;	final javax . xml . parsers . DocumentBuilderFactory dbf = javax . xml . parsers . DocumentBuilderFactory . newInstance ( ) ;&lt;br&gt;	final javax . xml . parsers . DocumentBuilder db = dbf . newDocumentBuilder ( ) ;&lt;br&gt;	final org . w3c . dom . Document document = db . newDocument ( ) ;&lt;br&gt;	final org . w3c . dom . Node element = document . createElement ( &amp;quot;xml&amp;quot; ) ;&lt;br&gt;	document . appendChild ( element ) ;&lt;br&gt;	classFileWriter . write ( classFile , document , element ) ;&lt;br&gt;	return ( document ) ;&lt;br&gt;    }&lt;p&gt;    private interface Factory &amp;lt; R , P , E extends java . lang . Exception &amp;gt;&lt;br&gt;    {&lt;br&gt;	public abstract R make ( final P p ) throws E ;&lt;br&gt;    }&lt;p&gt;    private interface ByteWriter &amp;lt; P , E extends java . lang . Exception &amp;gt;&lt;br&gt;    {&lt;br&gt;	public abstract void write ( final P p , final java . io . DataOutputStream output ) throws E ;&lt;br&gt;    }&lt;p&gt;    private interface ClassFile&lt;br&gt;    {&lt;br&gt;	public abstract int getMagic ( ) ;&lt;p&gt;	public abstract short getMinorVersion ( ) ;&lt;p&gt;	public abstract short getMajorVersion ( ) ;&lt;p&gt;	public abstract java . util . List &amp;lt; ConstantPool &amp;gt; getConstantPool ( ) ;&lt;p&gt;	public abstract short getAccessFlags ( ) ;&lt;p&gt;	public abstract short getThisClass ( ) ;&lt;p&gt;	public abstract short getSuperClass ( ) ;&lt;p&gt;	public abstract short [ ] getInterfaces ( ) ;&lt;p&gt;	public abstract java . util . List &amp;lt; FieldInfo &amp;gt; getFields ( ) ;&lt;p&gt;	public abstract java . util . List &amp;lt; MethodInfo &amp;gt; getMethods ( ) ;&lt;p&gt;	public abstract java . util . List &amp;lt; AttributeInfo &amp;gt; getAttributes ( ) ;&lt;br&gt;    }&lt;p&gt;    private interface ConstantPool&lt;br&gt;    {&lt;br&gt;	public abstract byte getTag ( ) ;&lt;p&gt;	public abstract byte [ ] getInfo ( ) ;&lt;br&gt;    }&lt;p&gt;    private interface FieldMethodInfo&lt;br&gt;    {&lt;br&gt;	public abstract java . util . List &amp;lt; ConstantPool &amp;gt; getConstantPool ( ) ;&lt;p&gt;	public abstract short getAccessFlags ( ) ;&lt;p&gt;	public abstract short getNameIndex ( ) ;&lt;p&gt;	public abstract short getDescriptorIndex ( ) ;&lt;p&gt;	public abstract java . util . List &amp;lt; AttributeInfo &amp;gt; getAttributes ( ) ;&lt;br&gt;    }&lt;p&gt;    private interface FieldInfo extends FieldMethodInfo&lt;br&gt;    {&lt;br&gt;    }&lt;p&gt;    private interface MethodInfo extends FieldMethodInfo&lt;br&gt;    {&lt;br&gt;    }&lt;p&gt;    private interface FMInfo extends FieldInfo , MethodInfo&lt;br&gt;    {&lt;br&gt;    }&lt;p&gt;    private interface AttributeInfo&lt;br&gt;    {&lt;br&gt;	public abstract java . util . List &amp;lt; ConstantPool &amp;gt; getConstantPool ( ) ;&lt;p&gt;	public abstract short getAttributeNameIndex ( ) ;&lt;p&gt;	public abstract byte [ ] getInfo ( ) ;&lt;br&gt;    }&lt;p&gt;    public interface ConstantClassInfo&lt;br&gt;    {&lt;br&gt;	public abstract short getNameIndex ( ) ;&lt;br&gt;    }&lt;p&gt;    public interface ConstantFieldRef&lt;br&gt;    {&lt;br&gt;	public abstract short getClassIndex ( ) ;&lt;p&gt;	public abstract short getNameAndTypeIndex ( ) ;&lt;br&gt;    }&lt;p&gt;    public interface ConstantMethodRef&lt;br&gt;    {&lt;br&gt;	public abstract short getClassIndex ( ) ;&lt;p&gt;	public abstract short getNameAndTypeIndex ( ) ;&lt;br&gt;    }&lt;p&gt;    public interface ConstantInterfaceMethodRef&lt;br&gt;    {&lt;br&gt;	public abstract short getClassIndex ( ) ;&lt;p&gt;	public abstract short getNameAndTypeIndex ( ) ;&lt;br&gt;    }&lt;p&gt;    public interface ConstantString&lt;br&gt;    {&lt;br&gt;	public abstract short getStringIndex ( ) ;&lt;br&gt;    }&lt;p&gt;    public interface ConstantInteger&lt;br&gt;    {&lt;br&gt;	public abstract int getBytes ( ) ;&lt;br&gt;    }&lt;p&gt;    public interface ConstantFloat&lt;br&gt;    {&lt;br&gt;	public abstract int getBytes ( ) ;&lt;br&gt;    }&lt;p&gt;    public interface ConstantLong&lt;br&gt;    {&lt;br&gt;	public abstract int getHighBytes ( ) ;&lt;p&gt;	public abstract int getLowBytes ( ) ;&lt;br&gt;    }&lt;p&gt;    public interface ConstantDouble&lt;br&gt;    {&lt;br&gt;	public abstract int getHighBytes ( ) ;&lt;p&gt;	public abstract int getLowBytes ( ) ;&lt;br&gt;    }&lt;p&gt;    public interface ConstantNameAndType&lt;br&gt;    {&lt;br&gt;	public abstract short getNameIndex ( ) ;&lt;p&gt;	public abstract short getDescriptorIndex ( ) ;&lt;br&gt;    }&lt;p&gt;    public interface ConstantUTF8&lt;br&gt;    {&lt;br&gt;	public abstract byte [ ] getBytes ( ) ;&lt;br&gt;    }&lt;p&gt;    public interface XMLWriter &amp;lt; T &amp;gt;&lt;br&gt;    {&lt;br&gt;	public abstract void write ( final T t , final org . w3c . dom . Document document , final org . w3c . dom . Node parent ) ;&lt;br&gt;    }&lt;p&gt;    public interface XMLReader &amp;lt; T &amp;gt;&lt;br&gt;    {&lt;br&gt;	public abstract T read ( final org . w3c . dom . Node node ) ;&lt;br&gt;    }&lt;p&gt;    private final class XMLClassUtilException extends java . lang . Exception&lt;br&gt;    {&lt;br&gt;	private XMLClassUtilException ( final java . lang . String message , final java . lang . Throwable cause )&lt;br&gt;	{&lt;br&gt;	    super ( message , cause ) ;&lt;br&gt;	}&lt;p&gt;	private XMLClassUtilException ( final java . lang . String message )&lt;br&gt;	{&lt;br&gt;	    super ( message ) ;&lt;br&gt;	}&lt;p&gt;	private XMLClassUtilException ( final java . lang . Throwable cause )&lt;br&gt;	{&lt;br&gt;	    super ( cause ) ;&lt;br&gt;	}&lt;br&gt;    }&lt;p&gt;    private final void error ( final java . lang . String message , final java . lang . Throwable cause ) throws XMLClassUtilException&lt;br&gt;	{&lt;br&gt;	    final XMLClassUtilException error = new XMLClassUtilException ( message , cause ) ;&lt;br&gt;	    throw ( error ) ;&lt;br&gt;	}&lt;p&gt;    private final void error ( final java . lang . Throwable cause ) throws XMLClassUtilException&lt;br&gt;	{&lt;br&gt;	    final XMLClassUtilException error = new XMLClassUtilException ( cause ) ;&lt;br&gt;	    throw ( error ) ;&lt;br&gt;	}&lt;p&gt;    private final void error ( final java . lang . String message ) throws XMLClassUtilException&lt;br&gt;	{&lt;br&gt;	    final XMLClassUtilException error = new XMLClassUtilException ( message ) ;&lt;br&gt;	    throw ( error ) ;&lt;br&gt;	}&lt;p&gt;    private final Factory &amp;lt; ClassFile , java . io . DataInputStream , XMLClassUtilException &amp;gt; dataInputStreamFactory = new Factory &amp;lt; ClassFile , java . io . DataInputStream , XMLClassUtilException &amp;gt; ( )&lt;br&gt;    {&lt;br&gt;	public final ClassFile make ( final java . io . DataInputStream input ) throws XMLClassUtilException&lt;br&gt;	{&lt;br&gt;	    ClassFile classFile = null ;&lt;br&gt;	    try&lt;br&gt;		{&lt;br&gt;		    classFile = this . tryMake ( input ) ;&lt;br&gt;		}&lt;br&gt;	    catch ( final java . io . IOException cause )&lt;br&gt;		{&lt;br&gt;		    error ( cause ) ;&lt;br&gt;		}&lt;br&gt;	    catch ( final java . lang . Exception cause )&lt;br&gt;		{&lt;br&gt;		    error ( cause ) ;&lt;br&gt;		}&lt;br&gt;	    return ( classFile ) ;&lt;br&gt;	}&lt;p&gt;	private final ClassFile tryMake ( final java . io . DataInputStream input ) throws java . io . IOException , XMLClassUtilException , java . lang . Exception&lt;br&gt;	{&lt;br&gt;	    final int [ ] floor = new int [ 1 ] ;&lt;br&gt;	    floor [ 0 ] = 1 ;&lt;br&gt;	    final class AbstractListFactory &amp;lt; R &amp;gt; implements Factory &amp;lt; java . util . List &amp;lt; R &amp;gt; , java . io . DataInputStream , java . lang . Exception &amp;gt;&lt;br&gt;	    {&lt;br&gt;		private AbstractListFactory ( final Factory &amp;lt; R , java . io . DataInputStream , java . lang . Exception &amp;gt; rFactory )&lt;br&gt;		{&lt;br&gt;		    super ( ) ;&lt;br&gt;		    this . rFactory = rFactory ;&lt;br&gt;		}&lt;p&gt;		private Factory &amp;lt; R , java . io . DataInputStream , java . lang . Exception &amp;gt; rFactory ;&lt;p&gt;		public final java . util . List &amp;lt; R &amp;gt; make ( final java . io . DataInputStream input ) throws java . lang . Exception&lt;br&gt;		{&lt;br&gt;		    final short size = u2 ( input ) ;&lt;br&gt;		    final java . util . List &amp;lt; R &amp;gt; list = new java . util . ArrayList &amp;lt; R &amp;gt; ( ) ;&lt;br&gt;		    final int f = floor [ 0 ] ;&lt;br&gt;		    for ( int i = f ; i &amp;lt; size ; i ++ )&lt;br&gt;			{&lt;br&gt;			    final R r = rFactory . make ( input ) ;&lt;br&gt;			    list . add ( r ) ;&lt;br&gt;			}&lt;br&gt;		    return ( list ) ;&lt;br&gt;		}&lt;br&gt;	    }&lt;br&gt;	    final Factory &amp;lt; ConstantPool , java . io . DataInputStream , java . lang . Exception &amp;gt; constantPoolFactory = new Factory &amp;lt; ConstantPool , java . io . DataInputStream , java . lang . Exception &amp;gt; ( )&lt;br&gt;	    {&lt;br&gt;		public final ConstantPool make ( final java . io . DataInputStream input ) throws java . io . IOException , XMLClassUtilException&lt;br&gt;		{&lt;br&gt;		    final byte tag = u1 ( input ) ;&lt;br&gt;		    //		    java . lang . System . out . print ( &amp;quot;\t&amp;quot; + tag ) ;&lt;br&gt;		    byte [ ] b = null ;&lt;br&gt;		    switch ( tag )&lt;br&gt;			{&lt;br&gt;			case 7 :&lt;br&gt;			case 8 :&lt;br&gt;			    b = new byte [ 2 ] ;&lt;br&gt;			    break ;&lt;br&gt;			case 9 :&lt;br&gt;			case 10 :&lt;br&gt;			case 11 :&lt;br&gt;			case 3 :&lt;br&gt;			case 4 :&lt;br&gt;			case 12 :&lt;br&gt;			    b = new byte [ 4 ] ;&lt;br&gt;			    break ;&lt;br&gt;			case 5 :&lt;br&gt;			case 6 :&lt;br&gt;			    b = new byte [ 8 ] ;&lt;br&gt;			    break ;&lt;br&gt;			case 1 :&lt;br&gt;			    short size = u2 ( input ) ;&lt;br&gt;			    b = new byte [ size ] ;&lt;br&gt;			    break ;&lt;br&gt;			default :&lt;br&gt;			    error ( &amp;quot;Undefined Tag (&amp;quot; + tag + &amp;quot;)&amp;quot; ) ;&lt;br&gt;			    break ;&lt;br&gt;			} ;&lt;br&gt;		    input . read ( b ) ;&lt;br&gt;		    final byte [ ] info = b ;&lt;br&gt;		    final ConstantPool cp = new ConstantPool ( )&lt;br&gt;			{&lt;br&gt;			    public final byte getTag ( )&lt;br&gt;			    {&lt;br&gt;				return ( tag ) ;&lt;br&gt;			    }&lt;p&gt;			    public final byte [ ] getInfo ( )&lt;br&gt;			    {&lt;br&gt;				return ( info ) ;&lt;br&gt;			    }&lt;br&gt;			} ;&lt;br&gt;		    return ( cp ) ;&lt;br&gt;		}&lt;br&gt;	    } ;&lt;br&gt;	    final Factory &amp;lt; java . util . List &amp;lt; ConstantPool &amp;gt; , java . io . DataInputStream , java . lang . Exception &amp;gt; constantPoolListFactory = new AbstractListFactory &amp;lt; ConstantPool &amp;gt; ( constantPoolFactory ) ;&lt;br&gt;	    final int magic = u4 ( input ) ;&lt;br&gt;	    if ( magic != CAFEBABE )&lt;br&gt;		{&lt;br&gt;		    error ( &amp;quot;Incorrect Magic Number (&amp;quot; + magic + &amp;quot;)&amp;quot; ) ;&lt;br&gt;		}&lt;br&gt;	    final short minorVersion = u2 ( input ) ;&lt;br&gt;	    final short majorVersion = u2 ( input ) ;&lt;br&gt;	    final java . util . List &amp;lt; ConstantPool &amp;gt; constantPool = constantPoolListFactory . make ( input ) ;&lt;br&gt;	    floor [ 0 ] = 0 ;&lt;br&gt;	    final Factory &amp;lt; AttributeInfo , java . io . DataInputStream , java . lang . Exception &amp;gt; attributeInfoFactory = new Factory &amp;lt; AttributeInfo , java . io . DataInputStream , java . lang . Exception &amp;gt; ( )&lt;br&gt;	    {&lt;br&gt;		public final AttributeInfo make ( final java . io . DataInputStream input ) throws java . io . IOException&lt;br&gt;		{&lt;br&gt;		    final short attributeNameIndex = u2 ( input ) ;&lt;br&gt;		    final int attributeLength = u4 ( input ) ;&lt;br&gt;		    final byte [ ] info = bytes ( input , attributeLength ) ;&lt;br&gt;		    //		    java . lang . System . out . println ( attributeNameIndex + &amp;quot;\t&amp;quot; + attributeLength ) ;&lt;br&gt;		    final AttributeInfo attributeInfo = new AttributeInfo ( )&lt;br&gt;			{&lt;br&gt;			    public final java . util . List &amp;lt; ConstantPool &amp;gt; getConstantPool ( )&lt;br&gt;			    {&lt;br&gt;				return ( constantPool ) ;&lt;br&gt;			    }&lt;p&gt;			    public final short getAttributeNameIndex ( )&lt;br&gt;			    {&lt;br&gt;				return ( attributeNameIndex ) ;&lt;br&gt;			    }&lt;p&gt;			    public final byte [ ] getInfo ( )&lt;br&gt;			    {&lt;br&gt;				return ( info ) ;&lt;br&gt;			    }&lt;br&gt;			} ;&lt;br&gt;		    return ( attributeInfo ) ;&lt;br&gt;		}&lt;br&gt;	    } ;&lt;br&gt;	    final Factory &amp;lt; java . util . List &amp;lt; AttributeInfo &amp;gt; , java . io . DataInputStream , java . lang . Exception &amp;gt; attributeInfoListFactory = new AbstractListFactory &amp;lt; AttributeInfo &amp;gt; ( attributeInfoFactory ) ;&lt;br&gt;	    final Factory &amp;lt; FMInfo , java . io . DataInputStream , java . lang . Exception &amp;gt; fmInfoFactory = new Factory &amp;lt; FMInfo , java . io . DataInputStream , java . lang . Exception &amp;gt; ( )&lt;br&gt;	    {&lt;br&gt;		public final FMInfo make ( final java . io . DataInputStream input ) throws java . lang . Exception&lt;br&gt;		{&lt;br&gt;		    final short accessFlags = u2 ( input ) ;&lt;br&gt;		    final short nameIndex = u2 ( input ) ;&lt;br&gt;		    final short descriptorIndex = u2 ( input ) ;&lt;br&gt;		    final java . util . List &amp;lt; AttributeInfo &amp;gt; attributes = attributeInfoListFactory . make ( input ) ;&lt;br&gt;		    //		    java . lang . System . out . println ( accessFlags + &amp;quot;\t&amp;quot; + nameIndex + &amp;quot;\t&amp;quot; + descriptorIndex ) ;&lt;br&gt;		    final FMInfo fmInfo = new FMInfo ( )&lt;br&gt;			{&lt;br&gt;			    public final java . util . List &amp;lt; ConstantPool &amp;gt; getConstantPool ( )&lt;br&gt;			    {&lt;br&gt;				return ( constantPool ) ;&lt;br&gt;			    }&lt;p&gt;			    public final short getAccessFlags ( )&lt;br&gt;			    {&lt;br&gt;				return ( accessFlags ) ;&lt;br&gt;			    }&lt;p&gt;			    public final short getNameIndex ( )&lt;br&gt;			    {&lt;br&gt;				return ( nameIndex ) ;&lt;br&gt;			    }&lt;p&gt;			    public final short getDescriptorIndex ( )&lt;br&gt;			    {&lt;br&gt;				return ( descriptorIndex ) ;&lt;br&gt;			    }&lt;p&gt;			    public final java . util . List &amp;lt; AttributeInfo &amp;gt; getAttributes ( )&lt;br&gt;			    {&lt;br&gt;				return ( attributes ) ;&lt;br&gt;			    }&lt;br&gt;			} ;&lt;br&gt;		    return ( fmInfo ) ;&lt;br&gt;		}&lt;br&gt;	    } ;&lt;br&gt;	    final Factory &amp;lt; FieldInfo , java . io . DataInputStream , java . lang . Exception &amp;gt; fieldInfoFactory = new Factory &amp;lt; FieldInfo , java . io . DataInputStream , java . lang . Exception &amp;gt; ( )&lt;br&gt;	    {&lt;br&gt;		public final FieldInfo make ( final java . io . DataInputStream input ) throws java . lang . Exception&lt;br&gt;		{&lt;br&gt;		    final FMInfo r = fmInfoFactory . make ( input ) ;&lt;br&gt;		    return ( r ) ;&lt;br&gt;		}&lt;br&gt;	    } ;&lt;br&gt;	    final Factory &amp;lt; java . util . List &amp;lt; FieldInfo &amp;gt; , java . io . DataInputStream , java . lang . Exception &amp;gt; fieldInfoListFactory = new AbstractListFactory &amp;lt; FieldInfo &amp;gt; ( fieldInfoFactory ) ;&lt;br&gt;	    final Factory &amp;lt; MethodInfo , java . io . DataInputStream , java . lang . Exception &amp;gt; methodInfoFactory = new Factory &amp;lt; MethodInfo , java . io . DataInputStream , java . lang . Exception &amp;gt; ( )&lt;br&gt;	    {&lt;br&gt;		public final MethodInfo make ( final java . io . DataInputStream input ) throws java . lang . Exception&lt;br&gt;		{&lt;br&gt;		    final FMInfo r = fmInfoFactory . make ( input ) ;&lt;br&gt;		    return ( r ) ;&lt;br&gt;		}&lt;br&gt;	    } ;&lt;br&gt;	    final Factory &amp;lt; java . util . List &amp;lt; MethodInfo &amp;gt; , java . io . DataInputStream , java . lang . Exception &amp;gt; methodInfoListFactory = new AbstractListFactory &amp;lt; MethodInfo &amp;gt; ( methodInfoFactory ) ;&lt;br&gt;	    final short accessFlags = u2 ( input ) ;&lt;br&gt;	    final short thisClass = u2 ( input ) ;&lt;br&gt;	    final short superClass = u2 ( input ) ;&lt;br&gt;	    final short interfacesCount = u2 ( input ) ;&lt;br&gt;	    final short [ ] interfaces = new short [ interfacesCount ] ;&lt;br&gt;	    for ( int i = 1 ; i &amp;lt; interfacesCount ; i ++ )&lt;br&gt;		{&lt;br&gt;		    interfaces [ i ] = u2 ( input ) ;&lt;br&gt;		}&lt;br&gt;	    final java . util . List &amp;lt; FieldInfo &amp;gt; fields = fieldInfoListFactory . make ( input ) ;&lt;br&gt;	    final java . util . List &amp;lt; MethodInfo &amp;gt; methods = methodInfoListFactory . make ( input ) ;&lt;br&gt;	    final java . util . List &amp;lt; AttributeInfo &amp;gt; attributes = attributeInfoListFactory . make ( input ) ;&lt;br&gt;	    final ClassFile classFile = new ClassFile ( )&lt;br&gt;		{&lt;br&gt;		    public final int getMagic ( )&lt;br&gt;		    {&lt;br&gt;			return ( magic ) ;&lt;br&gt;		    }&lt;p&gt;		    public final short getMinorVersion ( )&lt;br&gt;		    {&lt;br&gt;			return ( minorVersion ) ;&lt;br&gt;		    }&lt;p&gt;		    public final short getMajorVersion ( )&lt;br&gt;		    {&lt;br&gt;			return ( majorVersion ) ;&lt;br&gt;		    }&lt;p&gt;		    public final java . util . List &amp;lt; ConstantPool &amp;gt; getConstantPool ( )&lt;br&gt;		    {&lt;br&gt;			return ( constantPool ) ;&lt;br&gt;		    }&lt;p&gt;		    public final short getAccessFlags ( )&lt;br&gt;		    {&lt;br&gt;			return ( accessFlags ) ;&lt;br&gt;		    }&lt;p&gt;		    public final short getThisClass ( )&lt;br&gt;		    {&lt;br&gt;			return ( thisClass ) ;&lt;br&gt;		    }&lt;p&gt;		    public final short getSuperClass ( )&lt;br&gt;		    {&lt;br&gt;			return ( superClass ) ;&lt;br&gt;		    }&lt;p&gt;		    public final short [ ] getInterfaces ( )&lt;br&gt;		    {&lt;br&gt;			return ( interfaces ) ;&lt;br&gt;		    }&lt;p&gt;		    public final java . util . List &amp;lt; FieldInfo &amp;gt; getFields ( )&lt;br&gt;		    {&lt;br&gt;			return ( fields ) ;&lt;br&gt;		    }&lt;p&gt;		    public final java . util . List &amp;lt; MethodInfo &amp;gt; getMethods ( )&lt;br&gt;		    {&lt;br&gt;			return ( methods ) ;&lt;br&gt;		    }&lt;p&gt;		    public final java . util . List &amp;lt; AttributeInfo &amp;gt; getAttributes ( )&lt;br&gt;		    {&lt;br&gt;			return ( attributes ) ;&lt;br&gt;		    }&lt;br&gt;		} ;&lt;br&gt;	    return ( classFile ) ;&lt;br&gt;	}&lt;br&gt;    } ;&lt;p&gt;    private final byte u1 ( final java . io . DataInputStream input ) throws java . io . IOException&lt;br&gt;    {&lt;br&gt;	final int i = input . readByte ( ) ;&lt;br&gt;	final byte b = ( byte ) ( i ) ;&lt;br&gt;	//	java . lang . System . out . print ( &amp;quot;\t&amp;quot; + b ) ;&lt;br&gt;	return ( b ) ;&lt;br&gt;    }&lt;p&gt;    private final short u2 ( final java . io . DataInputStream input ) throws java . io . IOException&lt;br&gt;    {&lt;br&gt;	final int i = input . readShort ( ) ;&lt;br&gt;	final short s = ( short ) ( i ) ;&lt;br&gt;	java . lang . System . out . print ( &amp;quot;\t&amp;quot; + s ) ;&lt;br&gt;	return ( s ) ;&lt;br&gt;    }&lt;p&gt;    private final int u4 ( final java . io . DataInputStream input ) throws java . io . IOException&lt;br&gt;    {&lt;br&gt;	final int i = input . readInt ( ) ;&lt;br&gt;	return ( i ) ;&lt;br&gt;    }&lt;p&gt;    private final byte [ ] bytes ( final java . io . DataInputStream input , final int len ) throws java . io . IOException&lt;br&gt;    {&lt;br&gt;	final byte [ ] b = new byte [ len ] ;&lt;br&gt;	input . read ( b ) ;&lt;br&gt;	return ( b ) ;&lt;br&gt;    }&lt;p&gt;    private final ByteWriter &amp;lt; ClassFile , java . io . IOException &amp;gt; byteWriter = new ByteWriter &amp;lt; ClassFile , java . io . IOException &amp;gt; ( )&lt;br&gt;    {&lt;br&gt;	public final void write ( final ClassFile classFile , final java . io . DataOutputStream output ) throws java . io . IOException&lt;br&gt;	{&lt;br&gt;	    final short [ ] floor = new short [ 1 ] ;&lt;br&gt;	    floor [ 0 ] = 1 ;&lt;br&gt;	    final class AbstractListWriter &amp;lt; R &amp;gt; implements ByteWriter &amp;lt; java . util . List &amp;lt; R &amp;gt; , java . io . IOException &amp;gt;&lt;br&gt;	    {&lt;br&gt;		AbstractListWriter ( final ByteWriter &amp;lt; R , java . io . IOException &amp;gt; rWriter )&lt;br&gt;		    {&lt;br&gt;			super ( ) ;&lt;br&gt;			this . rWriter = rWriter ;&lt;br&gt;		    }&lt;p&gt;		private ByteWriter &amp;lt; R , java . io . IOException &amp;gt; rWriter ;&lt;p&gt;		public final void write ( final java . util . List &amp;lt; R &amp;gt; list , final java . io . DataOutputStream output ) throws java . io . IOException&lt;br&gt;		{&lt;br&gt;		    final short count = ( short ) ( list . size ( ) + floor [ 0 ] ) ;&lt;br&gt;		    java . lang . System . out . print ( &amp;quot;{&amp;quot; ) ;&lt;br&gt;		    u2 ( output , count ) ;&lt;br&gt;		    java . lang . System . out . print ( &amp;quot;}&amp;quot; ) ;&lt;br&gt;		    final java . util . Iterator &amp;lt; R &amp;gt; iterator = list . iterator ( ) ;&lt;br&gt;		    while ( iterator . hasNext ( ) )&lt;br&gt;			{&lt;br&gt;			    final R r = iterator . next ( ) ;&lt;br&gt;			    rWriter . write ( r , output ) ;&lt;br&gt;			}&lt;br&gt;		}&lt;br&gt;	    }&lt;br&gt;	    final ByteWriter &amp;lt; ConstantPool , java . io . IOException &amp;gt; constantPoolWriter = new ByteWriter &amp;lt; ConstantPool , java . io . IOException &amp;gt; ( )&lt;br&gt;	    {&lt;br&gt;		public final void write ( final ConstantPool cp , final java . io . DataOutputStream output ) throws java . io . IOException&lt;br&gt;		{&lt;br&gt;		    final byte tag = cp . getTag ( ) ;&lt;br&gt;		    //	    java . lang . System . out . print ( &amp;quot;\t&amp;quot; + tag ) ;&lt;br&gt;		    final byte [ ] info = cp . getInfo ( ) ;&lt;br&gt;		    u1 ( output , tag ) ;&lt;br&gt;		    if ( tag == 1 )&lt;br&gt;			{&lt;br&gt;			    bytes ( output , info , 2 ) ;&lt;br&gt;			}&lt;br&gt;		    else&lt;br&gt;			{&lt;br&gt;			    bytes ( output , info , 0 ) ;&lt;br&gt;			}&lt;br&gt;		}&lt;br&gt;	    } ;&lt;br&gt;	    final ByteWriter &amp;lt; java . util . List &amp;lt; ConstantPool &amp;gt; , java . io . IOException &amp;gt; constantPoolListWriter = new AbstractListWriter &amp;lt; ConstantPool &amp;gt; ( constantPoolWriter ) ;&lt;br&gt;	    final ByteWriter &amp;lt; AttributeInfo , java . io . IOException &amp;gt; attributeInfoWriter = new ByteWriter &amp;lt; AttributeInfo , java . io . IOException &amp;gt; ( )&lt;br&gt;	    {&lt;br&gt;		public final void write ( final AttributeInfo attributeInfo , final java . io . DataOutputStream output ) throws java . io . IOException&lt;br&gt;		{&lt;br&gt;		    final short attributeNameIndex = attributeInfo . getAttributeNameIndex ( ) ;&lt;br&gt;		    final byte [ ] info = attributeInfo . getInfo ( ) ;&lt;br&gt;		    //		    java . lang . System . out . println ( attributeNameIndex + &amp;quot;\t&amp;quot; + info . length ) ;&lt;br&gt;		    u2 ( output , attributeNameIndex ) ;&lt;br&gt;		    bytes ( output , info , 4 ) ;&lt;br&gt;		}&lt;br&gt;	    } ;&lt;br&gt;	    final ByteWriter &amp;lt; java . util . List &amp;lt; AttributeInfo &amp;gt; , java . io . IOException &amp;gt; attributeInfoListWriter = new AbstractListWriter &amp;lt; AttributeInfo &amp;gt; ( attributeInfoWriter ) ;&lt;br&gt;	    final ByteWriter &amp;lt; FieldMethodInfo , java . io . IOException &amp;gt; fmInfoWriter = new ByteWriter &amp;lt; FieldMethodInfo , java . io . IOException &amp;gt; ( )&lt;br&gt;	    {&lt;br&gt;		public final void write ( final FieldMethodInfo fmInfo , final java . io . DataOutputStream output ) throws java . io . IOException&lt;br&gt;		{&lt;br&gt;		    final short accessFlags = fmInfo . getAccessFlags ( ) ;&lt;br&gt;		    final short nameIndex = fmInfo . getNameIndex ( ) ;&lt;br&gt;		    final short descriptorIndex = fmInfo . getDescriptorIndex ( ) ;&lt;br&gt;		    //		    java . lang . System . out . println ( accessFlags + &amp;quot;\t&amp;quot; + nameIndex + &amp;quot;\t&amp;quot; + descriptorIndex ) ;&lt;br&gt;		    final java . util . List &amp;lt; AttributeInfo &amp;gt; attributes = fmInfo . getAttributes ( ) ;&lt;br&gt;		    java . lang . System . out . print ( &amp;quot;[&amp;quot; ) ;&lt;br&gt;		    u2 ( output , accessFlags ) ;&lt;br&gt;		    u2 ( output , nameIndex ) ;&lt;br&gt;		    u2 ( output , descriptorIndex ) ;&lt;br&gt;		    attributeInfoListWriter . write ( attributes , output ) ;&lt;br&gt;		    java . lang . System . out . print ( &amp;quot;]&amp;quot; ) ;&lt;br&gt;		}&lt;br&gt;	    } ;&lt;br&gt;	    final ByteWriter &amp;lt; FieldInfo , java . io . IOException &amp;gt; fieldInfoWriter = new ByteWriter &amp;lt; FieldInfo , java . io . IOException &amp;gt; ( )&lt;br&gt;	    {&lt;br&gt;		public final void write ( final FieldInfo fieldInfo , final java . io . DataOutputStream output ) throws java . io . IOException&lt;br&gt;		{&lt;br&gt;		    fmInfoWriter . write ( fieldInfo , output ) ;&lt;br&gt;		}&lt;br&gt;	    } ;&lt;br&gt;	    final ByteWriter &amp;lt; java . util . List &amp;lt; FieldInfo &amp;gt; , java . io . IOException &amp;gt; fieldInfoListWriter = new AbstractListWriter &amp;lt; FieldInfo &amp;gt; ( fieldInfoWriter ) ;&lt;br&gt;	    final ByteWriter &amp;lt; MethodInfo , java . io . IOException &amp;gt; methodInfoWriter = new ByteWriter &amp;lt; MethodInfo , java . io . IOException &amp;gt; ( )&lt;br&gt;	    {&lt;br&gt;		public final void write ( final MethodInfo methodInfo , final java . io . DataOutputStream output ) throws java . io . IOException&lt;br&gt;		{&lt;br&gt;		    fmInfoWriter . write ( methodInfo , output ) ;&lt;br&gt;		}&lt;br&gt;	    } ;&lt;br&gt;	    final ByteWriter &amp;lt; java . util . List &amp;lt; MethodInfo &amp;gt; , java . io . IOException &amp;gt; methodInfoListWriter = new AbstractListWriter &amp;lt; MethodInfo &amp;gt; ( methodInfoWriter ) ;&lt;br&gt;	    final int magic = classFile . getMagic ( ) ;&lt;br&gt;	    final short minorVersion = classFile . getMinorVersion ( ) ;&lt;br&gt;	    final short majorVersion = classFile . getMajorVersion ( ) ;&lt;br&gt;	    final java . util . List &amp;lt; ConstantPool &amp;gt; constantPool = classFile . getConstantPool ( ) ;&lt;br&gt;	    final short accessFlags = classFile . getAccessFlags ( ) ;&lt;br&gt;	    final short thisClass = classFile . getThisClass ( ) ;&lt;br&gt;	    final short superClass = classFile . getSuperClass ( ) ;&lt;br&gt;	    final short [ ] interfaces = classFile . getInterfaces ( ) ;&lt;br&gt;	    final java . util . List &amp;lt; FieldInfo &amp;gt; fields = classFile . getFields ( ) ;&lt;br&gt;	    final java . util . List &amp;lt; MethodInfo &amp;gt; methods = classFile . getMethods ( ) ;&lt;br&gt;	    final java . util . List &amp;lt; AttributeInfo &amp;gt; attributes = classFile . getAttributes ( ) ;&lt;br&gt;	    u4 ( output , magic ) ;&lt;br&gt;	    u2 ( output , minorVersion ) ;&lt;br&gt;	    u2 ( output , majorVersion ) ;&lt;br&gt;	    constantPoolListWriter . write ( constantPool , output ) ;&lt;br&gt;	    floor [ 0 ] = 0 ;&lt;br&gt;	    u2 ( output , accessFlags ) ;&lt;br&gt;	    u2 ( output , thisClass ) ;&lt;br&gt;	    u2 ( output , superClass ) ;&lt;br&gt;	    final short interfacesCount = ( short ) ( interfaces . length ) ;&lt;br&gt;	    u2 ( output , interfacesCount ) ;&lt;br&gt;	    for ( int i = 0 ; i &amp;lt; interfaces . length ; i ++ )&lt;br&gt;		{&lt;br&gt;		    u2 ( output , interfaces [ i ] ) ;&lt;br&gt;		}&lt;br&gt;	    fieldInfoListWriter . write ( fields , output ) ;&lt;br&gt;	    methodInfoListWriter . write ( methods , output ) ;&lt;br&gt;	    attributeInfoListWriter . write ( attributes , output ) ;&lt;br&gt;	}&lt;p&gt;	private final void u1 ( final java . io . DataOutputStream output , final byte b ) throws java . io . IOException&lt;br&gt;	{&lt;br&gt;	    output . writeByte ( b ) ;&lt;br&gt;	    //	    java . lang . System . out . print ( &amp;quot;\t&amp;quot; + b ) ;&lt;br&gt;	}&lt;p&gt;	private final void u2 ( final java . io . DataOutputStream output , final short s ) throws java . io . IOException&lt;br&gt;	{&lt;br&gt;	    output . writeShort ( s ) ;&lt;br&gt;	    java . lang . System . out . print ( &amp;quot;\t&amp;quot; + s + &amp;quot;&amp;quot; ) ;&lt;br&gt;	    if ( s == 11 )&lt;br&gt;		{&lt;br&gt;		    final java . lang . RuntimeException error = new java . lang . RuntimeException ( &amp;quot;FUCK&amp;quot; ) ;&lt;br&gt;		    //		    throw ( error ) ;&lt;br&gt;		}&lt;br&gt;	}&lt;p&gt;	private final void u4 ( final java . io . DataOutputStream output , final int i ) throws java . io . IOException&lt;br&gt;	{&lt;br&gt;	    output . writeInt ( i ) ;&lt;br&gt;	}&lt;p&gt;	private final void bytes ( final java . io . DataOutputStream output , final byte [ ] buff , final int size ) throws java . io . IOException&lt;br&gt;	{&lt;br&gt;	    final int n = buff . length ;&lt;br&gt;	    byte b = -1 ;&lt;br&gt;	    short s = -1 ;&lt;br&gt;	    int i = -1 ;&lt;br&gt;	    switch ( size )&lt;br&gt;		{&lt;br&gt;		case 0 :&lt;br&gt;		    break ;&lt;br&gt;		case 1 :&lt;br&gt;		    b = ( byte ) ( n ) ;&lt;br&gt;		    u1 ( output , b ) ;&lt;br&gt;		    break ;&lt;br&gt;		case 2 :&lt;br&gt;		    s = ( short ) ( n ) ;&lt;br&gt;		    u2 ( output , s ) ;&lt;br&gt;		    break ;&lt;br&gt;		case 4 :&lt;br&gt;		    i = ( int ) ( n ) ;&lt;br&gt;		    u4 ( output , i ) ;&lt;br&gt;		    break ;&lt;br&gt;		case 100 :&lt;br&gt;		    i = ( int ) ( n + 1 ) ;&lt;br&gt;		    u4 ( output , i ) ;&lt;br&gt;		    break ;&lt;br&gt;		}&lt;br&gt;	    output . write ( buff ) ;&lt;br&gt;	}&lt;br&gt;    } ;&lt;p&gt;    private final XMLWriter &amp;lt; ClassFile &amp;gt; classFileWriter = new XMLWriter &amp;lt; ClassFile &amp;gt; ( )&lt;br&gt;	{&lt;br&gt;	    public final void write ( final ClassFile classFile , final org . w3c . dom . Document document , final org . w3c . dom . Node parent )&lt;br&gt;	    {&lt;br&gt;		final class AbstractListWriter &amp;lt; R &amp;gt; implements XMLWriter &amp;lt; java . util . List &amp;lt; R &amp;gt; &amp;gt;&lt;br&gt;		{&lt;br&gt;		    private AbstractListWriter ( final XMLWriter &amp;lt; R &amp;gt; rWriter )&lt;br&gt;		    {&lt;br&gt;			super ( ) ;&lt;br&gt;			this . rWriter = rWriter ;&lt;br&gt;		    }&lt;p&gt;		    private XMLWriter &amp;lt; R &amp;gt; rWriter ;&lt;p&gt;		    public final void write ( final java . util . List &amp;lt; R &amp;gt; list , final org . w3c . dom . Document document , final org . w3c . dom . Node parent )&lt;br&gt;		    {&lt;br&gt;			final java . util . Iterator &amp;lt; R &amp;gt; iterator = list . iterator ( ) ;&lt;br&gt;			while ( iterator . hasNext ( ) )&lt;br&gt;			    {&lt;br&gt;				final R r = iterator . next ( ) ;&lt;br&gt;				rWriter . write ( r , document , parent ) ;&lt;br&gt;			    }&lt;br&gt;		    }&lt;br&gt;		}&lt;br&gt;		final XMLWriter &amp;lt; ConstantPool &amp;gt; constantPoolWriter = new XMLWriter &amp;lt; ConstantPool &amp;gt; ( )&lt;br&gt;		{&lt;br&gt;		    public final void write ( ConstantPool cp , final org . w3c . dom . Document document , final org . w3c . dom . Node parent )&lt;br&gt;		    {&lt;br&gt;			final org . w3c . dom . Element element = document . createElement ( &amp;quot;constantPool&amp;quot; ) ;&lt;br&gt;			final byte tag = cp . getTag ( ) ;&lt;br&gt;			final byte [ ] info = cp . getInfo ( ) ;&lt;br&gt;			u1 ( &amp;quot;tag&amp;quot; , tag , document , element ) ;&lt;br&gt;			bytes ( info , document , element ) ;&lt;br&gt;			parent . appendChild ( element ) ;&lt;br&gt;		    }&lt;br&gt;		} ;&lt;br&gt;		final XMLWriter &amp;lt; java . util . List &amp;lt; ConstantPool &amp;gt; &amp;gt; constantPoolListWriter = new AbstractListWriter ( constantPoolWriter ) ;&lt;br&gt;		final XMLWriter &amp;lt; AttributeInfo &amp;gt; attributeInfoWriter = new XMLWriter &amp;lt; AttributeInfo &amp;gt; ( )&lt;br&gt;		{&lt;br&gt;		    public final void write ( AttributeInfo attributeInfo , final org . w3c . dom . Document document , final org . w3c . dom . Node parent )&lt;br&gt;		    {&lt;br&gt;			final org . w3c . dom . Element element = document . createElement ( &amp;quot;attribute&amp;quot; ) ;&lt;br&gt;			final short attributeNameIndex = attributeInfo . getAttributeNameIndex ( ) ;&lt;br&gt;			final byte [ ] info = attributeInfo . getInfo ( ) ;&lt;br&gt;			u2 ( &amp;quot;attributeNameIndex&amp;quot; , attributeNameIndex , document , element ) ;&lt;br&gt;			bytes ( info , document , element ) ;&lt;br&gt;			parent . appendChild ( element ) ;&lt;br&gt;		    }&lt;br&gt;		} ;&lt;br&gt;		final XMLWriter &amp;lt; java . util . List &amp;lt; AttributeInfo &amp;gt; &amp;gt; attributeInfoListWriter = new AbstractListWriter ( attributeInfoWriter ) ;&lt;br&gt;		final class FMWriter implements XMLWriter &amp;lt; FieldMethodInfo &amp;gt;&lt;br&gt;		{&lt;br&gt;		    private FMWriter ( final java . lang . String name )&lt;br&gt;			{&lt;br&gt;			    this . name = name ;&lt;br&gt;			}&lt;br&gt;		    &lt;br&gt;		    private java . lang . String name ;&lt;p&gt;		    public final void write ( FieldMethodInfo fmInfo , final org . w3c . dom . Document document , final org . w3c . dom . Node parent )&lt;br&gt;		    {&lt;br&gt;			final org . w3c . dom . Element element = document . createElement ( name ) ;&lt;br&gt;			final short accessFlags = fmInfo . getAccessFlags ( ) ;&lt;br&gt;			final short nameIndex = fmInfo . getNameIndex ( ) ;&lt;br&gt;			final short descriptorIndex = fmInfo . getDescriptorIndex ( ) ;&lt;br&gt;			final java . util . List &amp;lt; AttributeInfo &amp;gt; attributes = fmInfo . getAttributes ( ) ;&lt;br&gt;			u2 ( &amp;quot;accessFlags&amp;quot; , accessFlags , document , element ) ;&lt;br&gt;			u2 ( &amp;quot;nameIndex&amp;quot; , nameIndex , document , element ) ;&lt;br&gt;			u2 ( &amp;quot;descriptorIndex&amp;quot; , descriptorIndex , document , element ) ;&lt;br&gt;			attributeInfoListWriter . write ( attributes , document , element ) ;&lt;br&gt;			parent . appendChild ( element ) ;&lt;br&gt;		    }&lt;br&gt;		} ;&lt;br&gt;		final XMLWriter &amp;lt; FieldMethodInfo &amp;gt; fieldInfoWriter1 = new FMWriter ( &amp;quot;field&amp;quot; ) ;&lt;br&gt;		final XMLWriter &amp;lt; FieldInfo &amp;gt; fieldInfoWriter = new XMLWriter &amp;lt; FieldInfo &amp;gt; ( )&lt;br&gt;		{&lt;br&gt;		    public final void write ( FieldInfo fieldInfo , final org . w3c . dom . Document document , final org . w3c . dom . Node parent )&lt;br&gt;		    {&lt;br&gt;			fieldInfoWriter1 . write ( fieldInfo , document , parent ) ;&lt;br&gt;		    }&lt;br&gt;		} ;&lt;br&gt;		final XMLWriter &amp;lt; java . util . List &amp;lt; FieldInfo &amp;gt; &amp;gt; fieldInfoListWriter = new AbstractListWriter ( fieldInfoWriter ) ;&lt;br&gt;		final XMLWriter &amp;lt; FieldMethodInfo &amp;gt; methodInfoWriter1 = new FMWriter ( &amp;quot;field&amp;quot; ) ;&lt;br&gt;		final XMLWriter &amp;lt; MethodInfo &amp;gt; methodInfoWriter = new XMLWriter &amp;lt; MethodInfo &amp;gt; ( )&lt;br&gt;		{&lt;br&gt;		    public final void write ( MethodInfo methodInfo , final org . w3c . dom . Document document , final org . w3c . dom . Node parent )&lt;br&gt;		    {&lt;br&gt;			methodInfoWriter1 . write ( methodInfo , document , parent ) ;&lt;br&gt;		    }&lt;br&gt;		} ;&lt;br&gt;		final XMLWriter &amp;lt; java . util . List &amp;lt; MethodInfo &amp;gt; &amp;gt; methodInfoListWriter = new AbstractListWriter ( methodInfoWriter ) ;&lt;br&gt;		final int magic = classFile . getMagic ( ) ;&lt;br&gt;		final short minorVersion = classFile . getMinorVersion ( ) ;&lt;br&gt;		final short majorVersion = classFile . getMajorVersion ( ) ;&lt;br&gt;		final java . util . List &amp;lt; ConstantPool &amp;gt; constantPool = classFile . getConstantPool ( ) ;&lt;br&gt;		final short accessFlags = classFile . getAccessFlags ( ) ;&lt;br&gt;		final short thisClass = classFile . getThisClass ( ) ;&lt;br&gt;		final short superClass = classFile . getSuperClass ( ) ;&lt;br&gt;		final short [ ] interfaces = classFile . getInterfaces ( ) ;&lt;br&gt;		final java . util . List &amp;lt; FieldInfo &amp;gt; fields = classFile . getFields ( ) ;&lt;br&gt;		final java . util . List &amp;lt; MethodInfo &amp;gt; methods = classFile . getMethods ( ) ;&lt;br&gt;		final java . util . List &amp;lt; AttributeInfo &amp;gt; attributes = classFile . getAttributes ( ) ;&lt;br&gt;		final org . w3c . dom . Element element = document . createElement ( &amp;quot;classFile&amp;quot; ) ;&lt;br&gt;		u4 ( &amp;quot;magic&amp;quot; , magic , document , element ) ;&lt;br&gt;		u2 ( &amp;quot;minorVersion&amp;quot; , minorVersion , document , element ) ;&lt;br&gt;		u2 ( &amp;quot;majorVersion&amp;quot; , majorVersion , document , element ) ;&lt;br&gt;		constantPoolListWriter . write ( constantPool , document , element ) ;&lt;br&gt;		u2 ( &amp;quot;accessFlags&amp;quot; , accessFlags , document , element ) ;&lt;br&gt;		u2 ( &amp;quot;thisClass&amp;quot; , thisClass , document , element ) ;&lt;br&gt;		u2 ( &amp;quot;superClass&amp;quot; , superClass , document , element ) ;&lt;br&gt;		for ( int i = 0 ; i &amp;lt; interfaces . length ; i ++ )&lt;br&gt;		    {&lt;br&gt;			final org . w3c . dom . Element e = document . createElement ( &amp;quot;interface&amp;quot; ) ;&lt;br&gt;			u2 ( &amp;quot;constantPoolIndex&amp;quot; , interfaces [ i ] , document , e ) ;&lt;br&gt;			element . appendChild ( e ) ;&lt;br&gt;		    }&lt;br&gt;		fieldInfoListWriter . write ( fields , document , element ) ;&lt;br&gt;		methodInfoListWriter . write ( methods , document , element ) ;&lt;br&gt;		attributeInfoListWriter . write ( attributes , document , element ) ;&lt;br&gt;		parent . appendChild ( element ) ;&lt;br&gt;	    }&lt;p&gt;	    private final void u1 ( final java . lang . String name , final byte value , final org . w3c . dom . Document document , final org . w3c . dom . Element element )&lt;br&gt;	    {&lt;br&gt;		final org . w3c . dom . Attr attribute = document . createAttribute ( name ) ;&lt;br&gt;		final java . lang . String v = java . lang . Byte . toString ( value ) ;&lt;br&gt;		attribute . setNodeValue ( v ) ;&lt;br&gt;		element . setAttributeNode ( attribute ) ;&lt;br&gt;	    }&lt;p&gt;	    private final void u2 ( final java . lang . String name , final short value , final org . w3c . dom . Document document , final org . w3c . dom . Element element )&lt;br&gt;	    {&lt;br&gt;		final org . w3c . dom . Attr attribute = document . createAttribute ( name ) ;&lt;br&gt;		final java . lang . String v = java . lang . Short . toString ( value ) ;&lt;br&gt;		attribute . setNodeValue ( v ) ;&lt;br&gt;		element . setAttributeNode ( attribute ) ;&lt;br&gt;	    }&lt;p&gt;	    private final void u4 ( final java . lang . String name , final int value , final org . w3c . dom . Document document , final org . w3c . dom . Element element )&lt;br&gt;	    {&lt;br&gt;		final org . w3c . dom . Attr attribute = document . createAttribute ( name ) ;&lt;br&gt;		final java . lang . String v = java . lang . Integer . toString ( value ) ;&lt;br&gt;		attribute . setNodeValue ( v ) ;&lt;br&gt;		element . setAttributeNode ( attribute ) ;&lt;br&gt;	    }&lt;p&gt;	    private final void bytes ( final byte [ ] value , final org . w3c . dom . Document document , final org . w3c . dom . Node parent )&lt;br&gt;	    {&lt;br&gt;		java . lang . String v = &amp;quot;&amp;quot; ;&lt;br&gt;		if ( value . length &amp;gt; 0 )&lt;br&gt;		    {&lt;br&gt;			v += value [ 0 ] ;&lt;br&gt;		    }&lt;br&gt;		for ( int i = 1 ; i &amp;lt; value . length ; i ++ )&lt;br&gt;		    {&lt;br&gt;			v += &amp;quot;,&amp;quot; + value [ i ] ;&lt;br&gt;		    }&lt;br&gt;		final org . w3c . dom . CDATASection cData = document . createCDATASection ( v ) ;&lt;br&gt;		parent . appendChild ( cData ) ;&lt;br&gt;	    }&lt;br&gt;	} ;&lt;p&gt;    private final XMLReader &amp;lt; ClassFile &amp;gt; xmlReader = new  XMLReader &amp;lt; ClassFile &amp;gt; ( )&lt;br&gt;    {&lt;br&gt;	public ClassFile read ( final org . w3c . dom . Node node )&lt;br&gt;	{&lt;br&gt;	    class AbstractListReader &amp;lt; T &amp;gt; implements XMLReader &amp;lt; java . util . List &amp;lt; T &amp;gt; &amp;gt;&lt;br&gt;	    {&lt;br&gt;		AbstractListReader ( final java . lang . String name , final XMLReader &amp;lt; T &amp;gt; tReader )&lt;br&gt;		{&lt;br&gt;		    super ( ) ;&lt;br&gt;		    this . name = name ;&lt;br&gt;		    this . tReader = tReader ;&lt;br&gt;		}&lt;p&gt;		private java . lang . String name ;&lt;p&gt;		private XMLReader &amp;lt; T &amp;gt; tReader ;&lt;p&gt;		public final java . util . List &amp;lt; T &amp;gt; read ( final org . w3c . dom . Node node )&lt;br&gt;		{&lt;br&gt;		    final org . w3c . dom . Element element = ( org . w3c . dom . Element ) ( node ) ;&lt;br&gt;		    final java . util . List &amp;lt; T &amp;gt; list = this . read ( element ) ;&lt;br&gt;		    return ( list ) ;&lt;br&gt;		}&lt;p&gt;		private final java . util . List &amp;lt; T &amp;gt; read ( final org . w3c . dom . Element element )&lt;br&gt;		{&lt;br&gt;		    final java . util . List &amp;lt; T &amp;gt; list = new java . util . ArrayList &amp;lt; T &amp;gt; ( ) ;&lt;br&gt;		    final org . w3c . dom . NodeList nodes = getElementsByTagName ( element , this . name ) ;&lt;br&gt;		    for ( int i = 0 ; i &amp;lt; nodes . getLength ( ) ; i ++ )&lt;br&gt;			{&lt;br&gt;			    final org . w3c . dom . Node node = nodes . item ( i ) ;&lt;br&gt;			    T t = this . tReader . read ( node ) ;&lt;br&gt;			    list . add ( t ) ;&lt;br&gt;			}&lt;br&gt;		    return ( list ) ;&lt;br&gt;		}&lt;p&gt;		private final org . w3c . dom . NodeList getElementsByTagName ( final org . w3c . dom . Node node , final java . lang . String tag )&lt;br&gt;		{&lt;br&gt;		    final org . w3c . dom . NodeList children = node . getChildNodes ( ) ;&lt;br&gt;		    final java . util . List &amp;lt; org . w3c . dom . Node &amp;gt; nodes = new java . util . ArrayList &amp;lt; org . w3c . dom . Node &amp;gt; ( ) ;&lt;br&gt;		    for ( int i = 0 ; i &amp;lt; children . getLength ( ) ; i ++ )&lt;br&gt;			{&lt;br&gt;			    final org . w3c . dom . Node child = children . item ( i ) ;&lt;br&gt;			    final java . lang . String name = child . getNodeName ( ) ;&lt;br&gt;			    if ( tag . equals ( name ) )&lt;br&gt;				{&lt;br&gt;				    nodes . add ( child ) ;&lt;br&gt;			}&lt;br&gt;			}&lt;br&gt;		    final org . w3c . dom . NodeList elements = new org . w3c . dom . NodeList ( )&lt;br&gt;			{&lt;br&gt;			    public final int getLength ( )&lt;br&gt;			    {&lt;br&gt;				final int length = nodes . size ( ) ;&lt;br&gt;				return ( length ) ;&lt;br&gt;			    }&lt;p&gt;			    public final org . w3c . dom . Node item ( final int index )&lt;br&gt;			    {&lt;br&gt;				final org . w3c . dom . Node item = nodes . get ( index ) ;&lt;br&gt;				return ( item ) ;&lt;br&gt;			    }&lt;br&gt;			} ;&lt;br&gt;		    return ( elements ) ;&lt;br&gt;		}&lt;br&gt;	    }&lt;br&gt;	    final XMLReader &amp;lt; ConstantPool &amp;gt; constantPoolReader = new XMLReader ( )&lt;br&gt;		{&lt;br&gt;		    public final ConstantPool read ( final org . w3c . dom . Node node )&lt;br&gt;		    {&lt;br&gt;			final org . w3c . dom . Element element = ( org . w3c . dom . Element ) ( node ) ;&lt;br&gt;			final ConstantPool cp = this . read ( element ) ;&lt;br&gt;			return ( cp ) ;&lt;br&gt;		    }&lt;p&gt;		    private final ConstantPool read ( final org . w3c . dom . Element element )&lt;br&gt;		    {&lt;br&gt;			final org . w3c . dom . NamedNodeMap attr = element . getAttributes ( ) ;&lt;br&gt;			final byte tag = u1 ( attr , &amp;quot;tag&amp;quot; ) ;&lt;br&gt;			final byte [ ] info = bytes ( element ) ;&lt;br&gt;			final ConstantPool cp = new ConstantPool ( )&lt;br&gt;			    {&lt;br&gt;				public final byte getTag ( )&lt;br&gt;				{&lt;br&gt;				    return ( tag ) ;&lt;br&gt;				}&lt;p&gt;				public final byte [ ] getInfo ( )&lt;br&gt;				{&lt;br&gt;				    return ( info ) ;&lt;br&gt;				}&lt;br&gt;			    } ;&lt;br&gt;			return ( cp ) ;&lt;br&gt;		    }&lt;br&gt;		} ;&lt;br&gt;	    final XMLReader &amp;lt; java . util . List &amp;lt; ConstantPool &amp;gt; &amp;gt; constantPoolListReader = new AbstractListReader ( &amp;quot;constantPool&amp;quot; , constantPoolReader ) ;&lt;br&gt;	    final org . w3c . dom . NamedNodeMap attr = node . getAttributes ( ) ;&lt;br&gt;	    final int magic = u4 ( attr , &amp;quot;magic&amp;quot; ) ;&lt;br&gt;	    final short minorVersion = u2 ( attr , &amp;quot;minorVersion&amp;quot; ) ;&lt;br&gt;	    final short majorVersion = u2 ( attr , &amp;quot;majorVersion&amp;quot; ) ;&lt;br&gt;	    final java . util . List &amp;lt; ConstantPool &amp;gt; constantPool = constantPoolListReader . read ( node ) ;&lt;br&gt;	    final XMLReader &amp;lt; AttributeInfo &amp;gt; attributeInfoReader = new XMLReader &amp;lt; AttributeInfo &amp;gt; ( )&lt;br&gt;	    {&lt;br&gt;		public final AttributeInfo read ( final org . w3c . dom . Node node )&lt;br&gt;		{&lt;br&gt;		    final org . w3c . dom . NamedNodeMap attr = node . getAttributes ( ) ;&lt;br&gt;		    final short attributeNameIndex = u2 ( attr , &amp;quot;attributeNameIndex&amp;quot; ) ;&lt;br&gt;		    final byte [ ] info = bytes ( node ) ;&lt;br&gt;		    final AttributeInfo attributeInfo = new AttributeInfo ( )&lt;br&gt;			{&lt;br&gt;			    public final java . util . List &amp;lt; ConstantPool &amp;gt; getConstantPool ( )&lt;br&gt;			    {&lt;br&gt;				return ( constantPool ) ;&lt;br&gt;			    }&lt;p&gt;			    public final short getAttributeNameIndex ( )&lt;br&gt;			    {&lt;br&gt;				return ( attributeNameIndex ) ;&lt;br&gt;			    }&lt;p&gt;			    public final byte [ ] getInfo ( )&lt;br&gt;			    {&lt;br&gt;				return ( info ) ;&lt;br&gt;			    }&lt;br&gt;			} ;&lt;br&gt;		    return ( attributeInfo ) ;&lt;br&gt;		}&lt;br&gt;	    } ;&lt;br&gt;	    final XMLReader &amp;lt; java . util . List &amp;lt; AttributeInfo &amp;gt; &amp;gt; attributeInfoListReader = new AbstractListReader ( &amp;quot;attribute&amp;quot; , attributeInfoReader ) ;&lt;br&gt;	    final XMLReader &amp;lt; FMInfo &amp;gt; fmInfoReader = new XMLReader ( )&lt;br&gt;		{&lt;br&gt;		    public final FMInfo read ( final org . w3c . dom . Node node )&lt;br&gt;		    {&lt;br&gt;			final org . w3c . dom . NamedNodeMap attr = node . getAttributes ( ) ;&lt;br&gt;			final short accessFlags = u2 ( attr , &amp;quot;accessFlags&amp;quot; ) ;&lt;br&gt;			final short nameIndex = u2 ( attr , &amp;quot;nameIndex&amp;quot; ) ;&lt;br&gt;			final short descriptorIndex = u2 ( attr , &amp;quot;descriptorIndex&amp;quot; ) ;&lt;br&gt;			final java . util . List &amp;lt; AttributeInfo &amp;gt; attributes = attributeInfoListReader . read ( node ) ;&lt;br&gt;			final FMInfo fmInfo = new FMInfo ( )&lt;br&gt;			    {&lt;br&gt;				public final java . util . List &amp;lt; ConstantPool &amp;gt; getConstantPool ( )&lt;br&gt;				{&lt;br&gt;				    return ( constantPool ) ;&lt;br&gt;				}&lt;p&gt;				public final short getAccessFlags ( )&lt;br&gt;				{&lt;br&gt;				    return ( accessFlags ) ;&lt;br&gt;				}&lt;p&gt;				public final short getNameIndex ( )&lt;br&gt;				{&lt;br&gt;				    return ( nameIndex ) ;&lt;br&gt;				}&lt;p&gt;				public final short getDescriptorIndex ( )&lt;br&gt;				{&lt;br&gt;				    return ( descriptorIndex ) ;&lt;br&gt;				}&lt;p&gt;				public final java . util . List &amp;lt; AttributeInfo &amp;gt; getAttributes ( )&lt;br&gt;				{&lt;br&gt;				    return ( attributes ) ;&lt;br&gt;				}&lt;br&gt;			    } ;&lt;br&gt;			return ( fmInfo ) ;&lt;br&gt;		    }&lt;br&gt;		} ;&lt;br&gt;	    final XMLReader &amp;lt; FieldInfo &amp;gt; fieldInfoReader = new XMLReader &amp;lt; FieldInfo &amp;gt; ( )&lt;br&gt;	    {&lt;br&gt;		public final FieldInfo read ( final org . w3c . dom . Node node )&lt;br&gt;		{&lt;br&gt;		    final FieldInfo fieldInfo = fmInfoReader . read ( node ) ;&lt;br&gt;		    return ( fieldInfo ) ;&lt;br&gt;		}&lt;br&gt;	    } ;&lt;br&gt;	    final XMLReader &amp;lt; java . util . List &amp;lt; FieldInfo &amp;gt; &amp;gt; fieldInfoListReader = new AbstractListReader ( &amp;quot;field&amp;quot; , fieldInfoReader ) ;&lt;br&gt;	    final XMLReader &amp;lt; MethodInfo &amp;gt; methodInfoReader = new XMLReader &amp;lt; MethodInfo &amp;gt; ( )&lt;br&gt;	    {&lt;br&gt;		public final MethodInfo read ( final org . w3c . dom . Node node )&lt;br&gt;		{&lt;br&gt;		    final MethodInfo methodInfo = fmInfoReader . read ( node ) ;&lt;br&gt;		    return ( methodInfo ) ;&lt;br&gt;		}&lt;br&gt;	    } ;&lt;br&gt;	    final XMLReader &amp;lt; java . util . List &amp;lt; MethodInfo &amp;gt; &amp;gt; methodInfoListReader = new AbstractListReader ( &amp;quot;method&amp;quot; , methodInfoReader ) ;&lt;br&gt;	    final short accessFlags = u2 ( attr , &amp;quot;accessFlags&amp;quot; ) ;&lt;br&gt;	    final short thisClass = u2 ( attr , &amp;quot;thisClass&amp;quot; ) ;&lt;br&gt;	    final short superClass = u2 ( attr , &amp;quot;superClass&amp;quot; ) ;&lt;br&gt;	    final org . w3c . dom . NodeList interfaceList = ( ( org . w3c . dom . Element ) ( node ) ) . getElementsByTagName ( &amp;quot;interface&amp;quot; ) ;&lt;br&gt;	    final short [ ] interfaces = new short [ interfaceList . getLength ( ) ] ;&lt;br&gt;	    for ( int i = 0 ; i &amp;lt; interfaceList . getLength ( ) ; i ++ )&lt;br&gt;		{&lt;br&gt;		    final org . w3c . dom . Node intrfcNode = interfaceList . item ( i ) ;&lt;br&gt;		    final org . w3c . dom . NamedNodeMap intrfcAttr = intrfcNode . getAttributes ( ) ;&lt;br&gt;		    interfaces [ i ] = u2 ( intrfcAttr , &amp;quot;constantPoolIndex&amp;quot; ) ;&lt;br&gt;		}&lt;br&gt;	    final java . util . List &amp;lt; FieldInfo &amp;gt; fields = fieldInfoListReader . read ( node ) ;&lt;br&gt;	    final java . util . List &amp;lt; MethodInfo &amp;gt; methods = methodInfoListReader . read ( node ) ;&lt;br&gt;	    final java . util . List &amp;lt; AttributeInfo &amp;gt; attributes = attributeInfoListReader . read ( node ) ;&lt;br&gt;	    final ClassFile classFile = new ClassFile ( )&lt;br&gt;		{&lt;br&gt;		    public final int getMagic ( )&lt;br&gt;		    {&lt;br&gt;			return ( magic ) ;&lt;br&gt;		    }&lt;p&gt;		    public final short getMinorVersion ( )&lt;br&gt;		    {&lt;br&gt;			return ( minorVersion ) ;&lt;br&gt;		    }&lt;p&gt;		    public final short getMajorVersion ( )&lt;br&gt;		    {&lt;br&gt;			return ( majorVersion ) ;&lt;br&gt;		    }&lt;p&gt;		    public final java . util . List &amp;lt; ConstantPool &amp;gt; getConstantPool ( )&lt;br&gt;		    {&lt;br&gt;			return ( constantPool ) ;&lt;br&gt;		    }&lt;p&gt;		    public final short getAccessFlags ( )&lt;br&gt;		    {&lt;br&gt;			return ( accessFlags ) ;&lt;br&gt;		    }&lt;p&gt;		    public final short getThisClass ( )&lt;br&gt;		    {&lt;br&gt;			return ( thisClass ) ;&lt;br&gt;		    }&lt;p&gt;		    public final short getSuperClass ( )&lt;br&gt;		    {&lt;br&gt;			return ( superClass ) ;&lt;br&gt;		    }&lt;p&gt;		    public final short [ ] getInterfaces ( )&lt;br&gt;		    {&lt;br&gt;			return ( interfaces ) ;&lt;br&gt;		    }&lt;p&gt;		    public final java . util . List &amp;lt; FieldInfo &amp;gt; getFields ( )&lt;br&gt;		    {&lt;br&gt;			return ( fields ) ;&lt;br&gt;		    }&lt;p&gt;		    public final java . util . List &amp;lt; MethodInfo &amp;gt; getMethods ( )&lt;br&gt;		    {&lt;br&gt;			return ( methods ) ;&lt;br&gt;		    }&lt;p&gt;		    public final java . util . List &amp;lt; AttributeInfo &amp;gt; getAttributes ( )&lt;br&gt;		    {&lt;br&gt;			return ( attributes ) ;&lt;br&gt;		    }&lt;br&gt;		} ;&lt;br&gt;	    return ( classFile ) ;&lt;br&gt;	}&lt;p&gt;	private final byte u1 ( final org . w3c . dom . NamedNodeMap attributes , final java . lang . String key )&lt;br&gt;	{&lt;br&gt;	    final org . w3c . dom . Node node = attributes . getNamedItem ( key ) ;&lt;br&gt;	    final java . lang . String v = node . getNodeValue ( ) ;&lt;br&gt;	    final byte b = java . lang . Byte . parseByte ( v ) ;&lt;br&gt;	    return ( b ) ;&lt;br&gt;	}&lt;p&gt;	private final short u2 ( final org . w3c . dom . NamedNodeMap attributes , final java . lang . String key )&lt;br&gt;	{&lt;br&gt;	    final org . w3c . dom . Node node = attributes . getNamedItem ( key ) ;&lt;br&gt;	    final java . lang . String v = node . getNodeValue ( ) ;&lt;br&gt;	    final short b = java . lang . Short . parseShort ( v ) ;&lt;br&gt;	    return ( b ) ;&lt;br&gt;	}&lt;p&gt;	private final int u4 ( final org . w3c . dom . NamedNodeMap attributes , final java . lang . String key )&lt;br&gt;	{&lt;br&gt;	    final org . w3c . dom . Node node = attributes . getNamedItem ( key ) ;&lt;br&gt;	    final java . lang . String v = node . getNodeValue ( ) ;&lt;br&gt;	    final int b = java . lang . Integer . parseInt ( v ) ;&lt;br&gt;	    return ( b ) ;&lt;br&gt;	}&lt;p&gt;	private final byte [ ] bytes ( final org . w3c . dom . Node node )&lt;br&gt;	{&lt;br&gt;	    byte [ ] b = null ;&lt;br&gt;	    final org . w3c . dom . NodeList childNodes = node . getChildNodes ( ) ;&lt;br&gt;	    for ( int i = 0 ; i &amp;lt; childNodes . getLength ( ) ; i ++ )&lt;br&gt;		{&lt;br&gt;		    final org . w3c . dom . Node child = childNodes . item ( i ) ;&lt;br&gt;		    if ( child instanceof org . w3c . dom . CDATASection )&lt;br&gt;			{&lt;br&gt;			    final java . lang . String string = child . getNodeValue ( ) ;&lt;br&gt;			    final java . util . StringTokenizer counter = new java . util . StringTokenizer ( string , &amp;quot;,&amp;quot; , false ) ;&lt;br&gt;			    int count = 0 ;&lt;br&gt;			    for ( count = 0 ; counter . hasMoreTokens ( ) ; count ++ )&lt;br&gt;				{&lt;br&gt;				    counter . nextToken ( ) ;&lt;br&gt;				}&lt;br&gt;			    b = new byte [ count ] ;&lt;br&gt;			    final java . util . StringTokenizer tokenizer = new java . util . StringTokenizer ( string , &amp;quot;,&amp;quot; , false ) ;&lt;br&gt;			    for ( int j = 0 ; j &amp;lt; count ; j ++ )&lt;br&gt;				{&lt;br&gt;				    final java . lang . String token = tokenizer . nextToken ( ) ;&lt;br&gt;				    final byte t = java . lang . Byte . parseByte ( token ) ;&lt;br&gt;				    b [ j ] = t ;&lt;br&gt;				}&lt;br&gt;			}&lt;br&gt;		}&lt;br&gt;	    return ( b ) ;&lt;br&gt;	}&lt;br&gt;    } ;&lt;p&gt;    private final void print ( final java . io . PrintStream out , final org . w3c . dom . NodeList nodes )&lt;br&gt;    {&lt;br&gt;	for ( int i = 0 ; i &amp;lt; nodes . getLength ( ) ; i ++ )&lt;br&gt;	    {&lt;br&gt;		final org . w3c . dom . Node node = nodes . item ( i ) ;&lt;br&gt;		this . print ( out , node ) ;&lt;br&gt;	    }&lt;br&gt;    }&lt;p&gt;    private final void print ( final java . io . PrintStream out , final org . w3c . dom . NamedNodeMap nodes )&lt;br&gt;    {&lt;br&gt;	for ( int i = 0 ; i &amp;lt; nodes . getLength ( ) ; i ++ )&lt;br&gt;	    {&lt;br&gt;		final org . w3c . dom . Node node = nodes . item ( i ) ;&lt;br&gt;		this . print ( out , node ) ;&lt;br&gt;	    }&lt;br&gt;    }&lt;p&gt;    private final java . lang . Object printer = new java . lang . Object ( )&lt;br&gt;	{&lt;br&gt;	} ;&lt;p&gt;    private final void print ( final java . io . PrintStream out , final org . w3c . dom . Node node )&lt;br&gt;    {&lt;br&gt;	if ( node instanceof org . w3c . dom . Document )&lt;br&gt;	    {&lt;br&gt;		this . print ( out , ( org . w3c . dom . Document ) ( node ) ) ;&lt;br&gt;	    }&lt;br&gt;	else if ( node instanceof org . w3c . dom . Element )&lt;br&gt;	    {&lt;br&gt;		this . print ( out , ( org . w3c . dom . Element ) ( node ) ) ;&lt;br&gt;	    }&lt;br&gt;	else if ( node instanceof org . w3c . dom . Attr )&lt;br&gt;	    {&lt;br&gt;		this . print ( out , ( org . w3c . dom . Attr ) ( node ) ) ;&lt;br&gt;	    }&lt;br&gt;	else if ( node instanceof org . w3c . dom . CDATASection )&lt;br&gt;	    {&lt;br&gt;		this . print ( out , ( org . w3c . dom . CDATASection ) ( node ) ) ;&lt;br&gt;	    }&lt;br&gt;    }&lt;p&gt;    private final void print ( final java . io . PrintStream out , final org . w3c . dom . Document node )&lt;br&gt;    {&lt;br&gt;	final org . w3c . dom . NodeList childNodes = node . getChildNodes ( ) ;&lt;br&gt;	this . print ( out , childNodes ) ;&lt;br&gt;    } &lt;p&gt;    private final void print ( final java . io . PrintStream out , final org . w3c . dom . Element node )&lt;br&gt;    {&lt;br&gt;	final java . lang . String tagName = node . getTagName ( ) ;&lt;br&gt;	out . print ( &amp;quot;&amp;lt;&amp;quot; + tagName ) ;&lt;br&gt;	final org . w3c . dom . NamedNodeMap namedNodeMap = node . getAttributes ( ) ;&lt;br&gt;	print ( out , namedNodeMap ) ;&lt;br&gt;	out . println ( &amp;quot;&amp;gt;&amp;quot; ) ;&lt;br&gt;	final org . w3c . dom . NodeList childNodes = node . getChildNodes ( ) ;&lt;br&gt;	this . print ( out , childNodes ) ;&lt;br&gt;	out . println ( &amp;quot;&amp;lt;/&amp;quot; + tagName + &amp;quot;&amp;gt;&amp;quot; ) ;&lt;br&gt;    }&lt;p&gt;    private final void print ( final java . io . PrintStream out , final org . w3c . dom . Attr node )&lt;br&gt;    {&lt;br&gt;	final java . lang . String name = node . getName ( ) ;&lt;br&gt;	final java . lang . String value = node . getValue ( ) ;&lt;br&gt;	out . print ( &amp;quot; &amp;quot; + name + &amp;quot;=\&amp;quot;&amp;quot; + value + &amp;quot;\&amp;quot;&amp;quot; ) ;&lt;br&gt;    }&lt;p&gt;    private final void print ( final java . io . PrintStream out , final org . w3c . dom . CDATASection node )&lt;br&gt;    {&lt;br&gt;	final java . lang . String value = node . getNodeValue ( ) ;&lt;br&gt;	out . println ( &amp;quot;&amp;lt;![CDATA[&amp;quot; + value + &amp;quot;]]&amp;gt;&amp;quot; ) ;&lt;br&gt;    }&lt;br&gt;}&lt;p&gt;/*&lt;br&gt; * XMLClassUtil.java&lt;br&gt; */&lt;br&gt;I have been working on this project for a little bit.&lt;br&gt;The program is still very rough.&lt;br&gt;This is an outline of what it is supposed to do.&lt;br&gt;&lt;br&gt;You can use this program to read in a java class file.&lt;br&gt;It will read all the bytes and organize them into an XML file. &lt;br&gt;The program will print the XML file.&lt;br&gt;&lt;br&gt;You can easily read the XML file.&lt;br&gt;You can make minor changes.&lt;br&gt;&lt;br&gt;The program can also read in a xml file and write out bytes.&lt;br&gt;&lt;br&gt;Project Goal:&amp;nbsp; to better understand the class file format. &lt;br&gt;&lt;br&gt;Project Status:&amp;nbsp; the program works almost.&lt;br&gt;I have used HelloWorld.class as a simple test case.&lt;br&gt;I converted HelloWorld.class to HelloWorld.xml and reconverted HelloWorld.xml to HelloWorld.class.1.&lt;br&gt;HelloWorld.class  is the same length as HelloWorld.class.1.&lt;br&gt;Most of the bytes are the same.&lt;br&gt;In fact, the first 70 some percent bytes exactly match.&lt;br&gt;At some point, if you shift, then they would exactly match.&lt;br&gt;(Shifting=put x byte at end, x+1 byte at x, x+2 byte at x+1, ...., end byte at end-1.) &lt;br&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8049567043904260772-8158162587621503173?l=indicativeserviceconcierge.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://indicativeserviceconcierge.blogspot.com/feeds/8158162587621503173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8049567043904260772&amp;postID=8158162587621503173' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8049567043904260772/posts/default/8158162587621503173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8049567043904260772/posts/default/8158162587621503173'/><link rel='alternate' type='text/html' href='http://indicativeserviceconcierge.blogspot.com/2007/11/xmlclassutil-project.html' title='XMLClassUtil Project'/><author><name>Emory Merryman</name><uri>http://www.blogger.com/profile/11804887158226282399</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8049567043904260772.post-6249121428231403967</id><published>2007-11-22T15:57:00.001-05:00</published><updated>2007-11-22T16:09:16.049-05:00</updated><title type='text'>A Simple Robot Application</title><content type='html'>public final class HawkingRobot&lt;br /&gt;{&lt;br /&gt;   private static final int LEFT = 37 ;&lt;p&gt;    private static final int UP = 38 ;&lt;/p&gt;&lt;p&gt;    private static final int RIGHT = 39 ;&lt;/p&gt;&lt;p&gt;    private static final int DOWN = 40 ;&lt;/p&gt;&lt;p&gt;    private static final int PLUS = 61 ;&lt;/p&gt;&lt;p&gt;    private static final int MINUS = 45 ;&lt;/p&gt;&lt;p&gt;    private static final int ASTERISK = 56 ;&lt;/p&gt;&lt;p&gt;    private static final int SLASH = 47 ;&lt;/p&gt;&lt;p&gt;    private static final int ENTER = java . awt . event . KeyEvent . VK_ENTER ;&lt;/p&gt;&lt;p&gt;    private static final int ESC = 27 ;&lt;/p&gt;&lt;p&gt;    private static final int TOGGLEMOUSE = java . awt . event . KeyEvent . VK_SPACE ;&lt;/p&gt;&lt;p&gt;    private static final int MOUSEHOME = java . awt . event . KeyEvent . VK_H ;&lt;/p&gt;&lt;p&gt;    private static final int MOUSEMOVE = java . awt . event . KeyEvent . VK_M ;&lt;/p&gt;&lt;p&gt;    private static final int MOUSEPRESS = java . awt . event . KeyEvent . VK_Q ;&lt;/p&gt;&lt;p&gt;    private static final int MOUSERELEASE =  java . awt . event . KeyEvent . VK_W ;&lt;/p&gt;&lt;p&gt;    private static final int KEYPRESS =  java . awt . event . KeyEvent . VK_E ;&lt;/p&gt;&lt;p&gt;    private static final int KEYRELEASE =  java . awt . event . KeyEvent . VK_R ;&lt;/p&gt;&lt;p&gt;    private static final int GETPIXELCOLOR =  java . awt . event . KeyEvent . VK_C ;&lt;/p&gt;&lt;p&gt;    private static final int CREATESCREENCAPTURE =  java . awt . event . KeyEvent . VK_S ;&lt;/p&gt;&lt;p&gt;    private static final int AUTOWAIT =  java . awt . event . KeyEvent . VK_A ;&lt;/p&gt;&lt;p&gt;    private static final int DELAY = java . awt . event . KeyEvent . VK_D ;&lt;/p&gt;&lt;p&gt;    private static final int IDLE =  java . awt . event . KeyEvent . VK_I ;&lt;/p&gt;&lt;p&gt;    public static final void main ( final java . lang . String [ ] args ) throws java . lang . Exception&lt;br /&gt;   {&lt;br /&gt; final java . lang . Runnable exitRunnable = new java . lang . Runnable ( )&lt;br /&gt;     {&lt;br /&gt;  public final void run ( )&lt;br /&gt;  {&lt;br /&gt;      java . lang . System . exit ( 0 ) ;&lt;br /&gt;  }&lt;br /&gt;     } ;&lt;br /&gt; final javax . swing . JFrame jFrame = new javax . swing . JFrame ( ) ;&lt;br /&gt; final java . awt . Container contentPane = jFrame . getContentPane ( ) ;&lt;br /&gt; final javax . swing . JDesktopPane jDesktopPane = new javax . swing . JDesktopPane ( ) ;&lt;br /&gt; contentPane . add ( jDesktopPane ) ;&lt;br /&gt; final java . awt . Robot robot = new java . awt . Robot ( ) ;&lt;br /&gt; final java . lang . Runnable robotRunnable = new java . lang . Runnable ( )&lt;br /&gt;     {&lt;br /&gt;  public final void run ( )&lt;br /&gt;  {&lt;br /&gt;      final boolean recordMode [ ] = new boolean [ 1 ] ;&lt;br /&gt;      final java . util . List &amp;lt; java . lang . Runnable &amp;gt; runnables = new java . util . ArrayList &amp;lt; java . lang . Runnable &amp;gt; ( ) ;&lt;br /&gt;      final int [ ] point = new int [ 2 ] ;&lt;br /&gt;      final boolean [ ] mouseMode = new boolean [ 1 ] ;&lt;br /&gt;      mouseMode [ 0 ] = true ;&lt;br /&gt;      final int [ ] keyMode = new int [ 2 ] ;&lt;br /&gt;      keyMode [ 0 ] = 1 ;&lt;br /&gt;      final int [ ] sleep = new int [ 1 ] ;&lt;br /&gt;      sleep [ 0 ] = 1 ;&lt;br /&gt;      final javax . swing . JInternalFrame jInternalFrame = new javax . swing . JInternalFrame ( "Robot" , true , true , true , true ) ;&lt;br /&gt;      final javax . swing . JButton jButton = new javax . swing . JButton ( "Mouse" ) ;&lt;br /&gt;      jButton . setFocusable ( true ) ;&lt;br /&gt;      jButton . setRequestFocusEnabled ( true ) ;&lt;br /&gt;      jInternalFrame . getContentPane ( ) . add ( jButton ) ;&lt;br /&gt;      final java . lang . Runnable toggleMouseModeRunnable = new java . lang . Runnable ( )&lt;br /&gt;   {&lt;br /&gt;       public final void run ( )&lt;br /&gt;       {&lt;br /&gt;    mouseMode [ 0 ] = ! mouseMode [ 0 ] ;&lt;br /&gt;       }&lt;br /&gt;   } ;&lt;br /&gt;      final java . lang . Runnable mouseToPointRunnable = new java . lang . Runnable ( )&lt;br /&gt;   {&lt;br /&gt;       public final void run ( )&lt;br /&gt;       {&lt;br /&gt;    final int x = point [ 0 ] ;&lt;br /&gt;    final int y = point [ 1 ] ;&lt;br /&gt;    robot . mouseMove ( x , y ) ;&lt;br /&gt;       }&lt;br /&gt;   } ;&lt;br /&gt;      final java . lang . Runnable mouseMoveRunnable = new java . lang . Runnable ( )&lt;br /&gt;   {&lt;br /&gt;       public final void run ( )&lt;br /&gt;       {&lt;br /&gt;    final int x = point [ 0 ] ;&lt;br /&gt;    final int y = point [ 1 ] ;&lt;br /&gt;    final java . lang . Runnable runnable = new java . lang . Runnable ( )&lt;br /&gt;        {&lt;br /&gt;     public final void run ( )&lt;br /&gt;     {&lt;br /&gt;         robot . mouseMove ( x , y ) ;&lt;br /&gt;     }&lt;br /&gt;        } ;&lt;br /&gt;    runnables . add ( runnable ) ;&lt;br /&gt;       }&lt;br /&gt;   } ;&lt;br /&gt;      final java . lang . Runnable mousePressRunnable = new java . lang . Runnable ( )&lt;br /&gt;   {&lt;br /&gt;       public final void run ( )&lt;br /&gt;       {&lt;br /&gt;    final int [ ] pressOrRelease = new int [ 1 ] ;&lt;br /&gt;    final int [ ] buttons = new int [ 1 ] ;&lt;br /&gt;    final java . util . Map &amp;lt; java . lang . Integer , java . lang . String &amp;gt; codeMap = new CodeMap ( ) ;&lt;br /&gt;    codeMap . put ( java . awt . event . InputEvent . BUTTON1_MASK , "Button 1" ) ;&lt;br /&gt;    codeMap . put ( java . awt . event . InputEvent . BUTTON2_MASK , "Button 2" ) ;&lt;br /&gt;    codeMap . put ( java . awt . event . InputEvent . BUTTON3_MASK , "Button 3" ) ;&lt;br /&gt;    final int x = point [ 0 ] ;&lt;br /&gt;    final int y = point [ 1 ] ;&lt;br /&gt;    mouseMode [ 0 ] = false ;&lt;br /&gt;    radio ( jInternalFrame , codeMap , pressOrRelease , buttons ) ;&lt;br /&gt;    toggleMouseModeRunnable . run ( ) ;&lt;br /&gt;    final java . lang . Runnable runnable = new java . lang . Runnable ( )&lt;br /&gt;        {&lt;br /&gt;     public final void run ( )&lt;br /&gt;     {&lt;br /&gt;         robot . mouseMove ( x , y ) ;&lt;br /&gt;         if ( pressOrRelease [ 0 ] == 1 )&lt;br /&gt;      {&lt;br /&gt;          robot . mousePress ( buttons [ 0 ] ) ;&lt;br /&gt;      }&lt;br /&gt;         else if ( pressOrRelease [ 0 ] == 2 )&lt;br /&gt;      {&lt;br /&gt;          robot . mouseRelease ( buttons [ 0 ] ) ;&lt;br /&gt;      }&lt;br /&gt;         else if ( pressOrRelease [ 0 ] == 3 )&lt;br /&gt;      {&lt;br /&gt;          robot . mousePress ( buttons [ 0 ] ) ;&lt;br /&gt;          robot . mouseRelease ( buttons [ 0 ] ) ;&lt;br /&gt;      }&lt;br /&gt;     }&lt;br /&gt;        } ;&lt;br /&gt;    runnables . add ( runnable ) ;&lt;br /&gt;    runnable . run ( ) ;&lt;br /&gt;    jButton . requestFocus ( ) ;&lt;br /&gt;       }&lt;br /&gt;   } ;&lt;br /&gt;      final java . lang . Runnable keyPressRunnable = new java . lang . Runnable ( )&lt;br /&gt;   {&lt;br /&gt;       public final void run ( )&lt;br /&gt;       {&lt;br /&gt;    final int [ ] pressOrRelease = new int [ 1 ] ;&lt;br /&gt;    final int [ ] buttons = new int [ 1 ] ;&lt;br /&gt;    final java . util . Map &amp;lt; java . lang . Integer , java . lang . String &amp;gt; codeMap = new CodeMap ( ) ;&lt;br /&gt;    codeMap . put ( java . awt . event . KeyEvent . VK_A , "A" ) ;&lt;br /&gt;    codeMap . put ( java . awt . event . KeyEvent . VK_B , "B" ) ;&lt;br /&gt;    codeMap . put ( java . awt . event . KeyEvent . VK_C , "C" ) ;&lt;br /&gt;    codeMap . put ( java . awt . event . KeyEvent . VK_D , "D" ) ;&lt;br /&gt;    codeMap . put ( java . awt . event . KeyEvent . VK_E , "E" ) ;&lt;br /&gt;    codeMap . put ( java . awt . event . KeyEvent . VK_F , "F" ) ;&lt;br /&gt;    codeMap . put ( java . awt . event . KeyEvent . VK_G , "G" ) ;&lt;br /&gt;    codeMap . put ( java . awt . event . KeyEvent . VK_H , "H" ) ;&lt;br /&gt;    codeMap . put ( java . awt . event . KeyEvent . VK_I , "I" ) ;&lt;br /&gt;    codeMap . put ( java . awt . event . KeyEvent . VK_J , "J" ) ;&lt;br /&gt;    codeMap . put ( java . awt . event . KeyEvent . VK_K , "K" ) ;&lt;br /&gt;    codeMap . put ( java . awt . event . KeyEvent . VK_L , "L" ) ;&lt;br /&gt;    codeMap . put ( java . awt . event . KeyEvent . VK_M , "M" ) ;&lt;br /&gt;    codeMap . put ( java . awt . event . KeyEvent . VK_N , "N" ) ;&lt;br /&gt;    codeMap . put ( java . awt . event . KeyEvent . VK_O , "O" ) ;&lt;br /&gt;    codeMap . put ( java . awt . event . KeyEvent . VK_P , "P" ) ;&lt;br /&gt;    codeMap . put ( java . awt . event . KeyEvent . VK_Q , "Q" ) ;&lt;br /&gt;    codeMap . put ( java . awt . event . KeyEvent . VK_R , "R" ) ;&lt;br /&gt;    codeMap . put ( java . awt . event . KeyEvent . VK_S , "S" ) ;&lt;br /&gt;    codeMap . put ( java . awt . event . KeyEvent . VK_T , "T" ) ;&lt;br /&gt;    codeMap . put ( java . awt . event . KeyEvent . VK_U , "U" ) ;&lt;br /&gt;    codeMap . put ( java . awt . event . KeyEvent . VK_V , "V" ) ;&lt;br /&gt;    codeMap . put ( java . awt . event . KeyEvent . VK_W , "W" ) ;&lt;br /&gt;    codeMap . put ( java . awt . event . KeyEvent . VK_X , "X" ) ;&lt;br /&gt;    codeMap . put ( java . awt . event . KeyEvent . VK_Y , "Y" ) ;&lt;br /&gt;    codeMap . put ( java . awt . event . KeyEvent . VK_Z , "Z" ) ;&lt;br /&gt;    final int x = point [ 0 ] ;&lt;br /&gt;    final int y = point [ 1 ] ;&lt;br /&gt;    mouseMode [ 0 ] = false ;&lt;br /&gt;    radio ( jInternalFrame , codeMap , pressOrRelease , buttons ) ;&lt;br /&gt;    toggleMouseModeRunnable . run ( ) ;&lt;br /&gt;    final java . lang . Runnable runnable = new java . lang . Runnable ( )&lt;br /&gt;        {&lt;br /&gt;     public final void run ( )&lt;br /&gt;     {&lt;br /&gt;         robot . mouseMove ( x , y ) ;&lt;br /&gt;         if ( pressOrRelease [ 0 ] == 1 )&lt;br /&gt;      {&lt;br /&gt;          robot . keyPress ( buttons [ 0 ] ) ;&lt;br /&gt;      }&lt;br /&gt;         else if ( pressOrRelease [ 0 ] == 2 )&lt;br /&gt;      {&lt;br /&gt;          robot . keyRelease ( buttons [ 0 ] ) ;&lt;br /&gt;      }&lt;br /&gt;         else if ( pressOrRelease [ 0 ] == 3 )&lt;br /&gt;      {&lt;br /&gt;          robot . keyPress ( buttons [ 0 ] ) ;&lt;br /&gt;          robot . keyRelease ( buttons [ 0 ] ) ;&lt;br /&gt;      }&lt;br /&gt;     }&lt;br /&gt;        } ;&lt;br /&gt;    runnables . add ( runnable ) ;&lt;br /&gt;    runnable . run ( ) ;&lt;br /&gt;    jButton . requestFocus ( ) ;&lt;br /&gt;       }&lt;br /&gt;   } ;&lt;br /&gt;      final java . lang . Runnable delayRunnable = new java . lang . Runnable ( )&lt;br /&gt;   {&lt;br /&gt;       public final void run ( )&lt;br /&gt;       {&lt;br /&gt;    final java . lang . Runnable runnable = new java . lang . Runnable ( )&lt;br /&gt;        {&lt;br /&gt;     final java . lang . String delayString = javax . swing . JOptionPane . showInputDialog ( jInternalFrame , "Delay (in milliseconds)" ) ;&lt;br /&gt;     final int delay = java . lang . Integer . parseInt ( delayString ) ;&lt;br /&gt;     public final void run ( )&lt;br /&gt;     {&lt;br /&gt;         robot . delay ( delay ) ;&lt;br /&gt;     }&lt;br /&gt;        } ;&lt;br /&gt;    runnables . add ( runnable ) ;&lt;br /&gt;       }&lt;br /&gt;   } ;&lt;br /&gt;      final java . awt . event . KeyListener keyListener = new java . awt . event . KeyAdapter ( )&lt;br /&gt;   {&lt;br /&gt;       public final void keyPressed ( final java . awt . event . KeyEvent e )&lt;br /&gt;       {&lt;br /&gt;    final int keyCode = e . getKeyCode ( ) ;&lt;br /&gt;    if ( keyCode == TOGGLEMOUSE )&lt;br /&gt;        {&lt;br /&gt;     toggleMouseModeRunnable . run ( ) ;&lt;br /&gt;        }&lt;br /&gt;    else if ( keyCode == MOUSEHOME )&lt;br /&gt;        {&lt;br /&gt;     point [ 0 ] = 0 ;&lt;br /&gt;     point [ 1 ] = 1 ;&lt;br /&gt;        }&lt;br /&gt;    else if ( keyCode == MOUSEMOVE )&lt;br /&gt;        {&lt;br /&gt;     mouseMoveRunnable . run ( ) ;&lt;br /&gt;        }&lt;br /&gt;    else if ( keyCode == MOUSEPRESS )&lt;br /&gt;        {&lt;br /&gt;     mousePressRunnable . run ( ) ;&lt;br /&gt;        }&lt;br /&gt;    else if ( keyCode == KEYPRESS )&lt;br /&gt;        {&lt;br /&gt;     keyPressRunnable . run ( ) ;&lt;br /&gt;        }&lt;br /&gt;    else if ( keyCode == DELAY )&lt;br /&gt;        {&lt;br /&gt;     delayRunnable . run ( ) ;&lt;br /&gt;        }&lt;br /&gt;    else if ( ( keyCode == LEFT ) || ( keyCode == RIGHT ) || ( keyCode == UP ) || ( keyCode == DOWN ) )&lt;br /&gt;        {&lt;br /&gt;     keyMode [ 0 ] = 1 ;&lt;br /&gt;     keyMode [ 1 ] = keyCode ;&lt;br /&gt;        }&lt;br /&gt;    else if ( keyCode == PLUS )&lt;br /&gt;        {&lt;br /&gt;     sleep [ 0 ] ++ ;&lt;br /&gt;        }&lt;br /&gt;    else if ( keyCode == MINUS )&lt;br /&gt;        {&lt;br /&gt;     sleep [ 0 ] -- ;&lt;br /&gt;        }&lt;br /&gt;    else if ( keyCode == ASTERISK )&lt;br /&gt;        {&lt;br /&gt;     sleep [ 0 ] *= 2 ;&lt;br /&gt;        }&lt;br /&gt;    else if ( keyCode == SLASH )&lt;br /&gt;        {&lt;br /&gt;     sleep [ 0 ] /= 2 ;&lt;br /&gt;        }&lt;br /&gt;    else if ( keyCode == ESC )&lt;br /&gt;        {&lt;br /&gt;     recordMode [ 0 ] = false ;&lt;br /&gt;     jButton . removeKeyListener ( this ) ;&lt;br /&gt;        }&lt;br /&gt;    if ( sleep [ 0 ] &amp;lt;= 0 )&lt;br /&gt;        {&lt;br /&gt;     sleep [ 0 ] = 1 ;&lt;br /&gt;        }&lt;br /&gt;    else if ( sleep [ 0 ] &amp;gt; 2048 )&lt;br /&gt;        {&lt;br /&gt;     sleep [ 0 ] = 2048 ;&lt;br /&gt;        }&lt;br /&gt;       }&lt;/p&gt;&lt;p&gt;       public final void keyReleased ( final java . awt . event . KeyEvent e )&lt;br /&gt;       {&lt;br /&gt;    keyMode [ 0 ] = 0 ;&lt;br /&gt;       }&lt;br /&gt;   } ;&lt;br /&gt;      final java . lang . Runnable recordRobotRunnable = new java . lang . Runnable ( )&lt;br /&gt;   {&lt;br /&gt;       public final void run ( )&lt;br /&gt;       {&lt;br /&gt;    jButton . requestFocus ( ) ;&lt;br /&gt;    jButton . addKeyListener ( keyListener ) ;&lt;br /&gt;    recordMode [ 0 ] = true ;&lt;br /&gt;    while ( recordMode [ 0 ] )&lt;br /&gt;        {&lt;br /&gt;     if ( ( keyMode [ 0 ] == 1 ) &amp;amp;&amp;amp; ( mouseMode [ 0 ] ) )&lt;br /&gt;         {&lt;br /&gt;      if ( keyMode [ 1 ] == LEFT )&lt;br /&gt;          {&lt;br /&gt;       point [ 0 ] -- ;&lt;br /&gt;          }&lt;br /&gt;      else if ( keyMode [ 1 ] == RIGHT )&lt;br /&gt;          {&lt;br /&gt;       point [ 0 ] ++ ;&lt;br /&gt;          }&lt;br /&gt;      else if ( keyMode [ 1 ] == UP )&lt;br /&gt;          {&lt;br /&gt;       point [ 1 ] -- ;&lt;br /&gt;          }&lt;br /&gt;      else if ( keyMode [ 1 ] == DOWN )&lt;br /&gt;          {&lt;br /&gt;       point [ 1 ] ++ ;&lt;br /&gt;          }&lt;br /&gt;      else&lt;br /&gt;          {&lt;br /&gt;       keyMode [ 0 ] = 0 ;&lt;br /&gt;          }&lt;br /&gt;         }&lt;br /&gt;     if ( mouseMode [ 0 ] == true )&lt;br /&gt;         {&lt;br /&gt;      mouseToPointRunnable . run ( ) ;&lt;br /&gt;      robot . delay ( sleep [ 0 ] ) ;&lt;br /&gt;         }&lt;br /&gt;        }&lt;br /&gt;       }&lt;br /&gt;   } ;&lt;br /&gt;      final java . lang . Runnable runRunnable = new java . lang . Runnable ( )&lt;br /&gt;   {&lt;br /&gt;       public final void run ( )&lt;br /&gt;       {&lt;br /&gt;    final java . util . Iterator &amp;lt; java . lang . Runnable &amp;gt; iter = runnables . iterator ( ) ;&lt;br /&gt;    while ( iter . hasNext ( ) )&lt;br /&gt;        {&lt;br /&gt;     final java . lang . Runnable next = iter . next ( ) ;&lt;br /&gt;     next . run ( ) ;&lt;br /&gt;        }&lt;br /&gt;       }&lt;br /&gt;   } ;&lt;br /&gt;      final java . lang . Runnable rerunRunnable = new java . lang . Runnable ( )&lt;br /&gt;   {&lt;br /&gt;       public final void run ( )&lt;br /&gt;       {&lt;br /&gt;    while ( true )&lt;br /&gt;        {&lt;br /&gt;     runRunnable . run ( ) ;&lt;br /&gt;     try&lt;br /&gt;         {&lt;br /&gt;      java . lang . Thread . sleep ( 60 * 1000 ) ;&lt;br /&gt;         }&lt;br /&gt;     catch ( final java . lang . Exception cause )&lt;br /&gt;         {&lt;br /&gt;      cause . printStackTrace ( ) ;&lt;br /&gt;         }&lt;br /&gt;        }&lt;br /&gt;       }&lt;br /&gt;   } ;&lt;br /&gt;      jInternalFrame . setSize ( 160 , 160 ) ;&lt;br /&gt;      final javax . swing . JMenuBar jMenuBar = new javax . swing . JMenuBar ( ) ;&lt;br /&gt;      final javax . swing . JMenu jMenu = new javax . swing . JMenu ( "Robot" ) ;&lt;br /&gt;      action ( recordRobotRunnable , "Record Robot" , jMenu ) ;&lt;br /&gt;      action ( runRunnable , "Run" , jMenu ) ;&lt;br /&gt;      action ( rerunRunnable , "Continuously Run" , jMenu ) ;&lt;br /&gt;      jMenuBar . add ( jMenu ) ;&lt;br /&gt;      jInternalFrame . setJMenuBar ( jMenuBar ) ;&lt;br /&gt;      jInternalFrame . setVisible ( true ) ;&lt;br /&gt;      jDesktopPane . add ( jInternalFrame ) ;&lt;br /&gt;  }&lt;br /&gt;     } ;&lt;br /&gt; jFrame . setSize ( 200 , 200 ) ;&lt;br /&gt; final javax . swing . JMenuBar jMenuBar = new javax . swing . JMenuBar ( ) ;&lt;br /&gt; final javax . swing . JMenu jMenu = new javax . swing . JMenu ( "File" ) ;&lt;br /&gt; action ( robotRunnable , "Robot" , jMenu ) ;&lt;br /&gt; action ( exitRunnable , "Exit" , jMenu ) ;&lt;br /&gt; jMenuBar . add ( jMenu ) ;&lt;br /&gt; jFrame . setJMenuBar ( jMenuBar ) ;&lt;br /&gt; final java . awt . event . WindowListener windowListener = new java . awt . event . WindowAdapter ( )&lt;br /&gt;     {&lt;br /&gt;  public final void windowClosing ( final java . awt . event . WindowEvent e )&lt;br /&gt;  {&lt;br /&gt;      start ( exitRunnable ) ;&lt;br /&gt;  }&lt;br /&gt;     } ;&lt;br /&gt; jFrame . addWindowListener ( windowListener ) ;&lt;br /&gt; jFrame . setVisible ( true ) ;&lt;br /&gt;   }&lt;/p&gt;&lt;p&gt;    private static final void start ( final java . lang . Runnable runnable )&lt;br /&gt;   {&lt;br /&gt; final java . lang . Thread thread = new java . lang . Thread ( runnable ) ;&lt;br /&gt; thread . start ( ) ;&lt;br /&gt;   }&lt;/p&gt;&lt;p&gt;    private static final void action ( final java . lang . Runnable runnable , final java . lang . String name , final javax . swing . JMenu jMenu )&lt;br /&gt;   {&lt;br /&gt; final javax . swing . Action action = action ( runnable , name ) ;&lt;br /&gt; jMenu . add ( action ) ;&lt;br /&gt;   }&lt;/p&gt;&lt;p&gt;    private static final javax . swing . Action action ( final java . lang . Runnable runnable , final java . lang . String name )&lt;br /&gt;   {&lt;br /&gt; final javax . swing . Action action = new javax . swing . AbstractAction ( name )&lt;br /&gt;     {&lt;br /&gt;  public final void actionPerformed ( final java . awt . event . ActionEvent e )&lt;br /&gt;  {&lt;br /&gt;      start ( runnable ) ;&lt;br /&gt;  }&lt;br /&gt;     } ;&lt;br /&gt; return ( action ) ;&lt;br /&gt;   }&lt;/p&gt;&lt;p&gt;    private static final void radio ( final javax . swing . ButtonGroup buttonGroup , final javax . swing . JPanel jPanel , final java . lang . String name , final int [ ] code , final int codeValue )&lt;br /&gt;   {&lt;br /&gt; final javax . swing . Action action = new javax . swing . AbstractAction ( name )&lt;br /&gt;     {&lt;br /&gt;  public final void actionPerformed ( final java . awt . event . ActionEvent e )&lt;br /&gt;  {&lt;br /&gt;      code [ 0 ] = codeValue ;&lt;br /&gt;  }&lt;br /&gt;     } ;&lt;br /&gt; final javax . swing . JRadioButton jRadioButton = new javax . swing . JRadioButton ( action ) ;&lt;br /&gt; buttonGroup . add ( jRadioButton ) ;&lt;br /&gt; jPanel . add ( jRadioButton ) ;&lt;br /&gt;   }&lt;/p&gt;&lt;p&gt;    private static final void radio ( final javax . swing . JInternalFrame jInternalFrame , final java . util . Map &amp;lt; java . lang . Integer , java . lang . String &amp;gt; codeMap , final int [ ] pressOrRelease , final int [ ] code )&lt;br /&gt;   {&lt;br /&gt; final javax . swing . JPanel prPanel = new javax . swing . JPanel ( ) ;&lt;br /&gt; final javax . swing . JPanel cdPanel = new javax . swing . JPanel ( ) ;&lt;br /&gt; final javax . swing . ButtonGroup prGroup = new javax . swing . ButtonGroup ( ) ;&lt;br /&gt; final javax . swing . ButtonGroup cdGroup = new javax . swing . ButtonGroup ( ) ;&lt;br /&gt; radio ( prGroup , prPanel , "Press" , pressOrRelease , 1 ) ;&lt;br /&gt; radio ( prGroup , prPanel , "Release" , pressOrRelease , 2 ) ;&lt;br /&gt; radio ( prGroup , prPanel , "Press And Release" , pressOrRelease , 3 ) ;&lt;br /&gt; final java . util . Set &amp;lt; java . lang . Integer &amp;gt; keySet = codeMap . keySet ( ) ;&lt;br /&gt; final java . util . Iterator &amp;lt; java . lang . Integer &amp;gt; iterator = keySet . iterator ( ) ;&lt;br /&gt; while ( iterator . hasNext ( ) )&lt;br /&gt;     {&lt;br /&gt;  final java . lang . Integer key = iterator . next ( ) ;&lt;br /&gt;  final int k = key . intValue ( ) ;&lt;br /&gt;  final java . lang . String name = codeMap . get ( key ) ;&lt;br /&gt;  radio ( cdGroup , cdPanel , name , code , k ) ;&lt;br /&gt;     }&lt;br /&gt; final javax . swing . JPanel jPanel = new javax . swing . JPanel ( ) ;&lt;br /&gt; jPanel . add ( prPanel ) ;&lt;br /&gt; jPanel . add ( cdPanel ) ;&lt;br /&gt; javax . swing . JOptionPane . showMessageDialog ( jInternalFrame , jPanel ) ;&lt;br /&gt;   }&lt;/p&gt;&lt;p&gt;    private static final class CodeMap extends java . util . Hashtable &amp;lt; java . lang . Integer , java . lang . String &amp;gt;&lt;br /&gt;   {&lt;br /&gt; public final void put ( final int key , final java . lang . Object value )&lt;br /&gt; {&lt;br /&gt;     final java . lang . Integer k = new java . lang . Integer ( key ) ;&lt;br /&gt;     final java . lang . String v = value . toString ( ) ;&lt;br /&gt;     super . put ( k , v ) ;&lt;br /&gt; }&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;/p&gt;&lt;p&gt;This is a simle Robot application.  It makes use of the class java.awt.Robot.&lt;br /&gt;&lt;br /&gt;You can use it to record a robot.&lt;br /&gt;When you record a robot, you use the keyboard to control input to the system.&lt;br /&gt;For example, you use the up, down, left, and right arrow keys to control the mouse.&lt;br /&gt;The application will record your inputs.&lt;br /&gt;&lt;br /&gt;Then later, you can play them back.&lt;br /&gt;&lt;br /&gt;For now, I have abandoned this project.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8049567043904260772-6249121428231403967?l=indicativeserviceconcierge.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://indicativeserviceconcierge.blogspot.com/feeds/6249121428231403967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8049567043904260772&amp;postID=6249121428231403967' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8049567043904260772/posts/default/6249121428231403967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8049567043904260772/posts/default/6249121428231403967'/><link rel='alternate' type='text/html' href='http://indicativeserviceconcierge.blogspot.com/2007/11/simple-robot-application.html' title='A Simple Robot Application'/><author><name>Emory Merryman</name><uri>http://www.blogger.com/profile/11804887158226282399</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8049567043904260772.post-1141742628987158143</id><published>2007-11-15T14:35:00.000-05:00</published><updated>2007-11-15T14:36:16.467-05:00</updated><title type='text'></title><content type='html'>&lt;h1 align="center"&gt;   &lt;font size="3"&gt;&lt;font size="5"&gt;Emory Merryman, III&lt;/font&gt;&lt;br&gt;   &lt;/font&gt; &lt;/h1&gt; &lt;div style="text-align: center;"&gt;   &lt;font size="3"&gt;Email: &lt;/font&gt;&lt;a title="9jcy4o0xk13liez@jetable.com" href="mailto:9jcy4o0xk13liez@jetable.com" id="wo:9"&gt;9jcy4o0xk13liez@jetable.com&lt;/a&gt; &lt;br&gt;&lt;font size="3"&gt;Resume:  &lt;/font&gt;&lt;a class="tabcontent" href="Doc?id=dck5cwbt_129gzg7p9" id="publishedDocumentUrl" target="_blank"&gt;http://docs.google.com/Doc?id=dck5cwbt_129gzg7p9&lt;/a&gt; &lt;/div&gt; &lt;p align="center"&gt; &lt;/p&gt; &lt;h2&gt;   &lt;font size="3"&gt;&lt;font size="4"&gt;Education&lt;/font&gt; &lt;/font&gt; &lt;/h2&gt; &lt;ul&gt;   &lt;li&gt;     &lt;font size="3"&gt;Master of Science (3.45 GPA) in &lt;b&gt;Computer Science&lt;/b&gt;, McGill University, Montreal, Quebec, Canada, 2005. &lt;/font&gt;     &lt;ul&gt;       &lt;li&gt;         &lt;font size="3"&gt;Topic:  High Performance Distributed Database Systems&lt;/font&gt;       &lt;/li&gt;       &lt;li&gt;         &lt;font size="3"&gt;Databases Studied:  DB2, Oracle&lt;br&gt;         &lt;/font&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt; &lt;ul&gt;   &lt;li&gt;     &lt;font size="3"&gt;Master of Science in &lt;b&gt;Applied Statistics&lt;/b&gt; (3.35 GPA), Bowling Green State University, Bowling Green, Ohio, United States of America, 1999. &lt;/font&gt;   &lt;/li&gt; &lt;/ul&gt; &lt;ul&gt;   &lt;li&gt;     &lt;font size="3"&gt;Bachelor of Science in &lt;b&gt;Psychology&lt;/b&gt; (&lt;i&gt;Cum Laude&lt;/i&gt;), James Madison University, Harrisonburg, Virginia, United States of America, 1996. &lt;/font&gt;     &lt;ul&gt;       &lt;li&gt;         &lt;font size="3"&gt;Recipient American Society for Quality Control Applied Statistics Award&lt;br&gt;         &lt;/font&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt; &lt;h2&gt;   &lt;font size="3"&gt;&lt;font size="4"&gt;Experience&lt;/font&gt; &lt;/font&gt; &lt;/h2&gt; &lt;ul&gt;   &lt;li&gt;     &lt;font size="3"&gt;&lt;b&gt;Senior Lecturer&lt;/b&gt;, Missouri State University Branch Campus Dalian, Dalian,  Liaoning, China, 2007. &lt;/font&gt;     &lt;ul&gt;       &lt;li&gt;         &lt;font size="3"&gt;Taught Students how to use Microsoft Office:  Excel, Word, PowerPoint, Access &lt;/font&gt;       &lt;/li&gt;       &lt;li&gt;         &lt;font size="3"&gt;Taught Students simple web page design (html)&lt;br&gt;         &lt;/font&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt; &lt;ul&gt;   &lt;li&gt;     &lt;font size="3"&gt;&lt;b&gt;Foreign Expert&lt;/b&gt;, Southwest University of Science and Technology, Mianyang, Sichuan, China, 2005 -- 2007. &lt;/font&gt;     &lt;ul&gt;       &lt;li&gt;         &lt;font size="3"&gt;Taught Students Database Systems (Microsoft Access, Microsoft SQLServer) &lt;/font&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt; &lt;ul&gt;   &lt;li&gt;     &lt;font size="3"&gt;&lt;b&gt;Teaching Assistant&lt;/b&gt;, McGill University, Montreal, Quebec, Canada, 2003 -- 2004. &lt;/font&gt;     &lt;ul&gt;       &lt;li&gt;         &lt;font size="3"&gt;Graded Papers and Tutored Students for Introduction to Computing (Java) and Database Systems (Oracle)&lt;br&gt;         &lt;/font&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;font size="3"&gt;&lt;b&gt;Consulting Analyst&lt;/b&gt;, NDCHealth (now McKesson), Philadelphia, Pennsylvania, United States of America, 2000 -- 2001. &lt;/font&gt;&lt;br&gt;     &lt;ul&gt;       &lt;li&gt;         &lt;font size="3"&gt;Synthesized and Integrate Data to Derive New Products, Maps, and Tools&lt;/font&gt;       &lt;/li&gt;       &lt;li&gt;         &lt;font size="3"&gt;Prepared Excel and Access Tables&lt;/font&gt;       &lt;/li&gt;       &lt;li&gt;         &lt;font size="3"&gt;Statistical Programming and Analysis using SAS&lt;/font&gt;       &lt;/li&gt;       &lt;li&gt;         &lt;font size="3"&gt;Presented Analyses to Non-Technical Audience&lt;br&gt;         &lt;/font&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;font size="3"&gt;&lt;b&gt;Mathematical Statistician&lt;/b&gt;, Census Bureau, Washington, DC, United States of America, 1999 -- 2000.  &lt;/font&gt;     &lt;ul&gt;       &lt;li&gt;         &lt;font size="3"&gt;Developed a SAS/ASSIST tutorial &lt;/font&gt;       &lt;/li&gt;       &lt;li&gt;         &lt;font size="3"&gt;Statistical Programming on the StEPS project (a large Data Warehouse) using SAS&lt;br&gt;         &lt;/font&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt; &lt;ul&gt;   &lt;li&gt;     &lt;font size="3"&gt;&lt;b&gt;Graduate Research Assistant&lt;/b&gt;, Department of Applied Statistics and Operations Research, Bowling Green State University, Bowling Green, Ohio, United States of America (1997-1999). &lt;/font&gt;     &lt;ul&gt;       &lt;li&gt;         &lt;font size="3"&gt;Developed and Maintained the Departmental web page &lt;/font&gt;       &lt;/li&gt;       &lt;li&gt;         &lt;font size="3"&gt;Assisted Faculty and Graduate Students (often in non technical disciplines) with Statistical Programming (SAS and SPSS) in the Statistical Consulting Center &lt;/font&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt; &lt;h2&gt;   &lt;font size="3"&gt;&lt;font size="4"&gt;Computer Skills&lt;/font&gt; &lt;/font&gt; &lt;/h2&gt; &lt;div&gt;   &lt;table id="m4-c" style="width: 845px; height: 181px;" border="0" cellpadding="3" cellspacing="0"&gt;     &lt;tbody&gt;     &lt;tr&gt;       &lt;td style="text-align: center;" width="25%"&gt;         &lt;font size="3"&gt;&lt;b&gt;Statistical Programming&lt;br&gt;         &lt;/b&gt;&lt;/font&gt;       &lt;/td&gt;       &lt;td style="text-align: center;" width="25%"&gt;         &lt;font size="3"&gt;&lt;b&gt;Office&lt;br&gt;         &lt;/b&gt;&lt;/font&gt;       &lt;/td&gt;       &lt;td style="text-align: center;" width="25%"&gt;         &lt;font size="3"&gt;&lt;b&gt;Programming Languages&lt;br&gt;         &lt;/b&gt;&lt;/font&gt;       &lt;/td&gt;       &lt;td style="text-align: center;" width="25%"&gt;         &lt;font size="3"&gt;&lt;b&gt;Databases&lt;br&gt;         &lt;/b&gt;&lt;/font&gt;       &lt;/td&gt;     &lt;/tr&gt;     &lt;tr valign="top"&gt;       &lt;td width="25%"&gt;         &lt;font size="3"&gt;SAS &lt;/font&gt;&lt;br&gt;         &lt;font size="3"&gt;R&lt;/font&gt;&lt;br&gt;         &lt;font size="3"&gt;S+ &lt;/font&gt;&lt;br&gt;         &lt;font size="3"&gt;SPSS&lt;/font&gt;       &lt;/td&gt;       &lt;td width="25%"&gt;         &lt;font size="3"&gt;Word&lt;br&gt;         Excel&lt;br&gt;         PowerPoint&lt;br&gt;         Access&lt;br&gt;         &lt;/font&gt;       &lt;/td&gt;       &lt;td width="25%"&gt;         &lt;font size="3"&gt;Java&lt;br&gt;         C++&lt;br&gt;         C&lt;br&gt;         &lt;/font&gt;       &lt;/td&gt;       &lt;td width="25%"&gt;         &lt;font size="3"&gt;SQL&lt;br&gt;         JDBC&lt;br&gt;         MySQL &lt;/font&gt;&lt;br&gt;         &lt;font size="3"&gt;SQLServer &lt;/font&gt;&lt;br&gt;         &lt;font size="3"&gt;Oracle &lt;/font&gt;&lt;br&gt;         &lt;font size="3"&gt;DB2 &lt;/font&gt;&lt;font size="3"&gt;&lt;br&gt;         &lt;/font&gt;       &lt;/td&gt;     &lt;/tr&gt;     &lt;/tbody&gt;   &lt;/table&gt; &lt;/div&gt; &lt;font size="4"&gt;&lt;br&gt; Graduate Level Course Work&lt;/font&gt; &lt;div style="text-align: center;"&gt;   &lt;font size="3"&gt;&lt;br&gt;   &lt;/font&gt; &lt;/div&gt; &lt;div&gt;   &lt;table id="eu7b" border="0" cellpadding="3" cellspacing="0" width="100%"&gt;     &lt;tbody&gt;     &lt;tr align="center"&gt;       &lt;td width="50%"&gt;         &lt;font size="3"&gt;&lt;b&gt;Mathematical Statistics&lt;br&gt;         &lt;/b&gt;&lt;/font&gt;       &lt;/td&gt;       &lt;td width="50%"&gt;         &lt;font size="3"&gt;&lt;b&gt;Computer Science&lt;/b&gt;&lt;br&gt;         &lt;/font&gt;       &lt;/td&gt;     &lt;/tr&gt;     &lt;tr align="left" valign="top"&gt;       &lt;td width="50%"&gt;         &lt;font size="3"&gt;Probability&lt;br&gt;         Exploratory Data Analysis&lt;br&gt;         Regression Analysis&lt;br&gt;         Statistical Quality Control&lt;br&gt;         Survival Analysis&lt;br&gt;         Experimental Design&lt;br&gt;         Applied Nonparametric Statistics&lt;br&gt;         Applied Multivariate Statistics&lt;br&gt;         Sample Design&lt;br&gt;         Time Series Analysis&lt;br&gt;         Statistical Packages&lt;br&gt;         Experimental Design &lt;/font&gt;       &lt;/td&gt;       &lt;td style="text-align: left;" width="50%"&gt;         &lt;font size="3"&gt;Cryptography and Data Security&lt;br&gt;         Distributed Database Systems&lt;br&gt;         Database Systems&lt;br&gt;         Distributed Algorithms&lt;br&gt;         Probabilistic Analysis of Algorithms&lt;br&gt;         Fault Tolerant Computing&lt;br&gt;         Computational Geometry&lt;br&gt;         Object Oriented Software Development&lt;br&gt;         Computer Networks &lt;/font&gt;       &lt;/td&gt;     &lt;/tr&gt;     &lt;/tbody&gt;   &lt;/table&gt; &lt;/div&gt; &lt;font size="3"&gt;&lt;br&gt; &lt;/font&gt; &lt;h2&gt;   &lt;font size="3"&gt;&lt;font size="4"&gt;References&lt;font size="3"&gt; Available Upon Request&lt;/font&gt;&lt;/font&gt; &lt;/font&gt; &lt;/h2&gt;   &lt;br&gt; &lt;p&gt;     &lt;/p&gt; &lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8049567043904260772-1141742628987158143?l=indicativeserviceconcierge.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://indicativeserviceconcierge.blogspot.com/feeds/1141742628987158143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8049567043904260772&amp;postID=1141742628987158143' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8049567043904260772/posts/default/1141742628987158143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8049567043904260772/posts/default/1141742628987158143'/><link rel='alternate' type='text/html' href='http://indicativeserviceconcierge.blogspot.com/2007/11/emory-merryman-iii-email_15.html' title=''/><author><name>Emory Merryman</name><uri>http://www.blogger.com/profile/11804887158226282399</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8049567043904260772.post-1874638785263473996</id><published>2007-11-15T12:33:00.000-05:00</published><updated>2007-11-15T13:43:01.731-05:00</updated><title type='text'>Installing Knowledge Tree</title><content type='html'>&lt;a href="http://en.wikipedia.org/w/index.php?title=KnowledgeTree&amp;amp;oldid=171244111"&gt;Knowledge Tree&lt;/a&gt; is a &lt;a href="http://en.wikipedia.org/w/index.php?title=Document_management_system&amp;amp;oldid=171179728"&gt;document management system&lt;/a&gt;.&lt;br /&gt;A document management systems is a computer system used to track and store electronic documents and or scanned copies of paper documents.&lt;br /&gt;Document management systems are becoming increasingly important.&lt;br /&gt;The theoretical paperless office would depend on a document management system.&lt;br /&gt;&lt;br /&gt;Yesterday, I reviewed Knowledge Tree.&lt;br /&gt;Jam Warehouse developed Knowledge Tree and maintains the Knowledge Tree &lt;a href="http://www.knowledgetree.com/"&gt;web page&lt;/a&gt;.&lt;br /&gt;From this web page, I downloaded the Knowledge Tree source code and documentation.&lt;br /&gt;&lt;br /&gt;There are at least four Knowledge Tree editions:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Knowledge Tree SMB&lt;/li&gt;&lt;li&gt;Knowledge Tree Enterprise Edition&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Knowledge Tree Live&lt;/li&gt;&lt;li&gt;Knowledge Tree Open Source Edition&lt;/li&gt;&lt;/ol&gt;Jam Warehouse prepared a &lt;a href="http://www.knowledgetree.com/products/knowledgetree_editions_feature_matrix"&gt;matrix&lt;/a&gt; that is useful for comparing the various editions.&lt;br /&gt;I chose to investigate the Knowledge Tree Open Source Edition primarily because it is inexpensive (free).  I did not look at the other editions.&lt;br /&gt;However there is a limited free trial offer for Knowledge Tree Enterprise Edition and Knowledge Tree Live.&lt;br /&gt;Curious readers are encouraged to report back the results of their reviews of the other editions.&lt;br /&gt;&lt;br /&gt;To download this software, I followed the appropriate links to &lt;a href="http://www.knowledgetree.com/node/38"&gt;http://www.knowledgetree.com/node/38&lt;/a&gt;.&lt;br /&gt;I filled in a form with my name and email address.&lt;br /&gt;Jam Warehouse sent me an email with a link to an appropriate download site.&lt;br /&gt;I downloaded version 3.4.4.&lt;br /&gt;Since Knowledge Tree Open Source Edition is released under &lt;a href="http://en.wikipedia.org/w/index.php?title=GNU_General_Public_License&amp;amp;oldid=171298828"&gt;GNU GPL Version 3&lt;/a&gt;, if there is a problem with the download site, I am legally able to distribute my copy.&lt;br /&gt;&lt;br /&gt;There were five choices on the Download page:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Knowledge Tree Open Source Stack Installer&lt;/li&gt;&lt;li&gt;Knowledge Tree Open Source Source Only&lt;/li&gt;&lt;li&gt;Knowledge Tree Appliance&lt;/li&gt;&lt;li&gt;Knowledge Tree Open Source Development Release&lt;/li&gt;&lt;li&gt;Knowledge Tree Documentation&lt;/li&gt;&lt;/ol&gt;I downloaded all of the documentation.&lt;br /&gt;&lt;br /&gt;At the time, it seemed clear that I wanted to download Knowledge Tree Open Source Source Only.&lt;br /&gt;However, this was a compressed file (.tgz) that was unusable.&lt;br /&gt;However, I found in Knowledge Tree Open Source Development Release a useable zip file.&lt;br /&gt;&lt;br /&gt;I installed the software on a computer running Red Hat Linux Fedora Core 7.&lt;br /&gt;The computer had the following services:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Apache/2.2.6&lt;/li&gt;&lt;li&gt;MySQL Server Version 5.0.45&lt;/li&gt;&lt;li&gt;PHP version 4.4.7&lt;/li&gt;&lt;/ol&gt;The computer has:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;343.8 Mb of RAM memory&lt;br /&gt;&lt;/li&gt;&lt;li&gt;a Pentium III Processor&lt;/li&gt;&lt;li&gt;approximately 27 Gigabytes of hard disk memory&lt;/li&gt;&lt;/ol&gt;I unzipped the files and copied them to /var/www/html.&lt;br /&gt;I recursively changed the ownership of the files to the web user.  (chown -R apache:apache /var/www/html).&lt;br /&gt;&lt;br /&gt;Then it was necessary to execute some sql scripts supplied in the distribution.&lt;br /&gt;These sql scripts established users, tables, and input some preliminary data.&lt;br /&gt;Personally, I felt it necessary to read the scripts before I would execute them.&lt;br /&gt;I feel that there must be a better way to setup the database.&lt;br /&gt;&lt;br /&gt;After that the software was installed.&lt;br /&gt;Perhaps in a future blog, I will review Knowledge Tree operation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8049567043904260772-1874638785263473996?l=indicativeserviceconcierge.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://indicativeserviceconcierge.blogspot.com/feeds/1874638785263473996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8049567043904260772&amp;postID=1874638785263473996' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8049567043904260772/posts/default/1874638785263473996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8049567043904260772/posts/default/1874638785263473996'/><link rel='alternate' type='text/html' href='http://indicativeserviceconcierge.blogspot.com/2007/11/installing-knowledge-tree.html' title='Installing Knowledge Tree'/><author><name>Emory Merryman</name><uri>http://www.blogger.com/profile/11804887158226282399</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8049567043904260772.post-4340193037784728822</id><published>2007-10-30T16:44:00.000-04:00</published><updated>2007-10-30T17:07:47.393-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Problem'/><category scheme='http://www.blogger.com/atom/ns#' term='Solution'/><category scheme='http://www.blogger.com/atom/ns#' term='&quot;Red Hat Linux Fedora Core 7&quot;'/><title type='text'>Red Hat Linux Installation Problem (Solved)</title><content type='html'>Recently, I installed Red Hat Linux Fedora Core 7 on my laptop computer.&lt;br /&gt;The installation went well except for one problem.&lt;br /&gt;The bootup process would not complete and the screen would go blank.&lt;br /&gt;&lt;br /&gt;I found the following web page to be tremendously useful in solving my problem:  &lt;span style="font-weight: bold;"&gt;http://www.linuxforums.org/forum/redhat-fedora-linux-help/95675-centos-5-0-rhel5-fedora-7-installation-problems-tips-tricks.html&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;The Operating System does not work correctly with the monitor.&lt;br /&gt;The solution is simple.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;Boot the system in run-level 3.&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Turn on the computer.&lt;/li&gt;&lt;li&gt;Wait for the grub loader to start.  Press a key to interrupt the boot cycle.&lt;/li&gt;&lt;li&gt;Edit the boot parameters.  Add the number 3 at the end.&lt;/li&gt;&lt;li&gt;This will cause the system to boot in run-level 3.  Run level 3 does not use graphics and so the operating system not working well with monitor problem is not fatal.&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Log in as root.&lt;/li&gt;&lt;li&gt;Run system-config-display&lt;/li&gt;&lt;/ol&gt;In my case, these three steps were adequate to fix the problem.&lt;br /&gt;The &lt;a href="http://www.blogger.com/post-create.g?blogID=8049567043904260772"&gt;Linux Forums page&lt;/a&gt; suggests that you may need to do more.&lt;br /&gt;Perhaps I was just lucky.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8049567043904260772-4340193037784728822?l=indicativeserviceconcierge.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://indicativeserviceconcierge.blogspot.com/feeds/4340193037784728822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8049567043904260772&amp;postID=4340193037784728822' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8049567043904260772/posts/default/4340193037784728822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8049567043904260772/posts/default/4340193037784728822'/><link rel='alternate' type='text/html' href='http://indicativeserviceconcierge.blogspot.com/2007/10/red-hat-linux-installation-problem.html' title='Red Hat Linux Installation Problem (Solved)'/><author><name>Emory Merryman</name><uri>http://www.blogger.com/profile/11804887158226282399</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
