1 package org.davidmoten.rx.jdbc;
2
3 import java.io.ByteArrayOutputStream;
4 import java.io.IOException;
5 import java.io.InputStream;
6 import java.io.UnsupportedEncodingException;
7 import java.util.Arrays;
8 import java.util.List;
9 import java.util.stream.Collectors;
10
11 public final class Sql {
12
13 private Sql() {
14
15 }
16
17 private static final String UTF8 = "UTF-8";
18
19 public static List<String> statements(InputStream is, String delimiter) {
20 ByteArrayOutputStream bytes = new ByteArrayOutputStream();
21 byte[] b = new byte[8192];
22 while (true) {
23 try {
24 int len = is.read(b);
25 if (len == -1) {
26 break;
27 } else {
28 bytes.write(b, 0, len);
29 }
30 } catch (IOException e) {
31 throw new RuntimeException(e);
32 }
33 }
34 try {
35 String s = bytes.toString(UTF8);
36
37 s = Arrays.stream(s.split("\n")).filter(line -> !line.startsWith("--")).collect(Collectors.joining("\n"));
38 String[] statements = s.split(delimiter);
39 return Arrays.asList(statements);
40 } catch (UnsupportedEncodingException e) {
41 throw new RuntimeException(e);
42 }
43 }
44
45 public static List<String> statements(InputStream is) {
46 return statements(is, ";");
47 }
48 }