1 package net.jaekl.squelch;
3 import java.io.IOException;
4 import java.io.PrintWriter;
5 import java.util.Locale;
7 import net.jaekl.squelch.stmt.Select;
8 import net.jaekl.squelch.stmt.Stmt;
9 import net.jaekl.squelch.util.ConsoleInput;
10 import net.jaekl.squelch.util.ConsoleInputImpl;
11 import net.jaekl.squelch.util.ConsoleUtil;
13 public class Squelch {
14 static final String PROMPT = "> ";
15 private static final Stmt[] READ_ONLY_STATEMENTS = {
19 private Stmt[] m_statements;
22 m_statements = READ_ONLY_STATEMENTS;
25 public void doMain(String[] args)
28 try (PrintWriter pw = new PrintWriter(System.out))
30 ci = ConsoleUtil.getInst().getInput();
32 } catch (IOException e) {
37 public static void main(String[] args) {
38 new Squelch().doMain(args);
41 void pumpLines(PrintWriter pw, ConsoleInput ci) throws IOException {
44 boolean processed = false;
45 line = ci.readLine(PROMPT);
47 for (Stmt statement : m_statements) {
48 if (statement.handles(line)) {
49 //statement.exec(conn, pw, line);
59 // Unrecognized command
60 pw.println("??? \"" + line + "\"");
65 boolean isQuit(String line) {
69 String trimmed = line.trim();
70 if (trimmed.endsWith(";")) {
71 trimmed = trimmed.substring(0, trimmed.length() - 1).trim();
73 String upperCased = trimmed.toUpperCase(Locale.CANADA);
75 if ( "EXIT".equals(upperCased)
76 || "QUIT".equals(upperCased)
77 || "\\q".equals(trimmed) )