Example #1
0
  public void writeTo(DataOutputStream data) throws IOException {
    data.write(tag.getTagId());

    switch (tag) {
      case CpClass:
        data.writeShort(name_index);
        break;
      case CpFieldref:
      case CpMethodref:
      case CpInterfaceMethodref:
        data.writeShort(class_index);
        data.writeShort(name_and_type_index);
        break;
      case CpString:
        data.writeShort(string_index);
        break;
      case CpInteger:
      case CpFloat:
        data.writeInt(bytes);
        break;
      case CpLong:
      case CpDouble:
        data.writeInt(high_bytes);
        data.writeInt(low_bytes);
        break;
      case CpNameAndType:
        data.writeShort(name_index);
        data.writeShort(signature_index);
        break;
      case CpUtf8:
      case CpUnicode:
        data.writeUTF(str_bytes);
        break;
    }
  }
Example #2
0
  public String toString() {
    StringBuilder builder = new StringBuilder();
    builder.append(tag.name());
    builder.append(": ");
    switch (tag) {
      case CpClass:
        builder.append("name_index => " + name_index);
        break;
      case CpFieldref:
      case CpMethodref:
      case CpInterfaceMethodref:
        builder.append("class_index => " + class_index + ", ");
        builder.append("name_and_type_index => " + name_and_type_index);
        break;
      case CpString:
        builder.append("string_index => " + string_index);
        break;
      case CpInteger:
      case CpFloat:
        builder.append("bytes => " + bytes);
        break;
      case CpLong:
      case CpDouble:
        builder.append("high_bytes => " + high_bytes + ", ");
        builder.append("low_bytes => " + low_bytes);
        break;
      case CpNameAndType:
        builder.append("name_index => " + name_index + ", ");
        builder.append("signature_index => " + signature_index);
        break;
      case CpUtf8:
      case CpUnicode:
        builder.append("[String] => " + str_bytes);
        break;
    }

    return builder.toString();
  }
Example #3
0
 public static CpInfo constructFrom(DataInputStream data) throws IOException {
   CpInfo cp = new CpInfo(CpInfoTag.searchTag(data.readByte()));
   cp.readFrom(data);
   return cp;
 }