Package org.apache.bcel.classfile

Examples of org.apache.bcel.classfile.ConstantFieldref


                access = null;
                return;
            }

            ConstantPool cp = javaClass.getConstantPool();
            ConstantFieldref fieldref = (ConstantFieldref) cp.getConstant(cpIndex);

            ConstantClass cls = (ConstantClass) cp.getConstant(fieldref.getClassIndex());
            String className = cls.getBytes(cp).replace('/', '.');

            ConstantNameAndType nameAndType = (ConstantNameAndType) cp.getConstant(fieldref.getNameAndTypeIndex());
            String fieldName = nameAndType.getName(cp);
            String fieldSig = nameAndType.getSignature(cp);


            XField xfield = Hierarchy.findXField(className, fieldName, fieldSig, isStatic);
View Full Code Here


    public void sawField() {
        if ((monitorCount > 0) || (!writingField)) {
            return;
        }

        ConstantFieldref fieldRef;
        Constant c = getConstantRefOperand();
        if (c instanceof ConstantFieldref) {
            fieldRef = (ConstantFieldref) c;

            String className = fieldRef.getClass(getConstantPool()).replace('.', '/');
            if (className.equals(this.getClassName())) {
                ConstantPool cp = getConstantPool();
                int nameAndTypeIdx = fieldRef.getNameAndTypeIndex();
                ConstantNameAndType ntc = (ConstantNameAndType) cp.getConstant(nameAndTypeIdx);
                int nameIdx = ntc.getNameIndex();

                Field[] flds = getClassContext().getJavaClass().getFields();
View Full Code Here

        }
        adjustSize();
        class_index = addClass(class_name);
        name_and_type_index = addNameAndType(field_name, signature);
        ret = index;
        constants[index++] = new ConstantFieldref(class_index, name_and_type_index);
        String key = class_name + FIELDREF_DELIM + field_name + FIELDREF_DELIM + signature;
        if (!cp_table.containsKey(key)) {
            cp_table.put(key, new Index(ret));
        }
        return ret;
View Full Code Here

            case GETFIELD:
            case GETSTATIC:
            case PUTFIELD:
            case PUTSTATIC:
                index = bytes.readShort();
                ConstantFieldref c1 = (ConstantFieldref) constant_pool.getConstant(index,
                        CONSTANT_Fieldref);
                class_index = c1.getClassIndex();
                name = constant_pool.getConstantString(class_index, CONSTANT_Class);
                name = Utility.compactClassName(name, false);
                index = c1.getNameAndTypeIndex();
                String field_name = constant_pool.constantToString(index, CONSTANT_NameAndType);
                if (name.equals(class_name)) { // Local field
                    buf.append("<A HREF=\"").append(class_name).append("_methods.html#field")
                            .append(field_name).append("\" TARGET=Methods>").append(field_name)
                            .append("</A>\n");
View Full Code Here

                        + "\">Class index(" + class_index + ")</A>\n" + "<LI><A HREF=\"#cp"
                        + name_index + "\">NameAndType index(" + name_index + ")</A></UL>");
                break;
            case CONSTANT_Fieldref:
                // Get class_index and name_and_type_index
                ConstantFieldref c3 = (ConstantFieldref) constant_pool.getConstant(index,
                        CONSTANT_Fieldref);
                class_index = c3.getClassIndex();
                name_index = c3.getNameAndTypeIndex();
                // Get method name and its class (compacted)
                String field_class = constant_pool.constantToString(class_index, CONSTANT_Class);
                String short_field_class = Utility.compactClassName(field_class); // I.e., remove java.lang.
                short_field_class = Utility.compactClassName(short_field_class,
                        class_package + ".", true); // Remove class package prefix
View Full Code Here

            if ((i instanceof GETFIELD) || (i instanceof PUTFIELD))
            {
                Field f;
                FieldInstruction field = (FieldInstruction) i;
                Constant c = m.getConstantPool().getConstant(field.getIndex());
                ConstantFieldref fieldRef = (ConstantFieldref) c;

                ConstantClass cclass = (ConstantClass) m.getConstantPool().getConstant(fieldRef.getClassIndex());
                ConstantUtf8 utfClassName = (ConstantUtf8) m.getConstantPool().getConstant(cclass.getNameIndex());
                String utfClassNameString = StringUtils.replaceAll(utfClassName.getBytes().toString(), "/", ".");
                JavaClass fieldJavaClass = null;
                try
                {
View Full Code Here

    private String getClassNameForFieldAccess(InstructionHandle ih, ConstantPool cp)
    {
        Constant c = cp.getConstant(((CPInstruction) ih.getInstruction()).getIndex());
        if (c instanceof ConstantFieldref)
        {
            ConstantFieldref fieldRef = (ConstantFieldref) c;
            ConstantClass cclass = (ConstantClass) cp.getConstant(fieldRef.getClassIndex());
            ConstantUtf8 className = (ConstantUtf8) cp.getConstant(cclass.getNameIndex());
            return StringUtils.replaceAll(className.getBytes().toString(), "/", ".");
        }
        return null;
    }
View Full Code Here

  public TreeSet getStack(int index) {
    return stack[index];
  }

  public TreeSet getField(int entryIndex) {
    ConstantFieldref cfr = (ConstantFieldref)cpoolgen.getConstant(entryIndex);
    ConstantNameAndType cnat = (ConstantNameAndType)cpoolgen
      .getConstant(cfr.getNameAndTypeIndex());
    int nameIndex = cnat.getNameIndex();
    return fields[nameIndex];
  }
View Full Code Here

    return fields[nameIndex];
  }

  public void addToField(Set s, int entryIndex) {
    //System.out.println("he wants index " + entryIndex);
    ConstantFieldref cfr = (ConstantFieldref)cpoolgen.getConstant(entryIndex);
    ConstantNameAndType cnat = (ConstantNameAndType)cpoolgen
      .getConstant(cfr.getNameAndTypeIndex());
    int nameIndex = cnat.getNameIndex();
    fields[nameIndex].addAll(s);
  }
View Full Code Here

            Instruction i = ihs[j].getInstruction();
            if (i instanceof GETSTATIC || i instanceof PUTSTATIC) {
                FieldInstruction g = (FieldInstruction)i;
                String s = g.getClassName(cp);
                int index = g.getIndex();
                ConstantFieldref cfr =(ConstantFieldref)cp.getConstant(index);
                int classIndex = cfr.getClassIndex();
                if (oldClass.equals(s)) {
                    int newIndex = cp.addClass(newClass);
                    cfr.setClassIndex(newIndex);
                }
            }
        }
        il.dispose();
        return mg.getMethod();
View Full Code Here

TOP

Related Classes of org.apache.bcel.classfile.ConstantFieldref

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.