Skip to content

Commit cb17626

Browse files
committedOct 11, 2023
Clean a bit TerminalBuilder
1 parent e498675 commit cb17626

File tree

7 files changed

+292
-194
lines changed

7 files changed

+292
-194
lines changed
 

‎terminal-ffm/src/main/java/org/jline/terminal/impl/ffm/FfmTerminalProvider.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import org.jline.terminal.Attributes;
1818
import org.jline.terminal.Size;
1919
import org.jline.terminal.Terminal;
20+
import org.jline.terminal.TerminalBuilder;
2021
import org.jline.terminal.impl.PosixPtyTerminal;
2122
import org.jline.terminal.impl.PosixSysTerminal;
2223
import org.jline.terminal.spi.Pty;
@@ -35,7 +36,7 @@ public FfmTerminalProvider() {
3536

3637
@Override
3738
public String name() {
38-
return "ffm";
39+
return TerminalBuilder.PROP_PROVIDER_FFM;
3940
}
4041

4142
@Override

‎terminal-jansi/src/main/java/org/jline/terminal/impl/jansi/JansiTerminalProvider.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import org.jline.terminal.Attributes;
2121
import org.jline.terminal.Size;
2222
import org.jline.terminal.Terminal;
23+
import org.jline.terminal.TerminalBuilder;
2324
import org.jline.terminal.impl.PosixPtyTerminal;
2425
import org.jline.terminal.impl.PosixSysTerminal;
2526
import org.jline.terminal.impl.jansi.freebsd.FreeBsdNativePty;
@@ -80,7 +81,7 @@ public static boolean isAtLeast(int major, int minor) {
8081

8182
@Override
8283
public String name() {
83-
return "jansi";
84+
return TerminalBuilder.PROP_PROVIDER_JANSI;
8485
}
8586

8687
public Pty current(SystemStream systemStream) throws IOException {

‎terminal-jna/src/main/java/org/jline/terminal/impl/jna/JnaTerminalProvider.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import org.jline.terminal.Attributes;
1717
import org.jline.terminal.Size;
1818
import org.jline.terminal.Terminal;
19+
import org.jline.terminal.TerminalBuilder;
1920
import org.jline.terminal.impl.PosixPtyTerminal;
2021
import org.jline.terminal.impl.PosixSysTerminal;
2122
import org.jline.terminal.impl.jna.win.JnaWinSysTerminal;
@@ -27,7 +28,7 @@
2728
public class JnaTerminalProvider implements TerminalProvider {
2829
@Override
2930
public String name() {
30-
return "jna";
31+
return TerminalBuilder.PROP_PROVIDER_JNA;
3132
}
3233

3334
public Pty current(SystemStream systemStream) throws IOException {

‎terminal/src/main/java/org/jline/terminal/TerminalBuilder.java

+191-184
Large diffs are not rendered by default.

‎terminal/src/main/java/org/jline/terminal/impl/DumbTerminal.java

+9-6
Original file line numberDiff line numberDiff line change
@@ -26,34 +26,38 @@
2626

2727
public class DumbTerminal extends AbstractTerminal {
2828

29+
private final TerminalProvider provider;
30+
private final SystemStream systemStream;
2931
private final NonBlockingInputStream input;
3032
private final OutputStream output;
3133
private final NonBlockingReader reader;
3234
private final PrintWriter writer;
3335
private final Attributes attributes;
3436
private final Size size;
35-
private final SystemStream systemStream;
3637

3738
public DumbTerminal(InputStream in, OutputStream out) throws IOException {
3839
this(TYPE_DUMB, TYPE_DUMB, in, out, null);
3940
}
4041

4142
public DumbTerminal(String name, String type, InputStream in, OutputStream out, Charset encoding)
4243
throws IOException {
43-
this(name, type, in, out, encoding, SignalHandler.SIG_DFL, null);
44+
this(null, null, name, type, in, out, encoding, SignalHandler.SIG_DFL);
4445
}
4546

4647
@SuppressWarnings("this-escape")
4748
public DumbTerminal(
49+
TerminalProvider provider,
50+
SystemStream systemStream,
4851
String name,
4952
String type,
5053
InputStream in,
5154
OutputStream out,
5255
Charset encoding,
53-
SignalHandler signalHandler,
54-
SystemStream systemStream)
56+
SignalHandler signalHandler)
5557
throws IOException {
5658
super(name, type, encoding, signalHandler);
59+
this.provider = provider;
60+
this.systemStream = systemStream;
5761
NonBlockingInputStream nbis = NonBlocking.nonBlocking(getName(), in);
5862
this.input = new NonBlockingInputStream() {
5963
@Override
@@ -98,7 +102,6 @@ public int read(long timeout, boolean isPeek) throws IOException {
98102
this.attributes.setControlChar(ControlChar.VKILL, (char) 21);
99103
this.attributes.setControlChar(ControlChar.VLNEXT, (char) 22);
100104
this.size = new Size();
101-
this.systemStream = systemStream;
102105
parseInfoCmp();
103106
}
104107

@@ -140,7 +143,7 @@ public void setSize(Size sz) {
140143

141144
@Override
142145
public TerminalProvider getProvider() {
143-
return null;
146+
return provider;
144147
}
145148

146149
@Override
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
/*
2+
* Copyright (c) 2023, the original author(s).
3+
*
4+
* This software is distributable under the BSD license. See the terms of the
5+
* BSD license in the documentation provided with this software.
6+
*
7+
* https://opensource.org/licenses/BSD-3-Clause
8+
*/
9+
package org.jline.terminal.impl;
10+
11+
import java.io.FileDescriptor;
12+
import java.io.FileInputStream;
13+
import java.io.FileOutputStream;
14+
import java.io.IOException;
15+
import java.io.InputStream;
16+
import java.io.OutputStream;
17+
import java.nio.charset.Charset;
18+
19+
import org.jline.terminal.Attributes;
20+
import org.jline.terminal.Size;
21+
import org.jline.terminal.Terminal;
22+
import org.jline.terminal.TerminalBuilder;
23+
import org.jline.terminal.spi.SystemStream;
24+
import org.jline.terminal.spi.TerminalProvider;
25+
26+
public class DumbTerminalProvider implements TerminalProvider {
27+
28+
@Override
29+
public String name() {
30+
return TerminalBuilder.PROP_PROVIDER_DUMB;
31+
}
32+
33+
@Override
34+
public Terminal sysTerminal(
35+
String name,
36+
String type,
37+
boolean ansiPassThrough,
38+
Charset encoding,
39+
boolean nativeSignals,
40+
Terminal.SignalHandler signalHandler,
41+
boolean paused,
42+
SystemStream systemStream)
43+
throws IOException {
44+
return new DumbTerminal(
45+
this,
46+
systemStream,
47+
name,
48+
type,
49+
new FileInputStream(FileDescriptor.in),
50+
new FileOutputStream(systemStream == SystemStream.Error ? FileDescriptor.err : FileDescriptor.out),
51+
encoding,
52+
signalHandler);
53+
}
54+
55+
@Override
56+
public Terminal newTerminal(
57+
String name,
58+
String type,
59+
InputStream masterInput,
60+
OutputStream masterOutput,
61+
Charset encoding,
62+
Terminal.SignalHandler signalHandler,
63+
boolean paused,
64+
Attributes attributes,
65+
Size size)
66+
throws IOException {
67+
throw new UnsupportedOperationException();
68+
}
69+
70+
@Override
71+
public boolean isSystemStream(SystemStream stream) {
72+
return false;
73+
}
74+
75+
@Override
76+
public String systemStreamName(SystemStream stream) {
77+
return null;
78+
}
79+
80+
@Override
81+
public int systemStreamWidth(SystemStream stream) {
82+
return 0;
83+
}
84+
}

‎terminal/src/main/java/org/jline/terminal/impl/exec/ExecTerminalProvider.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import org.jline.terminal.Attributes;
2222
import org.jline.terminal.Size;
2323
import org.jline.terminal.Terminal;
24+
import org.jline.terminal.TerminalBuilder;
2425
import org.jline.terminal.impl.ExternalTerminal;
2526
import org.jline.terminal.impl.PosixSysTerminal;
2627
import org.jline.terminal.spi.Pty;
@@ -40,7 +41,7 @@ public class ExecTerminalProvider implements TerminalProvider {
4041
private static boolean warned;
4142

4243
public String name() {
43-
return "exec";
44+
return TerminalBuilder.PROP_PROVIDER_EXEC;
4445
}
4546

4647
public Pty current(SystemStream systemStream) throws IOException {

0 commit comments

Comments
 (0)
Please sign in to comment.