opu.lljvm-python.0.2.0-EXPERIMENTAL.source-code.MethodCP Maven / Gradle / Ivy
The newest version!
/**
* MethodCP's are used to make references to methods in classes
*
* @author $Author: jonmeyerny $
* @version $Revision: 1.1 $
*/
package jas;
import java.io.*;
public class MethodCP extends CP implements RuntimeConstants
{
ClassCP clazz;
NameTypeCP nt;
/**
* @param cname Class in which method exists
* @param varname name of method
* @param sig Signature of method
*/
public MethodCP(String cname, String varname, String sig)
{
uniq = cname + "&%$91&" + varname + "*(012$" + sig;
clazz = new ClassCP(cname);
nt = new NameTypeCP(varname, sig);
}
void resolve(ClassEnv e)
{
e.addCPItem(clazz);
e.addCPItem(nt);
}
void write(ClassEnv e, DataOutputStream out)
throws IOException, jasError
{
out.writeByte(CONSTANT_METHOD);
out.writeShort(e.getCPIndex(clazz));
out.writeShort(e.getCPIndex(nt));
}
}