code: public TLVElement readElement() throws IOException, TLVParserException {
          TlvHeader header = readHeader();
          TLVElement element = new TLVElement(header.tlv16, header.nonCritical, header.forwarded, header.type);
          int count = countNestedTlvElements(header);
          if (count > 0) {
              readNestedElements(element, count);
          } else {
              element.setContent(readTlvContent(header));
          }
          return element;
      }
docs: Reads the next TLV element from the stream.
  
  @return Instance of {@link TLVElement}.
  
  @throws IOException
  when reading from underlying stream fails.
  @throws TLVParserException
  when input stream is null.