/**
* Copyright (c) 2012-2016 André Bargull
* Alle Rechte vorbehalten / All Rights Reserved. Use is subject to license terms.
*
* <https://github.com/anba/es6draft>
*/
package com.github.anba.es6draft.runtime.internal;
import java.io.PrintWriter;
import java.io.Reader;
/**
* Console interface.
*/
public interface Console {
/**
* Prints the format string to the console output writer.
*
* @param format
* the format string
* @param args
* the format string arguments
*/
void printf(String format, Object... args);
/**
* Flushes the console output writer.
*/
void flush();
/**
* Reads a single line from the console input reader.
*
* @return the line string or {@code null} if no input available
*/
String readLine();
/**
* Reads a single line from the console input reader.
*
* @param prompt
* the optional command line prompt
* @return the line string or {@code null} if no input available
*/
String readLine(String prompt);
/**
* Returns the reader ({@code stdin}) bound to this console object.
*
* @return the console reader
*/
Reader reader();
/**
* Returns the writer ({@code stdout}) bound to this console object.
*
* @return the console writer
*/
PrintWriter writer();
/**
* Returns the error writer ({@code stderr}) bound to this console object.
*
* @return the console error writer
*/
PrintWriter errorWriter();
}