Files
runelite/src/main/java/info/sigterm/deob/pool/Field.java
2015-05-09 17:00:30 -04:00

66 lines
1.2 KiB
Java

package info.sigterm.deob.pool;
import info.sigterm.deob.ConstantPool;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Field extends PoolEntry
{
private int classIndex, natIndex;
private Class clazz;
private NameAndType nat;
public Field(ConstantPool pool) throws IOException
{
super(pool, ConstantType.FIELDREF);
DataInputStream is = pool.getClassFile().getStream();
classIndex = is.readUnsignedShort();
natIndex = is.readUnsignedShort();
}
@Override
public void resolve()
{
clazz = this.getPool().getClass(classIndex);
nat = this.getPool().getNameAndType(natIndex);
}
@Override
public void prime()
{
classIndex = this.getPool().make(clazz);
natIndex = this.getPool().make(nat);
}
@Override
public boolean equals(Object other)
{
if (!(other instanceof Field))
return false;
Field f = (Field) other;
return clazz.equals(f.clazz) && nat.equals(f.nat);
}
public Class getClassEntry()
{
return clazz;
}
public NameAndType getNameAndType()
{
return nat;
}
@Override
public void write(DataOutputStream out) throws IOException
{
out.writeShort(classIndex);
out.writeShort(natIndex);
}
}