import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
+import java.nio.ByteBuffer;
+import java.nio.channels.Channels;
+import java.nio.channels.ReadableByteChannel;
import java.nio.charset.StandardCharsets;
import org.opendaylight.restconf.openapi.jaxrs.OpenApiBodyWriter;
import org.opendaylight.restconf.openapi.model.OpenApiEntity;
private final OpenApiBodyWriter writer;
private Reader reader;
+ private ReadableByteChannel channel;
public OpenApiVersionStream(final OpenApiVersionEntity entity, final OpenApiBodyWriter writer) {
this.entity = entity;
@Override
public int read(final byte[] array, final int off, final int len) throws IOException {
- return super.read(array, off, len);
+ if (channel == null) {
+ channel = Channels.newChannel(new ByteArrayInputStream(writeNextEntity(entity)));
+ }
+ return channel.read(ByteBuffer.wrap(array, off, len));
}
private byte[] writeNextEntity(final OpenApiEntity next) throws IOException {