|
|
@ -47,9 +47,11 @@ public class StreamInfoDecoder implements MultiDecoder<StreamInfo<Object, Object
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public StreamInfo<Object, Object> decode(List<Object> parts, State state) {
|
|
|
|
public StreamInfo<Object, Object> decode(List<Object> parts, State state) {
|
|
|
|
Map<String, Object> map = IntStream.range(0, parts.size()).boxed().collect(
|
|
|
|
Map<String, Object> map = IntStream.range(0, parts.size())
|
|
|
|
Collectors.groupingBy(e -> e / 2, Collectors.mapping(e -> parts.get(e), Collectors.toList())))
|
|
|
|
.filter(i -> i % 2 == 0)
|
|
|
|
.values().stream().collect(Collectors.toMap(e -> (String) e.get(0), e -> e.get(1)));
|
|
|
|
.mapToObj(i -> parts.subList(i, i+2))
|
|
|
|
|
|
|
|
.filter(p -> p.get(1) != null)
|
|
|
|
|
|
|
|
.collect(Collectors.toMap(e -> (String) e.get(0), e -> e.get(1)));
|
|
|
|
|
|
|
|
|
|
|
|
StreamInfo<Object, Object> info = new StreamInfo<>();
|
|
|
|
StreamInfo<Object, Object> info = new StreamInfo<>();
|
|
|
|
info.setLength(((Long) map.get(LENGTH_KEY)).intValue());
|
|
|
|
info.setLength(((Long) map.get(LENGTH_KEY)).intValue());
|
|
|
|