code: public Attribute parseAttribute()
      throws IOException
    {
      int nameIndex = readShort();
  
      String name = _cp.getUtf8(nameIndex).getValue();
  
      if (name.equals("Code")) {
        CodeAttribute code = new CodeAttribute(name);
        code.read(this);
        return code;
      }
      else if (name.equals("Exceptions")) {
        ExceptionsAttribute code = new ExceptionsAttribute(name);
        code.read(this);
        return code;
      }
      else if (name.equals("Signature")) {
        SignatureAttribute attr = new SignatureAttribute();
        attr.read(this);
        return attr;
      }
      else if (name.equals("BootstrapMethods")) {
        BootstrapMethodAttribute attr = new BootstrapMethodAttribute();
        attr.read(this);
        return attr;
      }
      
      OpaqueAttribute attr = new OpaqueAttribute(name);
      
      int length = readInt();
  
      byte []bytes = new byte[length];
      
      read(bytes, 0, bytes.length);
  
      attr.setValue(bytes);
  
      return attr;
    }
docs: Parses an attribute.