001package co.codewizards.cloudstore.ls.client.util; 002 003import static java.util.Objects.*; 004 005import co.codewizards.cloudstore.core.io.ByteArrayInputStream; 006import co.codewizards.cloudstore.core.io.IByteArrayInputStream; 007import co.codewizards.cloudstore.core.io.IByteArrayOutputStream; 008import co.codewizards.cloudstore.ls.client.LocalServerClient; 009 010/** 011 * Utility class for creating {@link ByteArrayInputStream}s inside the LocalServer's VM. 012 * 013 * @author Marco หงุ่ยตระกูล-Schulze - marco at codewizards dot co 014 */ 015public final class ByteArrayInputStreamLs { 016 017 private ByteArrayInputStreamLs() { 018 } 019 020 public static IByteArrayInputStream create(byte[] data) { 021 requireNonNull(data, "data"); 022 return LocalServerClient.getInstance().invokeConstructor(ByteArrayInputStream.class, 023 new Class<?>[] { byte[].class }, 024 data); 025 } 026 027 public static IByteArrayInputStream create(byte[] data, int offset, int length) { 028 requireNonNull(data, "data"); 029 return LocalServerClient.getInstance().invokeConstructor(ByteArrayInputStream.class, 030 new Class<?>[] { byte[].class, int.class, int.class }, 031 data, offset, length); 032 } 033 034 public static IByteArrayInputStream create(IByteArrayOutputStream bout) { 035 return create(bout.toByteArray()); 036 } 037 038 public static IByteArrayInputStream create(IByteArrayOutputStream bout, int offset, int length) { 039 return create(bout.toByteArray(), offset, length); 040 } 041}