public ResultModel getResultModel() { ModelCommandResult modelCommandResult = (ModelCommandResult) actual.getCommandResult(); return modelCommandResult.getResultData(); }
@Override public String nextLine() { if (commandOutput == null) { buildCommandOutput(); } return commandOutput.get(commandOutputIndex++); }
@Override public String getErrorMessage() { return getMessageFromContent(); }
private void buildCommandOutput() { commandOutputIndex = 0; commandOutput = new ArrayList<>(); TableBuilder.Table resultTable = TableBuilder.newTable(); addSpacedRowInTable(resultTable, result.getHeader()); int index = 0; int sectionSize = result.getContent().size(); for (AbstractResultModel section : result.getContent().values()) { index++; if (section instanceof DataResultModel) { buildData(resultTable, (DataResultModel) section); } else if (section instanceof TabularResultModel) { buildTabularCommandOutput(resultTable, (TabularResultModel) section); } else if (section instanceof InfoResultModel) { buildInfoOrErrorCommandOutput(resultTable, (InfoResultModel) section); } else { throw new IllegalArgumentException( "Unable to process output for " + section.getClass().getName()); } // only add the spacer in between the sections. if (index < sectionSize) { addSpacedRowInTable(resultTable, LINE_SEPARATOR); } } addSpacedRowInTable(resultTable, result.getFooter()); commandOutput.addAll(resultTable.buildTableList()); }
return new ModelCommandResult((ResultModel) exeuctionResult);
private void buildTabularCommandOutput(TableBuilder.Table resultTable, TabularResultModel model) { addSpacedRowInTable(resultTable, model.getHeader()); resultTable.setColumnSeparator(" "); resultTable.setTabularResult(true); TableBuilder.RowGroup rowGroup = resultTable.newRowGroup(); buildTable(rowGroup, model); addSpacedRowInTable(resultTable, model.getFooter()); }
private void buildInfoOrErrorCommandOutput(TableBuilder.Table resultTable, InfoResultModel model) { TableBuilder.RowGroup rowGroup = resultTable.newRowGroup(); addRowInRowGroup(rowGroup, model.getHeader()); model.getContent().forEach(c -> rowGroup.newRow().newLeftCol(c)); addRowInRowGroup(rowGroup, model.getFooter()); } }
return new ModelCommandResult(ResultModel.createError("Invalid command: " + command)); if (preExecResult instanceof ResultModel) { if (((ResultModel) preExecResult).getStatus() != Result.Status.OK) { return new ModelCommandResult((ResultModel) preExecResult); return new ModelCommandResult((ResultModel) exeResult);
private void buildData(TableBuilder.Table resultTable, DataResultModel section) { TableBuilder.RowGroup rowGroup = resultTable.newRowGroup(); rowGroup.setColumnSeparator(" : "); addRowInRowGroup(rowGroup, section.getHeader()); // finally process map values for (Map.Entry<String, String> entry : section.getContent().entrySet()) { TableBuilder.Row newRow = rowGroup.newRow(); String key = entry.getKey(); String value = entry.getValue(); String[] values = entry.getValue().split(GfshParser.LINE_SEPARATOR); if (values.length == 1) { newRow.newLeftCol(key).newLeftCol(values[0]); } else { if (values.length != 0) { // possible when object == CliConstants.LINE_SEPARATOR newRow.newLeftCol(key).newLeftCol(values[0]); for (int i = 1; i < values.length; i++) { newRow = rowGroup.newRow(); newRow.setColumnSeparator(" "); newRow.newLeftCol("").newLeftCol(values[i]); } } else { newRow.newLeftCol(key).newLeftCol(""); } } } addRowInRowGroup(rowGroup, section.getFooter()); }
@Override public ResultModel postExecution(GfshParseResult parseResult, ResultModel model, Path tempFile) throws Exception { File outputFile = getOutputFile(parseResult); if (outputFile == null) { return model; } Map<String, String> sectionResultData = model.getDataSection(DataCommandResult.DATA_INFO_SECTION).getContent(); String limit = sectionResultData.get("Limit"); String resultString = sectionResultData.get("Result"); String rows = sectionResultData.get("Rows"); if ("false".equalsIgnoreCase(resultString)) { return model; } writeResultTableToFile(outputFile, new ModelCommandResult(model)); ResultModel newModel = new ResultModel(); DataResultModel data = newModel.addData(DataCommandResult.DATA_INFO_SECTION); data.addData("Result", resultString); if (StringUtils.isNotBlank(limit)) { data.addData("Limit", limit); } data.addData("Rows", rows); newModel.addInfo().addLine("Query results output to " + outputFile.getAbsolutePath()); return newModel; }
@Override public String toJson() { return getResultData().toJson(); }
@Override public boolean hasNextLine() { if (commandOutput == null) { buildCommandOutput(); } return commandOutputIndex < commandOutput.size(); }
return new ModelCommandResult(ResultModel.fromJson(json));
useResultModel = true; if (((ResultModel) preExecResult).getStatus() != Status.OK) { return new ModelCommandResult((ResultModel) preExecResult); gfshResult = new ModelCommandResult((ResultModel) commandResult); } else { gfshResult = (CommandResult) commandResult;