APIdia Launch Partner
Top Description Inners Fields Constructors Methods
jdk.internal.org.jline.terminal

public final Class TerminalBuilder

extends Object
Class Inheritance
Imports
java.io.IOException, .InputStream, .OutputStream, java.lang.reflect.Method, java.nio.charset.Charset, .StandardCharsets, .UnsupportedCharsetException, java.util.ArrayList, .Arrays, .Collections, .Comparator, .HashSet, .List, .Locale, .Map, .Optional, .ServiceLoader, .Set, java.util.concurrent.atomic.AtomicReference, java.util.function.Function, java.util.stream.Collectors, .Stream, jdk.internal.org.jline.terminal.impl.AbstractPosixTerminal, .AbstractTerminal, .DumbTerminal, .DumbTerminalProvider, jdk.internal.org.jline.terminal.spi.SystemStream, .TerminalExt, .TerminalProvider, jdk.internal.org.jline.utils.Log, .OSUtils

Builder class to create terminals.

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static enum

Field Summary

Modifier and TypeField and Description
private Attributes
private int
private Boolean
public static final Set<String>
private Boolean
private Charset
private Boolean
private Boolean
private InputStream
private Function<InputStream, InputStream>
private Boolean
private Boolean
private Boolean
private String
private boolean
private OutputStream
private boolean
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
private String
private String
private Terminal.SignalHandler
private Size
private Boolean
private static final AtomicReference<Terminal>
private TerminalBuilder.SystemOutput
private static final AtomicReference<Terminal>
private String
private static final int

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public TerminalBuilder

Returns:

The builder
attributes
(Attributes
the attributes to use
attributes
)

Attributes to use when creating a non system terminal, i.e. when the builder has been given the input and output streams using the streams(InputStream, OutputStream) method or when system(boolean) has been explicitly called with false.

public Terminal

Returns:

the newly created terminal, never null
build
()

Builds the terminal.

public static TerminalBuilder

Returns:

a builder
builder
()

Creates a new terminal builder instance.

private void
checkProvider(String provider, IllegalStateException exception, List<TerminalProvider> providers, Boolean load, String property, String name)

public TerminalBuilder
codepage(int
the codepage
codepage
)
Deprecated JLine now writes Unicode output independently from the selected code page.

Returns: The builder

public TerminalBuilder
color(boolean color)

public Charset
public TerminalBuilder.SystemOutput
public String
private Terminal
public TerminalBuilder
dumb(boolean dumb)

Enables or disables the PROP_PROVIDER_DUMB/dumb terminal provider.

public TerminalBuilder

Returns:

The builder
encoding
(String
The encoding to use or null to automatically select one
encoding
)

Set the encoding to use for reading/writing from the console.

public TerminalBuilder

Returns:

The builder
encoding
(Charset
The encoding to use or null to automatically select one
encoding
)

Set the Charset to use for reading/writing from the console.

public TerminalBuilder
exec(boolean exec)

Enables or disables the PROP_PROVIDER_EXEC/exec terminal provider.

public TerminalBuilder
ffm(boolean ffm)

Enables or disables the PROP_PROVIDER_FFM/ffm terminal provider.

private static Boolean
private static Charset
getCodepageCharset(int codepage)

private String
private static String
public List<TerminalProvider>

Returns:

a list of terminal providers
getProviders
(String
if not null, only this provider will be checked
provider
,
IllegalStateException
if a provider throws an exception, it will be added to this exception as a suppressed exception
exception
)

Get the list of available terminal providers.

public TerminalBuilder
public TerminalBuilder
jansi(boolean jansi)

Enables or disables the PROP_PROVIDER_JANSI/jansi terminal provider.

public TerminalBuilder
jna(boolean jna)

Enables or disables the PROP_PROVIDER_JNA/jna terminal provider.

public TerminalBuilder
jni(boolean jni)

Enables or disables the PROP_PROVIDER_JNI/jni terminal provider.

private static <S> S
load(Class<S> clazz)

public TerminalBuilder
name(String name)

public TerminalBuilder
nativeSignals(boolean nativeSignals)

public TerminalBuilder

Returns:

The builder
paused
(boolean
the initial paused state
paused
)

Initial paused state of the terminal (defaults to false).

public TerminalBuilder

Returns:

The builder.
provider
(String
The TerminalProvider's name to use when creating the Terminal.
provider
)

Forces the usage of the give terminal provider.

public TerminalBuilder

Returns:

The builder.
providers
(String
The list of TerminalProvider's names to check when creating the Terminal.
providers
)

Sets the list of providers to try when creating the terminal.

private SystemStream
private static SystemStream
select(Map<SystemStream, Boolean> system, SystemStream... streams)

public static void
setTerminalOverride(final Terminal
the Terminal to globally override
terminal
)
Deprecated

Allows an application to override the result of build().

public TerminalBuilder

Returns:

The builder
signalHandler
(Terminal.SignalHandler
the default signal handler
signalHandler
)

Determines the default value for signal handlers.

public TerminalBuilder

Returns:

The builder
size
(Size
the initial size
size
)

Initial size to use when creating a non system terminal, i.e. when the builder has been given the input and output streams using the streams(InputStream, OutputStream) method or when system(boolean) has been explicitly called with false.

public TerminalBuilder
public TerminalBuilder
system(boolean system)

public TerminalBuilder

Returns:

The builder.
systemOutput
(TerminalBuilder.SystemOutput
The mode to choose the output stream.
systemOutput
)

Indicates which standard stream should be used when displaying to the terminal.

public static Terminal

Returns:

the default system terminal
terminal
()

Returns the default system terminal.

public TerminalBuilder
type(String type)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

attributesback to summary
private Attributes attributes
codepageback to summary
private int codepage
colorback to summary
private Boolean color
DEPRECATED_PROVIDERSback to summary
public static final Set<String> DEPRECATED_PROVIDERS
dumbback to summary
private Boolean dumb
encodingback to summary
private Charset encoding
execback to summary
private Boolean exec
ffmback to summary
private Boolean ffm
inback to summary
private InputStream in
inputStreamWrapperback to summary
private Function<InputStream, InputStream> inputStreamWrapper
jansiback to summary
private Boolean jansi
jnaback to summary
private Boolean jna
jniback to summary
private Boolean jni
nameback to summary
private String name
nativeSignalsback to summary
private boolean nativeSignals
outback to summary
private OutputStream out
pausedback to summary
private boolean paused
PROP_CODEPAGEback to summary
public static final String PROP_CODEPAGE
PROP_COLOR_DISTANCEback to summary
public static final String PROP_COLOR_DISTANCE
PROP_DISABLE_ALTERNATE_CHARSETback to summary
public static final String PROP_DISABLE_ALTERNATE_CHARSET
PROP_DISABLE_DEPRECATED_PROVIDER_WARNINGback to summary
public static final String PROP_DISABLE_DEPRECATED_PROVIDER_WARNING
PROP_DUMBback to summary
public static final String PROP_DUMB
PROP_DUMB_COLORback to summary
public static final String PROP_DUMB_COLOR
PROP_ENCODINGback to summary
public static final String PROP_ENCODING
PROP_EXECback to summary
public static final String PROP_EXEC
PROP_FFMback to summary
public static final String PROP_FFM
PROP_FILE_DESCRIPTOR_CREATION_MODEback to summary
public static final String PROP_FILE_DESCRIPTOR_CREATION_MODE
PROP_FILE_DESCRIPTOR_CREATION_MODE_DEFAULTback to summary
public static final String PROP_FILE_DESCRIPTOR_CREATION_MODE_DEFAULT
PROP_FILE_DESCRIPTOR_CREATION_MODE_NATIVEback to summary
public static final String PROP_FILE_DESCRIPTOR_CREATION_MODE_NATIVE
PROP_FILE_DESCRIPTOR_CREATION_MODE_REFLECTIONback to summary
public static final String PROP_FILE_DESCRIPTOR_CREATION_MODE_REFLECTION
PROP_JANSIback to summary
public static final String PROP_JANSI
PROP_JNAback to summary
public static final String PROP_JNA
PROP_JNIback to summary
public static final String PROP_JNI
PROP_NON_BLOCKING_READSback to summary
public static final String PROP_NON_BLOCKING_READS
PROP_OUTPUTback to summary
public static final String PROP_OUTPUT
PROP_OUTPUT_ERRback to summary
public static final String PROP_OUTPUT_ERR
PROP_OUTPUT_ERR_OUTback to summary
public static final String PROP_OUTPUT_ERR_OUT
PROP_OUTPUT_FORCED_ERRback to summary
public static final String PROP_OUTPUT_FORCED_ERR
PROP_OUTPUT_FORCED_OUTback to summary
public static final String PROP_OUTPUT_FORCED_OUT
PROP_OUTPUT_OUTback to summary
public static final String PROP_OUTPUT_OUT
PROP_OUTPUT_OUT_ERRback to summary
public static final String PROP_OUTPUT_OUT_ERR
PROP_PROVIDERback to summary
public static final String PROP_PROVIDER
PROP_PROVIDER_DUMBback to summary
public static final String PROP_PROVIDER_DUMB
PROP_PROVIDER_EXECback to summary
public static final String PROP_PROVIDER_EXEC
PROP_PROVIDER_FFMback to summary
public static final String PROP_PROVIDER_FFM
PROP_PROVIDER_JANSIback to summary
public static final String PROP_PROVIDER_JANSI
PROP_PROVIDER_JNAback to summary
public static final String PROP_PROVIDER_JNA
PROP_PROVIDER_JNIback to summary
public static final String PROP_PROVIDER_JNI
PROP_PROVIDERSback to summary
public static final String PROP_PROVIDERS
PROP_PROVIDERS_DEFAULTback to summary
public static final String PROP_PROVIDERS_DEFAULT
PROP_REDIRECT_PIPE_CREATION_MODEback to summary
public static final String PROP_REDIRECT_PIPE_CREATION_MODE
PROP_REDIRECT_PIPE_CREATION_MODE_DEFAULTback to summary
public static final String PROP_REDIRECT_PIPE_CREATION_MODE_DEFAULT
PROP_REDIRECT_PIPE_CREATION_MODE_NATIVEback to summary
public static final String PROP_REDIRECT_PIPE_CREATION_MODE_NATIVE
PROP_REDIRECT_PIPE_CREATION_MODE_REFLECTIONback to summary
public static final String PROP_REDIRECT_PIPE_CREATION_MODE_REFLECTION
PROP_TYPEback to summary
public static final String PROP_TYPE
providerback to summary
private String provider
providersback to summary
private String providers
signalHandlerback to summary
private Terminal.SignalHandler signalHandler
sizeback to summary
private Size size
systemback to summary
private Boolean system
SYSTEM_TERMINALback to summary
private static final AtomicReference<Terminal> SYSTEM_TERMINAL
systemOutputback to summary
private TerminalBuilder.SystemOutput systemOutput
TERMINAL_OVERRIDEback to summary
private static final AtomicReference<Terminal> TERMINAL_OVERRIDE
typeback to summary
private String type
UTF8_CODE_PAGEback to summary
private static final int UTF8_CODE_PAGE

Constructor Detail

TerminalBuilderback to summary
private TerminalBuilder()

Method Detail

attributesback to summary
public TerminalBuilder attributes(Attributes attributes)

Attributes to use when creating a non system terminal, i.e. when the builder has been given the input and output streams using the streams(InputStream, OutputStream) method or when system(boolean) has been explicitly called with false.

Parameters
attributes:Attributes

the attributes to use

Returns:TerminalBuilder

The builder

See Also
size(Size), system(boolean)
buildback to summary
public Terminal build() throws IOException

Builds the terminal.

Returns:Terminal

the newly created terminal, never null

Exceptions
IOException:
if an error occurs
builderback to summary
public static TerminalBuilder builder()

Creates a new terminal builder instance.

Returns:TerminalBuilder

a builder

checkProviderback to summary
private void checkProvider(String provider, IllegalStateException exception, List<TerminalProvider> providers, Boolean load, String property, String name)
codepageback to summary
public TerminalBuilder codepage(int codepage)

Deprecated

JLine now writes Unicode output independently from the selected code page. Using this option will only make it emulate the selected code page for Terminal#input() and Terminal#output().

Parameters
codepage:int

the codepage

Returns:TerminalBuilder

The builder

Annotations
@Deprecated
colorback to summary
public TerminalBuilder color(boolean color)
computeEncodingback to summary
public Charset computeEncoding()
computeSystemOutputback to summary
public TerminalBuilder.SystemOutput computeSystemOutput()
computeTypeback to summary
public String computeType()
doBuildback to summary
private Terminal doBuild() throws IOException
dumbback to summary
public TerminalBuilder dumb(boolean dumb)

Enables or disables the PROP_PROVIDER_DUMB/dumb terminal provider. If not specified, the system property PROP_DUMB will be used if set. If not specified, the provider will be checked.

encodingback to summary
public TerminalBuilder encoding(String encoding) throws UnsupportedCharsetException

Set the encoding to use for reading/writing from the console. If null (the default value), JLine will automatically select a Charset, usually the default system encoding. However, on some platforms (e.g. Windows) it may use a different one depending on the Terminal implementation.

Use Terminal#encoding() to get the Charset that should be used for a Terminal.

Parameters
encoding:String

The encoding to use or null to automatically select one

Returns:TerminalBuilder

The builder

Exceptions
UnsupportedCharsetException:
If the given encoding is not supported
See Also
Terminal#encoding()
encodingback to summary
public TerminalBuilder encoding(Charset encoding)

Set the Charset to use for reading/writing from the console. If null (the default value), JLine will automatically select a Charset, usually the default system encoding. However, on some platforms (e.g. Windows) it may use a different one depending on the Terminal implementation.

Use Terminal#encoding() to get the Charset that should be used to read/write from a Terminal.

Parameters
encoding:Charset

The encoding to use or null to automatically select one

Returns:TerminalBuilder

The builder

See Also
Terminal#encoding()
execback to summary
public TerminalBuilder exec(boolean exec)

Enables or disables the PROP_PROVIDER_EXEC/exec terminal provider. If not specified, the system property PROP_EXEC will be used if set. If not specified, the provider will be checked.

ffmback to summary
public TerminalBuilder ffm(boolean ffm)

Enables or disables the PROP_PROVIDER_FFM/ffm terminal provider. If not specified, the system property PROP_FFM will be used if set. If not specified, the provider will be checked.

getBooleanback to summary
private static Boolean getBoolean(String name, Boolean def)
getCodepageCharsetback to summary
private static Charset getCodepageCharset(int codepage)
getDumbTerminalTypeback to summary
private String getDumbTerminalType(Boolean dumb, SystemStream systemStream)
getParentProcessCommandback to summary
private static String getParentProcessCommand()
getProvidersback to summary
public List<TerminalProvider> getProviders(String provider, IllegalStateException exception)

Get the list of available terminal providers. This list is sorted according to the PROP_PROVIDERS system property.

Parameters
provider:String

if not null, only this provider will be checked

exception:IllegalStateException

if a provider throws an exception, it will be added to this exception as a suppressed exception

Returns:List<TerminalProvider>

a list of terminal providers

inputStreamWrapperback to summary
public TerminalBuilder inputStreamWrapper(Function<InputStream, InputStream> wrapper)
jansiback to summary
public TerminalBuilder jansi(boolean jansi)

Enables or disables the PROP_PROVIDER_JANSI/jansi terminal provider. If not specified, the system property PROP_JANSI will be used if set. If not specified, the provider will be checked.

jnaback to summary
public TerminalBuilder jna(boolean jna)

Enables or disables the PROP_PROVIDER_JNA/jna terminal provider. If not specified, the system property PROP_JNA will be used if set. If not specified, the provider will be checked.

jniback to summary
public TerminalBuilder jni(boolean jni)

Enables or disables the PROP_PROVIDER_JNI/jni terminal provider. If not specified, the system property PROP_JNI will be used if set. If not specified, the provider will be checked.

loadback to summary
private static <S> S load(Class<S> clazz)
nameback to summary
public TerminalBuilder name(String name)
nativeSignalsback to summary
public TerminalBuilder nativeSignals(boolean nativeSignals)
pausedback to summary
public TerminalBuilder paused(boolean paused)

Initial paused state of the terminal (defaults to false). By default, the terminal is started, but in some cases, one might want to make sure the input stream is not consumed before needed, in which case the terminal needs to be created in a paused state.

Parameters
paused:boolean

the initial paused state

Returns:TerminalBuilder

The builder

See Also
Terminal#pause()
providerback to summary
public TerminalBuilder provider(String provider)

Forces the usage of the give terminal provider.

Parameters
provider:String

The TerminalProvider's name to use when creating the Terminal.

Returns:TerminalBuilder

The builder.

providersback to summary
public TerminalBuilder providers(String providers)

Sets the list of providers to try when creating the terminal. If not specified, the system property PROP_PROVIDERS will be used if set. Else, the value PROP_PROVIDERS_DEFAULT will be used.

Parameters
providers:String

The list of TerminalProvider's names to check when creating the Terminal.

Returns:TerminalBuilder

The builder.

selectback to summary
private SystemStream select(Map<SystemStream, Boolean> system, TerminalBuilder.SystemOutput systemOutput)
selectback to summary
private static SystemStream select(Map<SystemStream, Boolean> system, SystemStream... streams)
setTerminalOverrideback to summary
public static void setTerminalOverride(final Terminal terminal)

Deprecated

Allows an application to override the result of build(). The intended use case is to allow a container or server application to control an embedded application that uses a LineReader that uses Terminal constructed with TerminalBuilder.build but provides no public api for setting the LineReader of the Terminal. For example, the sbt build tool uses a LineReader to implement an interactive shell. One of its supported commands is console which invokes the scala REPL. The scala REPL also uses a LineReader and it is necessary to override the Terminal used by the the REPL to share the same Terminal instance used by sbt.

When this method is called with a non-null Terminal, all subsequent calls to build() will return the provided Terminal regardless of how the TerminalBuilder was constructed. The default behavior of TerminalBuilder can be restored by calling setTerminalOverride with a null Terminal

Usage of setTerminalOverride should be restricted to cases where it isn't possible to update the api of the nested application to accept a instance.

Parameters
terminal:Terminal

the Terminal to globally override

Annotations
@Deprecated
signalHandlerback to summary
public TerminalBuilder signalHandler(Terminal.SignalHandler signalHandler)

Determines the default value for signal handlers. All signals will be mapped to the given handler.

Parameters
signalHandler:Terminal.SignalHandler

the default signal handler

Returns:TerminalBuilder

The builder

sizeback to summary
public TerminalBuilder size(Size size)

Initial size to use when creating a non system terminal, i.e. when the builder has been given the input and output streams using the streams(InputStream, OutputStream) method or when system(boolean) has been explicitly called with false.

Parameters
size:Size

the initial size

Returns:TerminalBuilder

The builder

See Also
attributes(Attributes), system(boolean)
streamsback to summary
public TerminalBuilder streams(InputStream in, OutputStream out)
systemback to summary
public TerminalBuilder system(boolean system)
systemOutputback to summary
public TerminalBuilder systemOutput(TerminalBuilder.SystemOutput systemOutput)

Indicates which standard stream should be used when displaying to the terminal. The default is to use the system output stream. Building a system terminal will fail if one of the stream specified is not linked to the controlling terminal.

Parameters
systemOutput:TerminalBuilder.SystemOutput

The mode to choose the output stream.

Returns:TerminalBuilder

The builder.

terminalback to summary
public static Terminal terminal() throws IOException

Returns the default system terminal. Terminals should be closed properly using the Terminal#close() method in order to restore the original terminal state.

This call is equivalent to: builder().build()

Returns:Terminal

the default system terminal

Exceptions
IOException:
if an error occurs
typeback to summary
public TerminalBuilder type(String type)
jdk.internal.org.jline.terminal back to summary

public final Enum TerminalBuilder.SystemOutput

extends Enum<TerminalBuilder.SystemOutput>
Class Inheritance

Field Summary

Modifier and TypeField and Description
public static final TerminalBuilder.SystemOutput
public static final TerminalBuilder.SystemOutput
public static final TerminalBuilder.SystemOutput
public static final TerminalBuilder.SystemOutput
public static final TerminalBuilder.SystemOutput
public static final TerminalBuilder.SystemOutput

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public static TerminalBuilder.SystemOutput
public static TerminalBuilder.SystemOutput[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinaltoStringvalueOf

Field Detail

ForcedSysErrback to summary
public static final TerminalBuilder.SystemOutput ForcedSysErr
ForcedSysOutback to summary
public static final TerminalBuilder.SystemOutput ForcedSysOut
SysErrback to summary
public static final TerminalBuilder.SystemOutput SysErr
SysErrOrSysOutback to summary
public static final TerminalBuilder.SystemOutput SysErrOrSysOut
SysOutback to summary
public static final TerminalBuilder.SystemOutput SysOut
SysOutOrSysErrback to summary
public static final TerminalBuilder.SystemOutput SysOutOrSysErr

Constructor Detail

SystemOutputback to summary
private SystemOutput()

Method Detail

valueOfback to summary
public static TerminalBuilder.SystemOutput valueOf(String name)
valuesback to summary
public static TerminalBuilder.SystemOutput[] values()