예제 #1
0
  /** {@inheritDoc} */
  @Override
  public final void writeTo(DexFile file, AnnotatedOutput out) {
    TypeIdsSection typeIds = file.getTypeIds();
    StringIdsSection stringIds = file.getStringIds();
    CstNat nat = cst.getNat();
    int classIdx = typeIds.indexOf(getDefiningClass());
    int nameIdx = stringIds.indexOf(nat.getName());
    int typoidIdx = getTypoidIdx(file);

    if (out.annotates()) {
      out.annotate(0, indexString() + ' ' + cst.toHuman());
      out.annotate(2, "  class_idx: " + Hex.u2(classIdx));
      out.annotate(2, String.format("  %-10s %s", getTypoidName() + ':', Hex.u2(typoidIdx)));
      out.annotate(4, "  name_idx:  " + Hex.u4(nameIdx));
    }

    out.writeShort(classIdx);
    out.writeShort(typoidIdx);
    out.writeInt(nameIdx);
  }
 /**
  * Interns the components of a name-and-type into this instance.
  *
  * @param nat {@code non-null;} the name-and-type
  */
 public void intern(CstNat nat) {
   intern(nat.getName());
   intern(nat.getDescriptor());
 }