@SuppressWarnings("unchecked")
    public <T extends HalRepresentation> Stream<T> streamAs(final Class<T> type,
                                                            final EmbeddedTypeInfo embeddedTypeInfo,
                                                            final EmbeddedTypeInfo... moreEmbeddedTypeInfos) throws IOException {
        if (moreEmbeddedTypeInfos == null || moreEmbeddedTypeInfos.length == 0) {
            return streamAs(type, embeddedTypeInfo != null ? singletonList(embeddedTypeInfo) : emptyList());
        } else {
            final List<EmbeddedTypeInfo> typeInfos = new ArrayList<>();
            typeInfos.add(requireNonNull(embeddedTypeInfo));
            typeInfos.addAll(asList(moreEmbeddedTypeInfos));
            return streamAs(type, typeInfos);
        }
    }
@ SuppressWarnings ( "unchecked" ) public < T extends HalRepresentation > Stream < T > streamAs ( final Class < T > type , final EmbeddedTypeInfo embeddedTypeInfo , final EmbeddedTypeInfo ... moreEmbeddedTypeInfos ) throws IOException { if ( moreEmbeddedTypeInfos == null || moreEmbeddedTypeInfos . length == 0 ) { return streamAs ( type , embeddedTypeInfo != null ? singletonList ( embeddedTypeInfo ) : emptyList ( ) ) ; } else { final List < EmbeddedTypeInfo > typeInfos = new ArrayList < > ( ) ; typeInfos . add ( requireNonNull ( embeddedTypeInfo ) ) ; typeInfos . addAll ( asList ( moreEmbeddedTypeInfos ) ) ; return streamAs ( type , typeInfos ) ; } }
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 moreEmbeddedTypeInfos more embedded type-infos
@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