code: private void encodeThis() throws IOException {
          if (id == null && names == null && serialNum == null) {
              this.extensionValue = null;
              return;
          }
          DerOutputStream seq = new DerOutputStream();
          DerOutputStream tmp = new DerOutputStream();
          if (id != null) {
              DerOutputStream tmp1 = new DerOutputStream();
              id.encode(tmp1);
              tmp.writeImplicit(DerValue.createTag(DerValue.TAG_CONTEXT,
                                false, TAG_ID), tmp1);
          }
          try {
              if (names != null) {
                  DerOutputStream tmp1 = new DerOutputStream();
                  names.encode(tmp1);
                  tmp.writeImplicit(DerValue.createTag(DerValue.TAG_CONTEXT,
                                    true, TAG_NAMES), tmp1);
              }
          } catch (Exception e) {
              throw new IOException(e.toString());
          }
          if (serialNum != null) {
              DerOutputStream tmp1 = new DerOutputStream();
              serialNum.encode(tmp1);
              tmp.writeImplicit(DerValue.createTag(DerValue.TAG_CONTEXT,
                                false, TAG_SERIAL_NUM), tmp1);
          }
          seq.write(DerValue.tag_Sequence, tmp);
          this.extensionValue = seq.toByteArray();
      }
docs: Encode only the extension value