All Downloads are FREE. Search and download functionalities are using the official Maven repository.

convex.cli.output.Output Maven / Gradle / Ivy

package convex.cli.output;

import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

import convex.core.data.ACell;
import convex.core.Result;

/*
 * Output class to show results from the CLI
 *
 */



public class Output {

	protected List fieldList = new ArrayList();

	protected List> rowList = new ArrayList>();

	public OutputField setField(String name, long value) {
		return setField(name, String.valueOf(value));
	}

	public OutputField setField(String name, ACell value) {
		return setField(name, value.toString());
	}

	public OutputField setField(String name, String value) {
		OutputField field = OutputField.create(name, value);
		fieldList.add(field);
		return field;
	}

	public void setResult(Result result) {
		ACell value = result.getValue();
		setField("Result", value);
		if (result.isError()) {
			setField("Error code", result.getErrorCode());
			if (result.getTrace() != null) {
				setField("Trace", result.getTrace());
			}
			return;
		}
		setField("Data type", value.getType().toString());
	}

	public void addRow() {
		rowList.add(fieldList);
		fieldList = new ArrayList();
	}

	public void writeToStream(PrintWriter out) {
		if (rowList.size() > 0) {
			List firstRow = rowList.get(0);
			out.println(firstRow.stream().map(OutputField::getDescription).collect(Collectors.joining(" ")));
			for ( ListfieldList : rowList) {
				out.println(fieldList.stream().map(OutputField::getValue).collect(Collectors.joining(" ")));
			}
		}
		else {
			for (OutputField field : fieldList) {
				out.println(String.format("%s: %s", field.getDescription(), field.getValue()));
			}
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy