@Override public PrintWriter writer() { return terminal.writer(); }
private void callHelp() { terminal.writer().println(CliStrings.MESSAGE_HELP); terminal.flush(); }
public void clearTerminal() { if (isPlainTerminal()) { for (int i = 0; i < 200; i++) { // large number of empty lines terminal.writer().println(); } } else { terminal.puts(InfoCmp.Capability.clear_screen); } }
private void printException(String message, Throwable t) { LOG.warn(message, t); terminal.writer().println(CliStrings.messageError(message, t).toAnsi()); terminal.flush(); }
private void callShowTables() { final List<String> tables; try { tables = executor.listTables(context); } catch (SqlExecutionException e) { printExecutionException(e); return; } if (tables.isEmpty()) { terminal.writer().println(CliStrings.messageInfo(CliStrings.MESSAGE_EMPTY).toAnsi()); } else { tables.forEach((v) -> terminal.writer().println(v)); } terminal.flush(); }
private void callShowFunctions() { final List<String> functions; try { functions = executor.listUserDefinedFunctions(context); } catch (SqlExecutionException e) { printExecutionException(e); return; } if (functions.isEmpty()) { terminal.writer().println(CliStrings.messageInfo(CliStrings.MESSAGE_EMPTY).toAnsi()); } else { functions.forEach((v) -> terminal.writer().println(v)); } terminal.flush(); }
private void callExplain(SqlCommandCall cmdCall) { final String explanation; try { explanation = executor.explainStatement(context, cmdCall.operands[0]); } catch (SqlExecutionException e) { printExecutionException(e); return; } terminal.writer().println(explanation); terminal.flush(); }
private void printInfo(String message) { terminal.writer().println(CliStrings.messageInfo(message).toAnsi()); terminal.flush(); } }
private void printExecutionError(String message) { terminal.writer().println(CliStrings.messageError(CliStrings.MESSAGE_SQL_EXECUTION_ERROR, message).toAnsi()); terminal.flush(); }
private void printError(String message) { terminal.writer().println(CliStrings.messageError(message).toAnsi()); terminal.flush(); }
private void addToHistory(final String line) { try { history.add(line); history.save(); } catch (final IOException e) { LOGGER.error("Error saving history file", e); terminal.writer() .println("Error saving history file:" + ErrorMessageUtil.buildErrorMessage(e)); } }
private void callSet(SqlCommandCall cmdCall) { // show all properties if (cmdCall.operands.length == 0) { final Map<String, String> properties; try { properties = executor.getSessionProperties(context); } catch (SqlExecutionException e) { printExecutionException(e); return; } if (properties.isEmpty()) { terminal.writer().println(CliStrings.messageInfo(CliStrings.MESSAGE_EMPTY).toAnsi()); } else { properties .entrySet() .stream() .map((e) -> e.getKey() + "=" + e.getValue()) .sorted() .forEach((p) -> terminal.writer().println(p)); } } // set a property else { context.setSessionProperty(cmdCall.operands[0], cmdCall.operands[1]); terminal.writer().println(CliStrings.messageInfo(CliStrings.MESSAGE_SET).toAnsi()); } terminal.flush(); }
private boolean callInsertInto(SqlCommandCall cmdCall) { printInfo(CliStrings.MESSAGE_SUBMITTING_STATEMENT); try { final ProgramTargetDescriptor programTarget = executor.executeUpdate(context, cmdCall.operands[0]); terminal.writer().println(CliStrings.messageInfo(CliStrings.MESSAGE_STATEMENT_SUBMITTED).toAnsi()); terminal.writer().println(programTarget.toString()); terminal.flush(); } catch (SqlExecutionException e) { printExecutionException(e); return false; } return true; }
private void callDescribe(SqlCommandCall cmdCall) { final TableSchema schema; try { schema = executor.getTableSchema(context, cmdCall.operands[0]); } catch (SqlExecutionException e) { printExecutionException(e); return; } terminal.writer().println(schema.toString()); terminal.flush(); }
private void callSource(SqlCommandCall cmdCall) { final String pathString = cmdCall.operands[0]; // load file final String stmt; try { final Path path = Paths.get(pathString); byte[] encoded = Files.readAllBytes(path); stmt = new String(encoded, Charset.defaultCharset()); } catch (IOException e) { printExecutionException(e); return; } // limit the output a bit if (stmt.length() > SOURCE_MAX_SIZE) { printExecutionError(CliStrings.MESSAGE_MAX_SIZE_EXCEEDED); return; } terminal.writer().println(CliStrings.messageInfo(CliStrings.MESSAGE_WILL_EXECUTE).toAnsi()); terminal.writer().println(new AttributedString(stmt).toString()); terminal.flush(); // try to run it final Optional<SqlCommandCall> call = parseCommand(stmt); call.ifPresent(this::callCommand); }
/** * Submits a SQL update statement and prints status information and/or errors on the terminal. * * @param statement SQL update statement * @return flag to indicate if the submission was successful or not */ public boolean submitUpdate(String statement) { terminal.writer().println(CliStrings.messageInfo(CliStrings.MESSAGE_WILL_EXECUTE).toAnsi()); terminal.writer().println(new AttributedString(statement).toString()); terminal.flush(); final Optional<SqlCommandCall> parsedStatement = parseCommand(statement); // only support INSERT INTO return parsedStatement.map(cmdCall -> { switch (cmdCall.command) { case INSERT_INTO: return callInsertInto(cmdCall); default: printError(CliStrings.MESSAGE_UNSUPPORTED_SQL); return false; } }).orElse(false); }
client.getTerminal().writer().println(computeTitleLine().toAnsi()); headerLines.forEach(l -> client.getTerminal().writer().println(l.toAnsi())); if (offsetX < l.length()) { final AttributedString windowX = l.substring(offsetX, Math.min(l.length(), offsetX + width)); client.getTerminal().writer().println(windowX.toAnsi()); } else { client.getTerminal().writer().println(); // nothing to show for this line windowedMainLines.size() - mainHeaderLines.size() - footerLines.size(); IntStream.range(0, emptyHeight).forEach(i -> client.getTerminal().writer().println()); client.getTerminal().writer().print(l.toAnsi()); } else { client.getTerminal().writer().println(l.toAnsi());
public void setReader(LineReader reader){ this.reader = (LineReaderImpl)reader; out = reader.getTerminal().writer(); }