code: public static <T> T parse(ByteBuffer encoded, Class<T> containerClass)
              throws Asn1DecodingException {
          BerDataValue containerDataValue;
          try {
              containerDataValue = new ByteBufferBerDataValueReader(encoded).readDataValue();
          } catch (BerDataValueFormatException e) {
              throw new Asn1DecodingException("Failed to decode top-level data value", e);
          }
          if (containerDataValue == null) {
              throw new Asn1DecodingException("Empty input");
          }
          return parse(containerDataValue, containerClass);
      }
docs: Returns the ASN.1 structure contained in the BER encoded input.
  
  @param encoded        encoded input. If the decoding operation succeeds, the position of this buffer
  is advanced to the first position following the end of the consumed structure.
  @param containerClass class describing the structure of the input. The class must meet the
  following requirements:
  <ul>
  <li>The class must be annotated with {@link Asn1Class}.</li>
  <li>The class must expose a public no-arg constructor.</li>
  <li>Member fields of the class which are populated with parsed input must be
  annotated with {@link Asn1Field} and be public and non-final.</li>
  </ul>
  @throws Asn1DecodingException if the input could not be decoded into the specified Java
  object