/** * An InterfaceCP is used to refer to an interface specification * * @author $Author: jonmeyerny $ * @version $Revision: 1.1 $ */ package jas; import java.io.*; public class InterfaceCP extends CP implements RuntimeConstants { ClassCP clazz; NameTypeCP nt; /** * @param cname Name of class defining the interface * @param varname symbol for the interface method * @param sig Signature for method */ public InterfaceCP(String cname, String varname, String sig) { uniq = (cname + "&%$#&" + varname + "*()#$" + sig).intern(); 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_INTERFACEMETHOD); out.writeShort(e.getCPIndex(clazz)); out.writeShort(e.getCPIndex(nt)); } }