KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > yworks > yguard > obf > classfile > ClassCpInfo


1 /**
2  * YGuard -- an obfuscation library for Java(TM) classfiles.
3  *
4  * Original Copyright (c) 1999 Mark Welsh (markw@retrologic.com)
5  * Modifications Copyright (c) 2002 yWorks GmbH (yguard@yworks.com)
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2 of the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with this library; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20  *
21  * The author may be contacted at yguard@yworks.com
22  *
23  * Java and all Java-based marks are trademarks or registered
24  * trademarks of Sun Microsystems, Inc. in the U.S. and other countries.
25  */

26 package com.yworks.yguard.obf.classfile;
27
28 import java.io.*;
29 import java.util.*;
30
31 /**
32  * Representation of a 'class' entry in the ConstantPool.
33  *
34  * @author Mark Welsh
35  */

36 public class ClassCpInfo extends CpInfo
37 {
38     // Constants -------------------------------------------------------------
39

40
41     // Fields ----------------------------------------------------------------
42
private int u2nameIndex;
43
44
45     // Class Methods ---------------------------------------------------------
46

47
48     // Instance Methods ------------------------------------------------------
49
protected ClassCpInfo()
50     {
51         super(CONSTANT_Class);
52     }
53
54     /** Return the name index. */
55     protected int getNameIndex() {return u2nameIndex;}
56
57     /** Set the name index. */
58     protected void setNameIndex(int index) {u2nameIndex = index;}
59
60     /** Check for Utf8 references to constant pool and mark them. */
61     protected void markUtf8Refs(ConstantPool pool)
62     {
63         pool.incRefCount(u2nameIndex);
64     }
65
66     /** Read the 'info' data following the u1tag byte. */
67     protected void readInfo(DataInput din) throws java.io.IOException JavaDoc
68     {
69         u2nameIndex = din.readUnsignedShort();
70     }
71
72     /** Write the 'info' data following the u1tag byte. */
73     protected void writeInfo(DataOutput dout) throws java.io.IOException JavaDoc
74     {
75         dout.writeShort(u2nameIndex);
76     }
77
78     /** Dump the content of the class file to the specified file (used for debugging). */
79     public void dump(PrintWriter pw, ClassFile cf)
80     {
81         pw.println(" Class: " + ((Utf8CpInfo)cf.getCpEntry(u2nameIndex)).getString());
82     }
83 }
84
Popular Tags