From 24f703eeb37518aae19b1e922aeb5fcccb470301 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Wed, 17 Jul 2019 16:36:02 +0200 Subject: [PATCH] [jOOQ/jOOQ#8294] Give user feedback in interactive mode --- jOOQ/src/main/java/org/jooq/ParserCLI.java | 37 +++++++++++++++++++--- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/ParserCLI.java b/jOOQ/src/main/java/org/jooq/ParserCLI.java index 6a00295c88..11fabce763 100644 --- a/jOOQ/src/main/java/org/jooq/ParserCLI.java +++ b/jOOQ/src/main/java/org/jooq/ParserCLI.java @@ -117,8 +117,10 @@ public final class ParserCLI { if (a.sql == null && line.startsWith("/")) { if ("/q".equals(line) || "/quit".equals(line) || - "/e".equals(line) || "/exit".equals(line)) + "/e".equals(line) || "/exit".equals(line)) { + System.out.println("Bye"); break cliLoop; + } else if ("/?".equals(line) || "/h".equals(line) || "/help".equals(line)) helpInteractive(); else if ("/d".equals(line) || "/display".equals(line)) @@ -133,10 +135,12 @@ public final class ParserCLI { if (flag != null && arg != null) { if ("f".equals(flag) || "formatted".equals(flag)) { a.formatted = Boolean.parseBoolean(arg.toLowerCase()); + displayFormatted(a); } else if ("k".equals(flag) || "keyword".equals(flag)) { try { a.keywords = RenderKeywordCase.valueOf(arg.toUpperCase()); + displayKeywords(a); } catch (IllegalArgumentException e) { invalid(arg, RenderKeywordCase.class); @@ -145,6 +149,7 @@ public final class ParserCLI { else if ("i".equals(flag) || "identifier".equals(flag)) { try { a.name = RenderNameCase.valueOf(arg.toUpperCase()); + displayIdentifiers(a); } catch (IllegalArgumentException e) { invalid(arg, RenderNameCase.class); @@ -153,6 +158,7 @@ public final class ParserCLI { else if ("f".equals(flag) || "from-dialect".equals(flag)) { try { a.fromDialect = SQLDialect.valueOf(arg.toUpperCase()); + displayFromDialect(a); } catch (IllegalArgumentException e) { invalid(arg, SQLDialect.class); @@ -161,6 +167,7 @@ public final class ParserCLI { else if ("t".equals(flag) || "to-dialect".equals(flag)) { try { a.toDialect = SQLDialect.valueOf(arg.toUpperCase()); + displayToDialect(a); } catch (IllegalArgumentException e) { invalid(arg, SQLDialect.class); @@ -197,13 +204,33 @@ public final class ParserCLI { } private static final void displayArguments(Args a) { - System.out.println("Formatted : " + a.formatted); - System.out.println("From dialect : " + a.fromDialect); - System.out.println("To dialect : " + a.toDialect); - System.out.println("Keywords : " + a.keywords); + displayFormatted(a); + displayFromDialect(a); + displayToDialect(a); + displayKeywords(a); + displayIdentifiers(a); + } + + private static void displayIdentifiers(Args a) { System.out.println("Identifiers : " + a.name); } + private static void displayKeywords(Args a) { + System.out.println("Keywords : " + a.keywords); + } + + private static void displayToDialect(Args a) { + System.out.println("To dialect : " + a.toDialect); + } + + private static void displayFromDialect(Args a) { + System.out.println("From dialect : " + a.fromDialect); + } + + private static void displayFormatted(Args a) { + System.out.println("Formatted : " + a.formatted); + } + private static final void render(DSLContext ctx, Args a) { String sql = a.sql.trim();