package jeql.command.io; import jeql.api.table.Table; import jeql.engine.EngineContext; import jeql.engine.Scope; import jeql.util.TypeUtil; public class PrintCommand extends TableTextFileWriterCmd { private Object input; private boolean showHeader = true; private int limit = -1; private boolean isCode = false; //private String sep = null; public PrintCommand() { } public void setDefault(Object input) { this.input = input; } public void setHeader(boolean showHeader) { this.showHeader = showHeader; } public void setLimit(int limit) { this.limit = limit; } public void setCode(boolean isCode) { this.isCode = isCode; } public void setSep(String sep) { this.colSep = sep; } public void execute(Scope scope) throws Exception { if (input instanceof Table) { write((Table) input); } else EngineContext.OUTPUT_WRITER.println(TypeUtil.toString(input)); } protected void write(Table tbl) throws Exception { TableTextWriter writer = new TableTextWriter(); writer.setShowHeader(showHeader); writer.setLimit(limit); if (colSep != null) writer.setColSep(colSep); if (rowSep != null) writer.setRowSep(rowSep); writer.setCode(isCode); writer.write((Table) input); } }