/** * Add a method to this class. */ public MethodInfo addMethod(Modifiers modifiers, String methodName, MethodDesc md) { MethodInfo mi = new MethodInfo(this, modifiers, methodName, md); mMethods.add(mi); return mi; }
/** * Add a constructor to this class. * * @param params May be null if constructor accepts no parameters. */ public MethodInfo addConstructor(Modifiers modifiers, TypeDesc[] params) { MethodDesc md = MethodDesc.forArguments(null, params); MethodInfo mi = new MethodInfo(this, modifiers, "<init>", md); mMethods.add(mi); return mi; }
/** * Add a static initializer to this class. */ public MethodInfo addInitializer() { MethodDesc md = MethodDesc.forArguments(null, null); Modifiers af = Modifiers.NONE.toStatic(true); MethodInfo mi = new MethodInfo(this, af, "<clinit>", md); mMethods.add(mi); return mi; }
static MethodInfo readFrom(ClassFile parent, DataInput din, AttributeFactory attrFactory) throws IOException { ConstantPool cp = parent.getConstantPool(); int modifier = din.readUnsignedShort(); int index = din.readUnsignedShort(); ConstantUTFInfo nameConstant = (ConstantUTFInfo)cp.getConstant(index); index = din.readUnsignedShort(); ConstantUTFInfo descConstant = (ConstantUTFInfo)cp.getConstant(index); MethodInfo info = new MethodInfo(parent, modifier, nameConstant, descConstant); // Read attributes. int size = din.readUnsignedShort(); for (int i=0; i<size; i++) { info.addAttribute(Attribute.readFrom(cp, din, attrFactory)); } return info; } }
/** * Add a method to this class. */ public MethodInfo addMethod(Modifiers modifiers, String methodName, MethodDesc md) { MethodInfo mi = new MethodInfo(this, modifiers, methodName, md); mMethods.add(mi); return mi; }
/** * Add a constructor to this class. * * @param params May be null if constructor accepts no parameters. */ public MethodInfo addConstructor(Modifiers modifiers, TypeDesc[] params) { MethodDesc md = MethodDesc.forArguments(null, params); MethodInfo mi = new MethodInfo(this, modifiers, "<init>", md); mMethods.add(mi); return mi; }
/** * Add a static initializer to this class. */ public MethodInfo addInitializer() { MethodDesc md = MethodDesc.forArguments(null, null); Modifiers af = Modifiers.NONE.toStatic(true); MethodInfo mi = new MethodInfo(this, af, "<clinit>", md); mMethods.add(mi); return mi; }
static MethodInfo readFrom(ClassFile parent, DataInput din, AttributeFactory attrFactory) throws IOException { ConstantPool cp = parent.getConstantPool(); int modifier = din.readUnsignedShort(); int index = din.readUnsignedShort(); ConstantUTFInfo nameConstant = (ConstantUTFInfo)cp.getConstant(index); index = din.readUnsignedShort(); ConstantUTFInfo descConstant = (ConstantUTFInfo)cp.getConstant(index); MethodInfo info = new MethodInfo(parent, modifier, nameConstant, descConstant); // Read attributes. int size = din.readUnsignedShort(); for (int i=0; i<size; i++) { info.addAttribute(Attribute.readFrom(cp, din, attrFactory)); } return info; } }