diff --git a/.gitignore b/.gitignore index 49085bd72..02340f222 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ target .settings/ .idea build.rc +.vscode diff --git a/builtins/src/main/java/org/jline/builtins/Completers.java b/builtins/src/main/java/org/jline/builtins/Completers.java index 2b760ceed..22473d3fa 100644 --- a/builtins/src/main/java/org/jline/builtins/Completers.java +++ b/builtins/src/main/java/org/jline/builtins/Completers.java @@ -257,11 +257,10 @@ protected Path getUserDir() { /** * A file name completer takes the buffer and issues a list of * potential completions. - *
+ ** This completer tries to behave as similar as possible to * bash's file name completion (using GNU readline) * with the following exceptions: - *
*null
if the end of
* stream has been reached
*/
diff --git a/reader/src/main/java/org/jline/reader/Candidate.java b/reader/src/main/java/org/jline/reader/Candidate.java
index ac2b358e7..7fd45b6c8 100644
--- a/reader/src/main/java/org/jline/reader/Candidate.java
+++ b/reader/src/main/java/org/jline/reader/Candidate.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002-2016, the original author or authors.
+ * Copyright (c) 2002-2018, the original author or authors.
*
* This software is distributable under the BSD license. See the terms of the
* BSD license in the documentation provided with this software.
@@ -36,6 +36,14 @@ public Candidate(String value) {
/**
* Constructs a new Candidate.
+ *
+ * @param value the value
+ * @param displ the display string
+ * @param group the group
+ * @param descr the description
+ * @param suffix the suffix
+ * @param key the key
+ * @param complete the complete flag
*/
public Candidate(String value, String displ, String group, String descr, String suffix, String key, boolean complete) {
Objects.requireNonNull(value);
@@ -51,6 +59,7 @@ public Candidate(String value, String displ, String group, String descr, String
/**
* The value that will be used for the actual completion.
* This string should not contain ANSI sequences.
+ * @return the value
*/
public String value() {
return value;
@@ -59,6 +68,7 @@ public String value() {
/**
* The string that will be displayed to the user.
* This string may contain ANSI sequences.
+ * @return the display string
*/
public String displ() {
return displ;
@@ -68,6 +78,7 @@ public String displ() {
* The group name for this candidate.
* Candidates can be grouped together and this string is used
* as a key for the group and displayed to the user.
+ * @return the group
*
* @see LineReader.Option#GROUP
* @see LineReader.Option#AUTO_GROUP
@@ -80,6 +91,7 @@ public String group() {
* Description of this candidate, usually a small help message
* to understand the meaning of this candidate.
* This string may contain ANSI sequences.
+ * @return the description
*/
public String descr() {
return descr;
@@ -90,6 +102,7 @@ public String descr() {
* However, if the next character entered does not match,
* the suffix will be automatically removed.
* This string should not contain ANSI sequences.
+ * @return the suffix
*
* @see LineReader.Option#AUTO_REMOVE_SLASH
* @see LineReader#REMOVE_SUFFIX_CHARS
@@ -102,6 +115,7 @@ public String suffix() {
* Candidates which have the same key will be merged together.
* For example, if a command has multiple aliases, they can be merged
* if they are using the same key.
+ * @return the key
*/
public String key() {
return key;
@@ -114,6 +128,7 @@ public String key() {
* This can be the case when completing folders for example.
* If the candidate is complete and is selected, a space
* separator will be added.
+ * @return the completion flag
*/
public boolean complete() {
return complete;
diff --git a/reader/src/main/java/org/jline/reader/Completer.java b/reader/src/main/java/org/jline/reader/Completer.java
index 01ada8e3a..bbbeadc2e 100644
--- a/reader/src/main/java/org/jline/reader/Completer.java
+++ b/reader/src/main/java/org/jline/reader/Completer.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002-2016, the original author or authors.
+ * Copyright (c) 2002-2018, the original author or authors.
*
* This software is distributable under the BSD license. See the terms of the
* BSD license in the documentation provided with this software.
@@ -30,6 +30,7 @@ public interface Completer
* for the typo matcher to work, all possible candidates for the word being
* completed should be returned.
*
+ * @param reader The line reader
* @param line The parsed command line
* @param candidates The {@link List} of candidates to populate
*/
diff --git a/reader/src/main/java/org/jline/reader/History.java b/reader/src/main/java/org/jline/reader/History.java
index 83890472b..4556828dd 100644
--- a/reader/src/main/java/org/jline/reader/History.java
+++ b/reader/src/main/java/org/jline/reader/History.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002-2016, the original author or authors.
+ * Copyright (c) 2002-2018, the original author or authors.
*
* This software is distributable under the BSD license. See the terms of the
* BSD license in the documentation provided with this software.
@@ -25,21 +25,25 @@ public interface History extends Iterable* It is traditional for an interactive console-based program * to print a short prompt string to signal that the user is expected * to type a command. JLine supports 3 kinds of prompt string: @@ -33,13 +32,14 @@ * All of these are specified with prompt templates, * which are similar to {@code printf} format strings, * using the character {@code '%'} to indicate special functionality. - *
+ *
* The pattern may include ANSI escapes. * It may include these template markers: *%{
%}
%{
...%}
pair is printed as
+ * %{
%}
%{
...%}
pair is printed as
* part of a prompt, but not interpreted by JLine
* (except that {@code '%'}-escapes are processed). The text is assumed
* to take zero columns (not move the cursor). If it changes the style,
@@ -66,7 +65,6 @@
* do not need to be within a %{
...%}
pair
* (though can be) since JLine knows how to deal with them. However,
* these delimiters are needed for unusual non-standard escape sequences.
- * <tab>
key at the beginning of the line, insert a tabulation
* instead of completing. This is mainly useful when {@link #BRACKETED_PASTE} is
* disabled, so that copy/paste of indented text does not trigger completion.
*/
@@ -423,7 +421,11 @@ enum RegionType {
/**
* Read the next line and return the contents of the buffer.
*
- * Equivalent to readLine(null, null, null)
+ * Equivalent to readLine(null, null, null)
.
+ *
+ * @return the line read
+ * @throws UserInterruptException If the call was interrupted by the user.
+ * @throws EndOfFileException If the end of the input stream was reached.
*/
String readLine() throws UserInterruptException, EndOfFileException;
@@ -432,6 +434,11 @@ enum RegionType {
* characters will be echoed. If 0, then no characters will be echoed.
*
* Equivalent to readLine(null, mask, null)
+ *
+ * @param mask The mask character, null
or 0
.
+ * @return A line that is read from the terminal, can never be null.
+ * @throws UserInterruptException If the call was interrupted by the user.
+ * @throws EndOfFileException If the end of the input stream was reached.
*/
String readLine(Character mask) throws UserInterruptException, EndOfFileException;
@@ -440,6 +447,11 @@ enum RegionType {
* If null, then the default prompt will be used.
*
* Equivalent to readLine(prompt, null, null)
+ *
+ * @param prompt The prompt to issue to the terminal, may be null.
+ * @return A line that is read from the terminal, can never be null.
+ * @throws UserInterruptException If the call was interrupted by the user.
+ * @throws EndOfFileException If the end of the input stream was reached.
*/
String readLine(String prompt) throws UserInterruptException, EndOfFileException;
@@ -448,6 +460,12 @@ enum RegionType {
* (without any trailing newlines).
*
* Equivalent to readLine(prompt, mask, null)
+ *
+ * @param prompt The prompt to issue to the terminal, may be null.
+ * @param mask The mask character, null
or 0
.
+ * @return A line that is read from the terminal, can never be null.
+ * @throws UserInterruptException If the call was interrupted by the user.
+ * @throws EndOfFileException If the end of the input stream was reached.
*/
String readLine(String prompt, Character mask) throws UserInterruptException, EndOfFileException;
@@ -455,14 +473,16 @@ enum RegionType {
* Read a line from the in {@link InputStream}, and return the line
* (without any trailing newlines).
*
+ * Equivalent to readLine(prompt, null, mask, buffer)
+ *
* @param prompt The prompt to issue to the terminal, may be null.
* This is a template, with optional {@code '%'} escapes, as
* described in the class header.
* @param mask The character mask, may be null.
* @param buffer The default value presented to the user to edit, may be null.
* @return A line that is read from the terminal, can never be null.
- *
- * Equivalent to readLine(prompt, null, mask, buffer)
+ * @throws UserInterruptException If the call was interrupted by the user.
+ * @throws EndOfFileException If the end of the input stream was reached.
*/
String readLine(String prompt, Character mask, String buffer) throws UserInterruptException, EndOfFileException;
@@ -483,6 +503,8 @@ enum RegionType {
* @throws UserInterruptException if readLine was interrupted (using Ctrl-C for example)
* @throws EndOfFileException if an EOF has been found (using Ctrl-D for example)
* @throws java.io.IOError in case of other i/o errors
+ * @throws UserInterruptException If the call was interrupted by the user.
+ * @throws EndOfFileException If the end of the input stream was reached.
*/
String readLine(String prompt, String rightPrompt, Character mask, String buffer) throws UserInterruptException, EndOfFileException;
@@ -503,6 +525,8 @@ enum RegionType {
* @throws UserInterruptException if readLine was interrupted (using Ctrl-C for example)
* @throws EndOfFileException if an EOF has been found (using Ctrl-D for example)
* @throws java.io.IOError in case of other i/o errors
+ * @throws UserInterruptException If the call was interrupted by the user.
+ * @throws EndOfFileException If the end of the input stream was reached.
*/
String readLine(String prompt, String rightPrompt, MaskingCallback maskingCallback, String buffer) throws UserInterruptException, EndOfFileException;
diff --git a/reader/src/main/java/org/jline/reader/MaskingCallback.java b/reader/src/main/java/org/jline/reader/MaskingCallback.java
index 3218f7d99..0d5f1269e 100644
--- a/reader/src/main/java/org/jline/reader/MaskingCallback.java
+++ b/reader/src/main/java/org/jline/reader/MaskingCallback.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002-2017, the original author or authors.
+ * Copyright (c) 2002-2018, the original author or authors.
*
* This software is distributable under the BSD license. See the terms of the
* BSD license in the documentation provided with this software.
@@ -16,11 +16,19 @@ public interface MaskingCallback {
/**
* Transforms the line before it is displayed so that
* some parts can be hidden.
+ *
+ * @param line the current line being edited
+ * @return the modified line to display
*/
String display(String line);
/**
* Transforms the line before storing in the history.
+ * If the return value is empty or null, it will not be saved
+ * in the history.
+ *
+ * @param line the line to be added to history
+ * @return the modified line
*/
String history(String line);
diff --git a/reader/src/main/java/org/jline/reader/ParsedLine.java b/reader/src/main/java/org/jline/reader/ParsedLine.java
index d3d90eba3..a46fea420 100644
--- a/reader/src/main/java/org/jline/reader/ParsedLine.java
+++ b/reader/src/main/java/org/jline/reader/ParsedLine.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002-2016, the original author or authors.
+ * Copyright (c) 2002-2018, the original author or authors.
*
* This software is distributable under the BSD license. See the terms of the
* BSD license in the documentation provided with this software.
@@ -21,27 +21,37 @@ public interface ParsedLine {
String word();
/**
- * The cursor position within the current word
+ * The cursor position within the current word.
+ *
+ * @return the cursor position within the current word
*/
int wordCursor();
/**
- * The index of the current word in the list of words
+ * The index of the current word in the list of words.
+ *
+ * @return the index of the current word in the list of words
*/
int wordIndex();
/**
- * The list of words
+ * The list of words.
+ *
+ * @return the list of words
*/
Listnull
or 0
.
+ * @return A line that is read from the terminal, can never be null.
*/
public String readLine(Character mask) throws UserInterruptException, EndOfFileException {
return readLine(null, null, mask, null);
}
+ /**
+ * Read a line from the in {@link InputStream}, and return the line
+ * (without any trailing newlines).
+ *
+ * @param prompt The prompt to issue to the terminal, may be null.
+ * @return A line that is read from the terminal, can never be null.
+ */
public String readLine(String prompt) throws UserInterruptException, EndOfFileException {
return readLine(prompt, null, (MaskingCallback) null, null);
}
@@ -390,8 +406,8 @@ public String readLine(String prompt) throws UserInterruptException, EndOfFileEx
* (without any trailing newlines).
*
* @param prompt The prompt to issue to the terminal, may be null.
- * @return A line that is read from the terminal, or null if there was null input (e.g., CTRL-D
- * was pressed).
+ * @param mask The mask character, null
or 0
.
+ * @return A line that is read from the terminal, can never be null.
*/
public String readLine(String prompt, Character mask) throws UserInterruptException, EndOfFileException {
return readLine(prompt, null, mask, null);
@@ -402,8 +418,9 @@ public String readLine(String prompt, Character mask) throws UserInterruptExcept
* (without any trailing newlines).
*
* @param prompt The prompt to issue to the terminal, may be null.
- * @return A line that is read from the terminal, or null if there was null input (e.g., CTRL-D
- * was pressed).
+ * @param mask The mask character, null
or 0
.
+ * @param buffer A string that will be set for editing.
+ * @return A line that is read from the terminal, can never be null.
*/
public String readLine(String prompt, Character mask, String buffer) throws UserInterruptException, EndOfFileException {
return readLine(prompt, null, mask, buffer);
@@ -413,14 +430,26 @@ public String readLine(String prompt, Character mask, String buffer) throws User
* Read a line from the in {@link InputStream}, and return the line
* (without any trailing newlines).
*
- * @param prompt The prompt to issue to the terminal, may be null.
- * @return A line that is read from the terminal, or null if there was null input (e.g., CTRL-D
- * was pressed).
+ * @param prompt The prompt to issue to the terminal, may be null.
+ * @param rightPrompt The prompt to issue to the right of the terminal, may be null.
+ * @param mask The mask character, null
or 0
.
+ * @param buffer A string that will be set for editing.
+ * @return A line that is read from the terminal, can never be null.
*/
public String readLine(String prompt, String rightPrompt, Character mask, String buffer) throws UserInterruptException, EndOfFileException {
return readLine(prompt, rightPrompt, mask != null ? new SimpleMaskingCallback(mask) : null, buffer);
}
+ /**
+ * Read a line from the in {@link InputStream}, and return the line
+ * (without any trailing newlines).
+ *
+ * @param prompt The prompt to issue to the terminal, may be null.
+ * @param rightPrompt The prompt to issue to the right of the terminal, may be null.
+ * @param maskingCallback The callback used to mask parts of the edited line.
+ * @param buffer A string that will be set for editing.
+ * @return A line that is read from the terminal, can never be null.
+ */
public String readLine(String prompt, String rightPrompt, MaskingCallback maskingCallback, String buffer) throws UserInterruptException, EndOfFileException {
// prompt may be null
// maskingCallback may be null
@@ -599,7 +628,7 @@ public String readLine(String prompt, String rightPrompt, MaskingCallback maskin
}
}
- /** Make sure we position the cursor on column 0 */
+ /* Make sure we position the cursor on column 0 */
protected boolean freshLine() {
boolean wrapAtEol = terminal.getBooleanCapability(Capability.auto_right_margin);
boolean delayedWrapAtEol = wrapAtEol && terminal.getBooleanCapability(Capability.eat_newline_glitch);
@@ -657,6 +686,7 @@ public void callWidget(String name) {
/**
* Clear the line and redraw it.
+ * @return true
*/
public boolean redrawLine() {
display.reset();
@@ -665,14 +695,16 @@ public boolean redrawLine() {
/**
* Write out the specified string to the buffer and the output stream.
+ * @param str the char sequence to write in the buffer
*/
public void putString(final CharSequence str) {
buf.write(str, overTyping);
}
/**
- * Flush the terminal output stream. This is important for printout out single characters (like a buf.backspace or
- * keyboard) that we want the terminal to handle immediately.
+ * Flush the terminal output stream. This is important for printout out single
+ * characters (like a buf.backspace or keyboard) that we want the terminal to
+ * handle immediately.
*/
public void flush() {
terminal.flush();
@@ -1770,6 +1802,8 @@ private boolean callNeg(Widget widget) {
/**
* Implements vi search ("/" or "?").
+ *
+ * @return true
if the search was successful
*/
protected boolean viHistorySearchForward() {
searchDir = 1;
@@ -1937,7 +1971,7 @@ protected boolean undefinedKey() {
/**
* Implements vi style bracket matching ("%" command). The matching
* bracket for the current bracket type that you are sitting on is matched.
- * The logic works like so:
+ *
* @return true if it worked, false if the cursor was not on a bracket
* character or if there was no matching bracket.
*/
@@ -2007,6 +2041,7 @@ protected int getBracketType (int ch) {
* Performs character transpose. The character prior to the cursor and the
* character under the cursor are swapped and the cursor is advanced one.
* Do not cross line breaks.
+ * @return true
*/
protected boolean transposeChars() {
int lstart = buf.cursor() - 1;
@@ -2953,6 +2988,7 @@ protected boolean deleteChar() {
/**
* Deletes the previous character from the cursor position
+ * @return true
if it succeeded, false
otherwise
*/
protected boolean viBackwardDeleteChar() {
for (int i = 0; i < count; i++) {
@@ -2966,6 +3002,7 @@ protected boolean viBackwardDeleteChar() {
/**
* Deletes the character you are sitting on and sucks the rest of
* the line in from the right.
+ * @return true
if it succeeded, false
otherwise
*/
protected boolean viDeleteChar() {
for (int i = 0; i < count; i++) {
@@ -2980,6 +3017,7 @@ protected boolean viDeleteChar() {
* Switches the case of the current character from upper to lower
* or lower to upper as necessary and advances the cursor one
* position to the right.
+ * @return true
if it succeeded, false
otherwise
*/
protected boolean viSwapCase() {
for (int i = 0; i < count; i++) {
@@ -2998,6 +3036,7 @@ protected boolean viSwapCase() {
/**
* Implements the vi change character command (in move-mode "r"
* followed by the character to change to).
+ * @return true
if it succeeded, false
otherwise
*/
protected boolean viReplaceChars() {
int c = readCharacter();
@@ -3034,7 +3073,7 @@ protected boolean viDeleteTo(int startPos, int endPos) {
* @param isChange If true, then the delete is part of a change operationg
* (e.g. "c$" is change-to-end-of line, so we first must delete to end
* of line to start the change
- * @return true if it succeeded, false otherwise
+ * @return true
if it succeeded, false
otherwise
*/
protected boolean doViDeleteOrChange(int startPos, int endPos, boolean isChange) {
if (startPos == endPos) {
@@ -3068,7 +3107,7 @@ protected boolean doViDeleteOrChange(int startPos, int endPos, boolean isChange)
*
* @param startPos The starting position from which to yank
* @param endPos The ending position to which to yank
- * @return true if the yank succeeded
+ * @return true
if the yank succeeded
*/
protected boolean viYankTo(int startPos, int endPos) {
int cursorPos = startPos;
@@ -3110,6 +3149,7 @@ protected boolean viOpenLineBelow() {
/**
* Pasts the yank buffer to the right of the current cursor position
* and moves the cursor to the end of the pasted region.
+ * @return true
*/
protected boolean viPutAfter() {
if (yankBuffer.indexOf('\n') >= 0) {
@@ -3524,7 +3564,7 @@ private void concat(Listtrue
to go to the next, false
for the previous.
+ * @return true
if successful, false
otherwise
*/
protected boolean moveHistory(final boolean next) {
if (!buf.toString().equals(history.current())) {
@@ -4836,7 +4878,8 @@ else if (!next && !history.previous()) {
//
/**
- * Raw output printing
+ * Raw output printing.
+ * @param str the string to print to the terminal
*/
void print(String str) {
terminal.writer().write(str);
@@ -5124,6 +5167,7 @@ public boolean focusOut() {
/**
* Clean the used display
+ * @return true
*/
public boolean clear() {
display.update(Collections.emptyList(), 0);
@@ -5132,6 +5176,7 @@ public boolean clear() {
/**
* Clear the screen by issuing the ANSI "clear screen" code.
+ * @return true
*/
public boolean clearScreen() {
if (terminal.puts(Capability.clear_screen)) {
@@ -5144,6 +5189,7 @@ public boolean clearScreen() {
/**
* Issue an audible keyboard bell.
+ * @return true
*/
public boolean beep() {
BellType bell_preference = BellType.AUDIBLE;
diff --git a/reader/src/main/java/org/jline/reader/impl/completer/ArgumentCompleter.java b/reader/src/main/java/org/jline/reader/impl/completer/ArgumentCompleter.java
index 3a9b9cf72..c2217ec9b 100644
--- a/reader/src/main/java/org/jline/reader/impl/completer/ArgumentCompleter.java
+++ b/reader/src/main/java/org/jline/reader/impl/completer/ArgumentCompleter.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002-2016, the original author or authors.
+ * Copyright (c) 2002-2018, the original author or authors.
*
* This software is distributable under the BSD license. See the terms of the
* BSD license in the documentation provided with this software.
@@ -57,6 +57,8 @@ public ArgumentCompleter(final Completer... completers) {
/**
* If true, a completion at argument index N will only succeed
* if all the completions from 0-(N-1) also succeed.
+ *
+ * @param strict the strict flag
*/
public void setStrict(final boolean strict) {
this.strict = strict;
@@ -74,6 +76,8 @@ public boolean isStrict() {
}
/**
+ * Returns the list of completers used inside this ArgumentCompleter
.
+ * @return The list of completers.
* @since 2.3
*/
public List* This completer tries to behave as similar as possible to * bash's file name completion (using GNU readline) * with the following exceptions: - *
*org.jline.builtins.Completers$FileNameCompleter
instead
*/
@Deprecated
public class FileNameCompleter implements Completer
diff --git a/reader/src/main/java/org/jline/reader/impl/history/DefaultHistory.java b/reader/src/main/java/org/jline/reader/impl/history/DefaultHistory.java
index 6cea4644b..c04b48f54 100644
--- a/reader/src/main/java/org/jline/reader/impl/history/DefaultHistory.java
+++ b/reader/src/main/java/org/jline/reader/impl/history/DefaultHistory.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002-2016, the original author or authors.
+ * Copyright (c) 2002-2018, the original author or authors.
*
* This software is distributable under the BSD license. See the terms of the
* BSD license in the documentation provided with this software.
@@ -22,9 +22,10 @@
/**
* {@link History} using a file for persistent backing.
- *
+ * * Implementers should install shutdown hook to call {@link DefaultHistory#save} * to save history to disk. + *
*/ public class DefaultHistory implements History { diff --git a/remote-telnet/src/main/java/org/jline/builtins/telnet/Connection.java b/remote-telnet/src/main/java/org/jline/builtins/telnet/Connection.java index 788f9876c..522e570bc 100644 --- a/remote-telnet/src/main/java/org/jline/builtins/telnet/Connection.java +++ b/remote-telnet/src/main/java/org/jline/builtins/telnet/Connection.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002-2017, the original author or authors. + * Copyright (c) 2002-2018, the original author or authors. * * This software is distributable under the BSD license. See the terms of the * BSD license in the documentation provided with this software. @@ -46,18 +46,20 @@ import java.util.logging.Logger; /** - * Class that implements a connection with this telnet daemon.
* It is derived from java.lang.Thread, which reflects the architecture
* constraint of one thread per connection. This might seem a waste of
* resources, but as a matter of fact sharing threads would require a
* far more complex imlementation, due to the fact that telnet is not a
* stateless protocol (i.e. alive throughout a session of multiple requests
- * and responses).
+ * and responses).
+ *
* Each Connection instance is created by the listeners ConnectionManager
* instance, making it part of a threadgroup and passing in an associated
* ConnectionData instance, that holds vital information about the connection.
- * Be sure to take a look at their documention.
- *
* Once the thread has started and is running, it will get a login
* shell instance from the ShellManager and run passing its own reference.
*
diff --git a/remote-telnet/src/main/java/org/jline/builtins/telnet/ConnectionData.java b/remote-telnet/src/main/java/org/jline/builtins/telnet/ConnectionData.java
index b955bab67..cfc0569d6 100644
--- a/remote-telnet/src/main/java/org/jline/builtins/telnet/ConnectionData.java
+++ b/remote-telnet/src/main/java/org/jline/builtins/telnet/ConnectionData.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002-2017, the original author or authors.
+ * Copyright (c) 2002-2018, the original author or authors.
*
* This software is distributable under the BSD license. See the terms of the
* BSD license in the documentation provided with this software.
@@ -80,6 +80,7 @@ public class ConnectionData {
* information about a connection.
*
* @param sock Socket of the inbound connection.
+ * @param cm the connection manager
*/
public ConnectionData(Socket sock, ConnectionManager cm) {
socket = sock;
@@ -314,10 +315,10 @@ public String getNegotiatedTerminalType() {
/**
* Sets the terminal type that has been negotiated
* between telnet client and telnet server, in form of
- * a String.
- *
* This method should not be called explicitly
- * by the application (i.e. the its here for the io subsystem).
+ * by the application (i.e. the its here for the io subsystem).
*
* @param termtype the negotiated terminal type as String.
*/
diff --git a/remote-telnet/src/main/java/org/jline/builtins/telnet/ConnectionEvent.java b/remote-telnet/src/main/java/org/jline/builtins/telnet/ConnectionEvent.java
index 65e07ff9f..ca089abd7 100644
--- a/remote-telnet/src/main/java/org/jline/builtins/telnet/ConnectionEvent.java
+++ b/remote-telnet/src/main/java/org/jline/builtins/telnet/ConnectionEvent.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002-2017, the original author or authors.
+ * Copyright (c) 2002-2018, the original author or authors.
*
* This software is distributable under the BSD license. See the terms of the
* BSD license in the documentation provided with this software.
@@ -104,9 +104,10 @@ public enum Type {
CONNECTION_TIMEDOUT,
/**
- * Defines the connection requested logout event type.
+ * Defines the connection requested logout event type.
+ *
* It occurs if a connection requested disgraceful logout by
- * sending a
* Although supposed to work full-duplex, we only process the telnet protocol
* layer communication in case of reading requests from the higher levels.
* This is the only way to meet the one thread per connection requirement.
*
* The output is done via byte-oriented streams, definately suitable for the
* telnet protocol. The format of the output is UTF-8 (Unicode), which is a
* standard and supported by any telnet client, including the ones included
@@ -199,7 +199,7 @@ public class TelnetIO {
protected static final int LOGOUT = 18;
/**
* Telnet Option: Linemode
- *
* The infamous line mode option.
*/
protected static final int LINEMODE = 34;
@@ -334,6 +334,7 @@ public void setConnection(Connection con) {
* alone,but CRLF(\r\n), which is a rule of the telnet protocol.
*
* @param b Byte to be written.
+ * @throws IOException if an error occurs
*/
public void write(byte b) throws IOException {
//ensure CRLF(\r\n) is written for LF(\n) to adhere
@@ -355,6 +356,7 @@ public void write(byte b) throws IOException {
* Method to output an int.
*
* @param i Integer to be written.
+ * @throws IOException if an error occurs
*/
public void write(int i)
throws IOException {
@@ -365,6 +367,7 @@ public void write(int i)
* Method to write an array of bytes.
*
* @param sequence byte[] to be written.
+ * @throws IOException if an error occurs
*/
public void write(byte[] sequence) throws IOException {
for (byte b : sequence) {
@@ -376,6 +379,7 @@ public void write(byte[] sequence) throws IOException {
* Method to output an array of int' s.
*
* @param sequence int [] to write
+ * @throws IOException if an error occurs
*/
public void write(int[] sequence) throws IOException {
for (int i : sequence) {
@@ -387,6 +391,7 @@ public void write(int[] sequence) throws IOException {
* Method to write a char.
*
* @param ch char to be written.
+ * @throws IOException if an error occurs
*/
public void write(char ch) throws IOException {
write((byte) ch);
@@ -396,6 +401,7 @@ public void write(char ch) throws IOException {
* Method to output a string.
*
* @param str String to be written.
+ * @throws IOException if an error occurs
*/
public void write(String str) throws IOException {
write(str.getBytes());
@@ -403,6 +409,8 @@ public void write(String str) throws IOException {
/**
* Method to flush all buffered output.
+ *
+ * @throws IOException if an error occurs
*/
public void flush() throws IOException {
out.flush();
@@ -438,6 +446,7 @@ private void rawWrite(int i) throws IOException {
* Invokes the IACHandler upon IAC (Byte=255).
*
* @return int read from stream.
+ * @throws IOException if an error occurs
*/
public int read() throws IOException {
int c = rawread();
@@ -475,13 +484,15 @@ public void closeInput() {
/**
* This method reads an unsigned 16bit Integer from the stream,
* its here for getting the NAWS Data Values for height and width.
+ *
+ * @throws IOException if an error occurs
*/
private int read16int() throws IOException {
int c = in.readUnsignedShort();
return c;
}//read16int
- /**
+ /*
* The following options are options which might be of interest, but are not
* yet implemented or in use.
*/
@@ -491,6 +502,7 @@ private int read16int() throws IOException {
* Telnet protocol layer communication is filtered and processed here.
*
* @return int read from stream.
+ * @throws IOException if an error occurs
*/
private int rawread() throws IOException {
int b = 0;
@@ -505,6 +517,8 @@ private int rawread() throws IOException {
* Checks for the telnet protocol specified CR followed by NULL or LF
* Furthermore there are some more, which helped to solve problems, or might be important
* for future enhancements:<Ctrl>-<D>
key combination.
*/
CONNECTION_LOGOUTREQUEST,
diff --git a/remote-telnet/src/main/java/org/jline/builtins/telnet/ConnectionManager.java b/remote-telnet/src/main/java/org/jline/builtins/telnet/ConnectionManager.java
index 3eb71424e..ca7534ac8 100644
--- a/remote-telnet/src/main/java/org/jline/builtins/telnet/ConnectionManager.java
+++ b/remote-telnet/src/main/java/org/jline/builtins/telnet/ConnectionManager.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002-2017, the original author or authors.
+ * Copyright (c) 2002-2018, the original author or authors.
*
* This software is distributable under the BSD license. See the terms of the
* BSD license in the documentation provided with this software.
@@ -123,8 +123,8 @@ public int openConnectionCount() {
/**
* Returns the {@link Connection} at the given index.
- * @param idx
- * @return
+ * @param idx the index
+ * @return the connection
*/
public Connection getConnection(int idx) {
synchronized (openConnections) {
@@ -136,6 +136,7 @@ public Connection getConnection(int idx) {
* Get all {@link Connection} instances with the given
* InetAddress.
*
+ * @param addr the address
* @return all {@link Connection} instances with the given
* InetAddress.
*/
diff --git a/remote-telnet/src/main/java/org/jline/builtins/telnet/PortListener.java b/remote-telnet/src/main/java/org/jline/builtins/telnet/PortListener.java
index a514036fe..95bb7e296 100644
--- a/remote-telnet/src/main/java/org/jline/builtins/telnet/PortListener.java
+++ b/remote-telnet/src/main/java/org/jline/builtins/telnet/PortListener.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002-2017, the original author or authors.
+ * Copyright (c) 2002-2018, the original author or authors.
*
* This software is distributable under the BSD license. See the terms of the
* BSD license in the documentation provided with this software.
@@ -75,6 +75,7 @@ public class PortListener
/**
* Constructs a PortListener instance.
*
+ * @param name the name
* @param port int that specifies the port number of the server socket.
* @param floodprot that specifies the server socket queue size.
*/
diff --git a/remote-telnet/src/main/java/org/jline/builtins/telnet/TelnetIO.java b/remote-telnet/src/main/java/org/jline/builtins/telnet/TelnetIO.java
index a5751cfef..61b91b068 100644
--- a/remote-telnet/src/main/java/org/jline/builtins/telnet/TelnetIO.java
+++ b/remote-telnet/src/main/java/org/jline/builtins/telnet/TelnetIO.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002-2017, the original author or authors.
+ * Copyright (c) 2002-2018, the original author or authors.
*
* This software is distributable under the BSD license. See the terms of the
* BSD license in the documentation provided with this software.
@@ -52,12 +52,12 @@
* Class that represents the TelnetIO implementation. It contains
* an inner IACHandler class to handle the telnet protocol level
* communication.
- *
+ *
* Subsequently reads for the next byte and forwards
* only a ENTER represented by LF internally.
+ *
+ * @throws IOException if an error occurs
*/
private int stripCRSeq(int input) throws IOException {
if (input == 13) {
@@ -605,12 +619,13 @@ public void setEcho(boolean b) {
*
* 1143 The Q Method of Implementing Option Negotiation
* 1416 Telnet Authentication Option
- *
* After an intense study of the available material (mainly cryptical written RFCs, * a telnet client implementation for the macintosh based upon NCSA telnet, and a server side * implementation called key, a mud-like system completely written in Java) I realized @@ -623,14 +638,12 @@ public void setEcho(boolean b) { * a BBS is intended to be a single process the user is interacting with. *
* To-Do:
* Target class must be annotated with {@link StyleGroup}.
+ *
+ * @param
* Note each row has {@code col+1} different column positions,
* including the right margin.
+ *
* This call is equivalent to:
* true
to wait until the terminal is actually paused
+ * @throws InterruptedException if the call has been interrupted
*/
void pause(boolean wait) throws InterruptedException;
@@ -186,7 +186,7 @@ default int getHeight() {
* As the response is read from the input stream, some
* characters may be read before the cursor position is actually
* read. Those characters can be given back using
- * {@link org.jline.keymap.BindingReader#runMacro(String)}.
+ * org.jline.keymap.BindingReader#runMacro(String)
*
* @param discarded a consumer receiving discarded characters
* @return null
if cursor position reporting
diff --git a/terminal/src/main/java/org/jline/terminal/TerminalBuilder.java b/terminal/src/main/java/org/jline/terminal/TerminalBuilder.java
index bf2bd4d65..41c2d4f24 100644
--- a/terminal/src/main/java/org/jline/terminal/TerminalBuilder.java
+++ b/terminal/src/main/java/org/jline/terminal/TerminalBuilder.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002-2016, the original author or authors.
+ * Copyright (c) 2002-2018, the original author or authors.
*
* This software is distributable under the BSD license. See the terms of the
* BSD license in the documentation provided with this software.
@@ -66,8 +66,13 @@ public final class TerminalBuilder {
* Terminals should be closed properly using the {@link Terminal#close()}
* method in order to restore the original terminal state.
*
+ * builder().build()
+ * false
.
*
+ * @param attributes the attributes to use
+ * @return The builder
* @see #size(Size)
* @see #system(boolean)
*/
@@ -212,6 +223,8 @@ public TerminalBuilder attributes(Attributes attributes) {
* or when {@link #system(boolean)} has been explicitely called with
* false
.
*
+ * @param size the initial size
+ * @return The builder
* @see #attributes(Attributes)
* @see #system(boolean)
*/
@@ -236,7 +249,8 @@ public TerminalBuilder signalHandler(Terminal.SignalHandler signalHandler) {
* 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.
- * @param paused
+ * @param paused the initial paused state
+ * @return The builder
* @see Terminal#pause()
*/
public TerminalBuilder paused(boolean paused) {
diff --git a/terminal/src/main/java/org/jline/terminal/impl/AbstractWindowsTerminal.java b/terminal/src/main/java/org/jline/terminal/impl/AbstractWindowsTerminal.java
index 6cad99af4..5a70170c5 100644
--- a/terminal/src/main/java/org/jline/terminal/impl/AbstractWindowsTerminal.java
+++ b/terminal/src/main/java/org/jline/terminal/impl/AbstractWindowsTerminal.java
@@ -521,6 +521,7 @@ public boolean trackMouse(MouseTracking tracking) {
* Read a single input event from the input buffer and process it.
*
* @return true if new input was generated from the event
+ * @throws IOException if anything wrong happens
*/
protected abstract boolean processConsoleInput() throws IOException;
diff --git a/terminal/src/main/java/org/jline/terminal/impl/LineDisciplineTerminal.java b/terminal/src/main/java/org/jline/terminal/impl/LineDisciplineTerminal.java
index 271d56c7a..1efef78f8 100644
--- a/terminal/src/main/java/org/jline/terminal/impl/LineDisciplineTerminal.java
+++ b/terminal/src/main/java/org/jline/terminal/impl/LineDisciplineTerminal.java
@@ -174,7 +174,7 @@ public void raise(Signal signal) {
* using this method.
*
* @param c the input byte
- * @throws IOException
+ * @throws IOException if anything wrong happens
*/
public void processInputByte(int c) throws IOException {
if (attributes.getLocalFlag(LocalFlag.ISIG)) {
@@ -214,7 +214,7 @@ public void processInputByte(int c) throws IOException {
* All data going to the master should be provided by this method.
*
* @param c the output byte
- * @throws IOException
+ * @throws IOException if anything wrong happens
*/
protected void processOutputByte(int c) throws IOException {
if (attributes.getOutputFlag(OutputFlag.OPOST)) {
diff --git a/terminal/src/main/java/org/jline/utils/AnsiWriter.java b/terminal/src/main/java/org/jline/utils/AnsiWriter.java
index f92c7c794..e5865d5c7 100644
--- a/terminal/src/main/java/org/jline/utils/AnsiWriter.java
+++ b/terminal/src/main/java/org/jline/utils/AnsiWriter.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009-2017 the original author(s).
+ * Copyright (C) 2009-2018 the original author(s).
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -131,7 +131,7 @@ public synchronized void write(int data) throws IOException {
buffer[pos++] = (char) data;
if (!('0' <= data && data <= '9')) {
String strValue = new String(buffer, startOfValue, (pos - 1) - startOfValue);
- Integer value = new Integer(strValue);
+ Integer value = Integer.valueOf(strValue);
options.add(value);
if (data == ';') {
state = LOOKING_FOR_NEXT_ARG;
@@ -173,7 +173,7 @@ public synchronized void write(int data) throws IOException {
buffer[pos++] = (char) data;
if (';' == data) {
String strValue = new String(buffer, startOfValue, (pos - 1) - startOfValue);
- Integer value = new Integer(strValue);
+ Integer value = Integer.valueOf(strValue);
options.add(value);
startOfValue = pos;
state = LOOKING_FOR_OSC_PARAM;
@@ -234,7 +234,7 @@ public synchronized void write(int data) throws IOException {
/**
* Resets all state to continue with regular parsing
* @param skipBuffer if current buffer should be skipped or written to out
- * @throws IOException
+ * @throws IOException if an error occurs
*/
private void reset(boolean skipBuffer) throws IOException {
if (!skipBuffer) {
@@ -262,9 +262,10 @@ private int getNextOptionInt(Iterator
* Full xterm256 color can be specified with: {@code ~
* If for some reason the specification is invalid, then {@link AttributedStyle#DEFAULT} will be used.
+ *
+ * @param spec the specification
+ * @return the style
*/
public AttributedStyle resolve(final String spec) {
requireNonNull(spec);
@@ -129,6 +133,10 @@ public AttributedStyle resolve(final String spec) {
* Resolve the given style specification.
*
* If this resolves to {@link AttributedStyle#DEFAULT} then given default specification is used if non-null.
+ *
+ * @param spec the specification
+ * @param defaultSpec the default specifiaction
+ * @return the style
*/
public AttributedStyle resolve(final String spec, final String defaultSpec) {
requireNonNull(spec);
@@ -146,6 +154,10 @@ public AttributedStyle resolve(final String spec, final String defaultSpec) {
/**
* Apply style specification.
+ *
+ * @param style the style to apply to
+ * @param spec the specification
+ * @return the new style
*/
private AttributedStyle apply(AttributedStyle style, final String spec) {
if (log.isLoggable(Level.FINEST)) {
@@ -185,6 +197,10 @@ private AttributedStyle applyAnsi(final AttributedStyle style, final String spec
/**
* Apply source-referenced named style.
+ *
+ * @param style the style to apply to
+ * @param spec the specification
+ * @return the new style
*/
private AttributedStyle applyReference(final AttributedStyle style, final String spec) {
if (log.isLoggable(Level.FINEST)) {
@@ -207,6 +223,10 @@ private AttributedStyle applyReference(final AttributedStyle style, final String
/**
* Apply default named styles.
+ *
+ * @param style the style to apply to
+ * @param name the named style
+ * @return the new style
*/
private AttributedStyle applyNamed(final AttributedStyle style, final String name) {
if (log.isLoggable(Level.FINEST)) {
@@ -262,7 +282,9 @@ private AttributedStyle applyNamed(final AttributedStyle style, final String nam
/**
* Apply color styles specification.
*
- * @param spec Color specification: {@code