diff options
3 files changed, 33 insertions, 13 deletions
diff --git a/base/src/main/java/bjc/utils/cli/StreamTerminal.java b/base/src/main/java/bjc/utils/cli/StreamTerminal.java index a45a22e..69be8d7 100644 --- a/base/src/main/java/bjc/utils/cli/StreamTerminal.java +++ b/base/src/main/java/bjc/utils/cli/StreamTerminal.java @@ -7,6 +7,12 @@ import java.util.*; import java.util.concurrent.*; import java.util.concurrent.locks.*; +/** + * Implementation of {@link Terminal} using {@link Reader} and {@link Writer} + * + * @author bjcul + * + */ public class StreamTerminal implements Terminal, Runnable { private SortedSet<Long> pendingRequests; private ConcurrentMap<Long, String> pendingReplies; @@ -23,6 +29,12 @@ public class StreamTerminal implements Terminal, Runnable { private long currentRequest = -1; + /** + * Create a new stream terminal. + * + * @param input The input source + * @param output The output source + */ public StreamTerminal(Reader input, Writer output) { this.inputScanner = new Scanner(input); this.output = output; diff --git a/base/src/main/java/bjc/utils/cli/TerminalCodes.java b/base/src/main/java/bjc/utils/cli/TerminalCodes.java index c1d7dfc..7e2206e 100644 --- a/base/src/main/java/bjc/utils/cli/TerminalCodes.java +++ b/base/src/main/java/bjc/utils/cli/TerminalCodes.java @@ -14,14 +14,22 @@ public enum TerminalCodes { // The general idea of the format would be a tab-separated value file, with the // first value being a command, and then the rest being the body of that command. // Would also have the line-continuation feature + /** Alert for starting processing. */ INFO_STARTCOMPROC("IOLPI00001", "STARTING PROCESSING"), + /** Alert for ending processing. */ INFO_ENDCOMPROC("IOLPI00002", "ENDING PROCESSING"), + /** Error for an unknown command */ ERROR_UNRECCOM("IOINE00001", "UNRECOGNIZED COMMAND"), + /** Error for an invalid number format when identifying a reply. */ ERROR_INVREPNO("IOINE00002", "INVALID REPLY NUMBER FORMAT"), + /** Error for specifying an unrecognized reply. */ ERROR_UNKREPNO("IOINE00002", "UNKNOWN REPLY NUMBER"), ; + + /** The code for this error. */ public final String code; + /** The summary message for this error. */ public final String message; private TerminalCodes(String code, String message) { diff --git a/base/src/main/java/bjc/utils/cli/objects/DelimSplitterCLI.java b/base/src/main/java/bjc/utils/cli/objects/DelimSplitterCLI.java index 53d6d1e..ba478f7 100644 --- a/base/src/main/java/bjc/utils/cli/objects/DelimSplitterCLI.java +++ b/base/src/main/java/bjc/utils/cli/objects/DelimSplitterCLI.java @@ -60,24 +60,22 @@ public class DelimSplitterCLI { * Run the tester interface. */ private void runLoop() { - final Scanner scn = new Scanner(System.in); + try (Scanner scn = new Scanner(System.in)) { + System.out.print("Enter a command (blank line to quit): "); + String inp = scn.nextLine().trim(); + System.out.println(); - System.out.print("Enter a command (blank line to quit): "); - String inp = scn.nextLine().trim(); - System.out.println(); + while (!inp.equals("")) { + handleCommand(inp, scn, true); - while (!inp.equals("")) { - handleCommand(inp, scn, true); + System.out.println(); - System.out.println(); + System.out.print("Enter a command (blank line to quit): "); + inp = scn.nextLine(); - System.out.print("Enter a command (blank line to quit): "); - inp = scn.nextLine(); - - System.out.println(); + System.out.println(); + } } - - scn.close(); } /* @@ -221,6 +219,8 @@ public class DelimSplitterCLI { } try (FileInputStream fis = new FileInputStream(pth)) { + @SuppressWarnings("resource") + // Handled by above final Scanner scn = new Scanner(fis); while (scn.hasNextLine()) { |
