Class ShellConsole
- java.lang.Object
-
- org.mozilla.javascript.tools.shell.ShellConsole
-
- Direct Known Subclasses:
ShellConsole.JLineShellConsoleV1
,ShellConsole.JLineShellConsoleV2
,ShellConsole.SimpleShellConsole
public abstract class ShellConsole extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
ShellConsole.ConsoleInputStream
JLine's ConsoleReaderInputStream is no longer public, therefore we need to use our own implementationprivate static class
ShellConsole.JLineShellConsoleV1
ShellConsole
implementation for JLine v1private static class
ShellConsole.JLineShellConsoleV2
ShellConsole
implementation for JLine v2private static class
ShellConsole.SimpleShellConsole
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.Class[]
BOOLEAN_ARG
private static java.lang.Class[]
CHARSEQ_ARG
private static java.lang.Class[]
NO_ARG
private static java.lang.Class[]
STRING_ARG
-
Constructor Summary
Constructors Modifier Constructor Description protected
ShellConsole()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract void
flush()
Flushes the console's outputstatic ShellConsole
getConsole(java.io.InputStream in, java.io.PrintStream ps, java.nio.charset.Charset cs)
static ShellConsole
getConsole(Scriptable scope, java.nio.charset.Charset cs)
Provides a specializedShellConsole
to handle line editing, history and completion.abstract java.io.InputStream
getIn()
Returns the underlyingInputStream
private static ShellConsole.JLineShellConsoleV1
getJLineShellConsoleV1(java.lang.ClassLoader classLoader, java.lang.Class<?> readerClass, Scriptable scope, java.nio.charset.Charset cs)
private static ShellConsole.JLineShellConsoleV2
getJLineShellConsoleV2(java.lang.ClassLoader classLoader, java.lang.Class<?> readerClass, Scriptable scope, java.nio.charset.Charset cs)
abstract void
print(java.lang.String s)
Prints a single string to the consoleabstract void
println()
Prints the newline character-sequence to the consoleabstract void
println(java.lang.String s)
Prints a string and the newline character-sequence to the consoleabstract java.lang.String
readLine()
Reads a single line from the consoleabstract java.lang.String
readLine(java.lang.String prompt)
Reads a single line from the console and sets the console's prompt toprompt
private static java.lang.Object
tryInvoke(java.lang.Object obj, java.lang.String method, java.lang.Class[] paramTypes, java.lang.Object... args)
-
-
-
Method Detail
-
getIn
public abstract java.io.InputStream getIn()
Returns the underlyingInputStream
-
readLine
public abstract java.lang.String readLine() throws java.io.IOException
Reads a single line from the console- Throws:
java.io.IOException
-
readLine
public abstract java.lang.String readLine(java.lang.String prompt) throws java.io.IOException
Reads a single line from the console and sets the console's prompt toprompt
- Throws:
java.io.IOException
-
flush
public abstract void flush() throws java.io.IOException
Flushes the console's output- Throws:
java.io.IOException
-
print
public abstract void print(java.lang.String s) throws java.io.IOException
Prints a single string to the console- Throws:
java.io.IOException
-
println
public abstract void println() throws java.io.IOException
Prints the newline character-sequence to the console- Throws:
java.io.IOException
-
println
public abstract void println(java.lang.String s) throws java.io.IOException
Prints a string and the newline character-sequence to the console- Throws:
java.io.IOException
-
tryInvoke
private static java.lang.Object tryInvoke(java.lang.Object obj, java.lang.String method, java.lang.Class[] paramTypes, java.lang.Object... args)
-
getConsole
public static ShellConsole getConsole(java.io.InputStream in, java.io.PrintStream ps, java.nio.charset.Charset cs)
-
getConsole
public static ShellConsole getConsole(Scriptable scope, java.nio.charset.Charset cs)
Provides a specializedShellConsole
to handle line editing, history and completion. Relies on the JLine library (see http://jline.sourceforge.net).
-
getJLineShellConsoleV1
private static ShellConsole.JLineShellConsoleV1 getJLineShellConsoleV1(java.lang.ClassLoader classLoader, java.lang.Class<?> readerClass, Scriptable scope, java.nio.charset.Charset cs) throws java.lang.NoSuchMethodException, java.lang.InstantiationException, java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException
- Throws:
java.lang.NoSuchMethodException
java.lang.InstantiationException
java.lang.IllegalAccessException
java.lang.reflect.InvocationTargetException
-
getJLineShellConsoleV2
private static ShellConsole.JLineShellConsoleV2 getJLineShellConsoleV2(java.lang.ClassLoader classLoader, java.lang.Class<?> readerClass, Scriptable scope, java.nio.charset.Charset cs) throws java.lang.NoSuchMethodException, java.lang.InstantiationException, java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException
- Throws:
java.lang.NoSuchMethodException
java.lang.InstantiationException
java.lang.IllegalAccessException
java.lang.reflect.InvocationTargetException
-
-