Java Code Examples for org.apache.bcel.Constants#CONSTANT_NameAndType

The following examples show how to use org.apache.bcel.Constants#CONSTANT_NameAndType . These examples are extracted from open source projects. 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 Project: ApkToolPlus   File:    License: Apache License 2.0 6 votes vote down vote up
 * Read one constant from the given file, the type depends on a tag byte.
 * @param file Input stream
 * @return Constant object
static final Constant readConstant(DataInputStream file)
  throws IOException, ClassFormatException
  byte b = file.readByte(); // Read tag byte

  switch(b) {
  case Constants.CONSTANT_Class:              return new ConstantClass(file);
  case Constants.CONSTANT_Fieldref:           return new ConstantFieldref(file);
  case Constants.CONSTANT_Methodref:          return new ConstantMethodref(file);
  case Constants.CONSTANT_InterfaceMethodref: return new 
  case Constants.CONSTANT_String:             return new ConstantString(file);
  case Constants.CONSTANT_Integer:            return new ConstantInteger(file);
  case Constants.CONSTANT_Float:              return new ConstantFloat(file);
  case Constants.CONSTANT_Long:               return new ConstantLong(file);
  case Constants.CONSTANT_Double:             return new ConstantDouble(file);
  case Constants.CONSTANT_NameAndType:        return new ConstantNameAndType(file);
  case Constants.CONSTANT_Utf8:               return new ConstantUtf8(file);
    throw new ClassFormatException("Invalid byte tag in constant pool: " + b);
Example 2
Source Project: ApkToolPlus   File:    License: Apache License 2.0 5 votes vote down vote up
 * @param name_index Name of field/method
 * @param signature_index and its signature
public ConstantNameAndType(int name_index,
	     int signature_index)
  this.name_index      = name_index;
  this.signature_index = signature_index;
Example 3
Source Project: ApkToolPlus   File:    License: Apache License 2.0 5 votes vote down vote up
public void visitConstantNameAndType(ConstantNameAndType obj){
	if (obj.getTag() != Constants.CONSTANT_NameAndType){
		throw new ClassConstraintException("Wrong constant tag in '"+tostring(obj)+"'.");
	checkIndex(obj, obj.getNameIndex(), CONST_Utf8);
	//checkIndex(obj, obj.getDescriptorIndex(), CONST_Utf8); //inconsistently named in BCEL, see below.
	checkIndex(obj, obj.getSignatureIndex(), CONST_Utf8);
Example 4
Source Project: ApkToolPlus   File:    License: Apache License 2.0 4 votes vote down vote up
 * Resolve constant to a string representation.
 * @param  constant Constant to be printed
 * @return String representation
public String constantToString(Constant c)
     throws ClassFormatException  
  String   str;
  int      i;
  byte     tag = c.getTag();

  switch(tag) {
  case Constants.CONSTANT_Class: 
    i   = ((ConstantClass)c).getNameIndex();
    c   = getConstant(i, Constants.CONSTANT_Utf8);
    str = Utility.compactClassName(((ConstantUtf8)c).getBytes(), false);

  case Constants.CONSTANT_String:
    i   = ((ConstantString)c).getStringIndex();
    c   = getConstant(i, Constants.CONSTANT_Utf8);
    str = "\"" + escape(((ConstantUtf8)c).getBytes()) + "\"";

  case Constants.CONSTANT_Utf8:    str = ((ConstantUtf8)c).getBytes();         break;
  case Constants.CONSTANT_Double:  str = "" + ((ConstantDouble)c).getBytes();  break;
  case Constants.CONSTANT_Float:   str = "" + ((ConstantFloat)c).getBytes();   break;
  case Constants.CONSTANT_Long:    str = "" + ((ConstantLong)c).getBytes();    break;
  case Constants.CONSTANT_Integer: str = "" + ((ConstantInteger)c).getBytes(); break;

  case Constants.CONSTANT_NameAndType:
    str = (constantToString(((ConstantNameAndType)c).getNameIndex(),
	      Constants.CONSTANT_Utf8) + " " +

  case Constants.CONSTANT_InterfaceMethodref: case Constants.CONSTANT_Methodref:
  case Constants.CONSTANT_Fieldref:
    str = (constantToString(((ConstantCP)c).getClassIndex(),
	      Constants.CONSTANT_Class) + "." + 

  default: // Never reached
    throw new RuntimeException("Unknown constant type " + tag);
  return str;