Java Code Examples for org.apache.bcel.Const#ITEM_NewObject

The following examples show how to use org.apache.bcel.Const#ITEM_NewObject . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: StackMapAnalyzer.java    From spotbugs with GNU Lesser General Public License v2.1 5 votes vote down vote up
static private Item getItem(StackMapType t) {

        switch (t.getType()) {

        case Const.ITEM_Double:
            return Item.typeOnly("D");
        case Const.ITEM_Float:
            return Item.typeOnly("F");
        case Const.ITEM_Integer:
            return Item.typeOnly("I");
        case Const.ITEM_Long:
            return Item.typeOnly("J");
        case Const.ITEM_Bogus:
        case Const.ITEM_NewObject:
            return Item.typeOnly("Ljava/lang/Object;");
        case Const.ITEM_Null:
            Item it = new Item();
            it.setSpecialKind(Item.TYPE_ONLY);
            return it;
        case Const.ITEM_InitObject:
            return Item.typeOnly("Ljava/lang/Object;");
        case Const.ITEM_Object:
            int index = t.getIndex();
            ConstantClass c = (ConstantClass) t.getConstantPool().getConstant(index);
            String name = c.getBytes(t.getConstantPool());
            if (name.charAt(0) != '[') {
                name = "L" + name + ";";
            }
            return Item.typeOnly(name);
        default:
            throw new IllegalArgumentException("Bad item type: " + t.getType());

        }
    }
 
Example 2
Source File: StackMapType.java    From commons-bcel with Apache License 2.0 5 votes vote down vote up
/**
 * @param type type tag as defined in the Constants interface
 * @param index index to constant pool, or byte code offset
 */
public StackMapType(final byte type, final int index, final ConstantPool constant_pool) {
    if ((type < Const.ITEM_Bogus) || (type > Const.ITEM_NewObject)) {
        throw new IllegalArgumentException("Illegal type for StackMapType: " + type);
    }
    this.type = type;
    this.index = index;
    this.constantPool = constant_pool;
}
 
Example 3
Source File: StackMapType.java    From commons-bcel with Apache License 2.0 5 votes vote down vote up
private String printIndex() {
    if (type == Const.ITEM_Object) {
        if (index < 0) {
            return ", class=<unknown>";
        }
        return ", class=" + constantPool.constantToString(index, Const.CONSTANT_Class);
    } else if (type == Const.ITEM_NewObject) {
        return ", offset=" + index;
    } else {
        return "";
    }
}
 
Example 4
Source File: StackMapType.java    From commons-bcel with Apache License 2.0 4 votes vote down vote up
public void setType( final byte t ) {
    if ((t < Const.ITEM_Bogus) || (t > Const.ITEM_NewObject)) {
        throw new IllegalArgumentException("Illegal type for StackMapType: " + t);
    }
    type = t;
}
 
Example 5
Source File: StackMapType.java    From commons-bcel with Apache License 2.0 4 votes vote down vote up
/** @return true, if type is either ITEM_Object or ITEM_NewObject
 */
public boolean hasIndex() {
    return type == Const.ITEM_Object || type == Const.ITEM_NewObject;
}