View Javadoc
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              //trim comment lines starting with --
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  }