code: @SuppressWarnings("unchecked")
      public <T extends HalRepresentation> Stream<T> streamAs(final Class<T> type,
                                                              final List<EmbeddedTypeInfo> embeddedTypeInfo) throws IOException {
          checkState();
          try {
              if (startWith != null) {
                  lastResult = traverseInitialResource(type, embeddedTypeInfo, true);
              } else if (!hops.isEmpty()) {
                  lastResult = traverseHop(lastResult.get(0), type, embeddedTypeInfo, true);
              }
              return (Stream<T>) lastResult.stream();
          } catch (final Exception e) {
              LOG.error(e.getMessage(), e);
              throw e;
          }
      }
docs: Follow the {@link Link}s of the current resource, selected by its link-relation type and returns a {@link Stream}
  containing the returned {@link HalRepresentation HalRepresentations}.
  <p>
  The EmbeddedTypeInfo is used to define the specific type of embedded items.
  </p>
  <p>
  Templated links are expanded to URIs using the specified template variables.
  </p>
  <p>
  If the current node has {@link Embedded embedded} items with the specified {@code rel},
  these items are used instead of resolving the associated {@link Link}.
  </p>
  @param type the specific type of the returned HalRepresentations
  @param embeddedTypeInfo specification of the type of embedded items
  @param <T> type of the returned HalRepresentations
  @return this
  @throws IOException if a low-level I/O problem (unexpected end-of-input, network error) occurs.
  @throws JsonParseException if the json document can not be parsed by Jackson's ObjectMapper
  @throws JsonMappingException if the input JSON structure can not be mapped to the specified HalRepresentation type
  @since 1.0.0