From c9bce5d0ad88667eebf0f646fcc2323505ebc4ac Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Mon, 27 Mar 2017 08:38:51 -0400 Subject: Update --- .../java/bjc/utils/examples/cli/FDSExample.java | 33 +++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) (limited to 'BJC-Utils2/src/examples') diff --git a/BJC-Utils2/src/examples/java/bjc/utils/examples/cli/FDSExample.java b/BJC-Utils2/src/examples/java/bjc/utils/examples/cli/FDSExample.java index aab4985..38b9e0c 100644 --- a/BJC-Utils2/src/examples/java/bjc/utils/examples/cli/FDSExample.java +++ b/BJC-Utils2/src/examples/java/bjc/utils/examples/cli/FDSExample.java @@ -1,9 +1,17 @@ package bjc.utils.examples.cli; +import java.io.InputStreamReader; + import bjc.utils.cli.fds.FDS; import bjc.utils.cli.fds.FDSException; import bjc.utils.cli.fds.FDSMode; +import bjc.utils.cli.fds.FDSState; import bjc.utils.cli.fds.SimpleFDSMode; +import bjc.utils.cli.fds.FDSState.InputMode; +import bjc.utils.ioutils.BlockReader; +import bjc.utils.ioutils.PushbackBlockReader; +import bjc.utils.ioutils.SimpleBlockReader; +import bjc.utils.ioutils.TriggeredBlockReader; /** * Simple example for FDS. @@ -12,6 +20,13 @@ import bjc.utils.cli.fds.SimpleFDSMode; * */ public class FDSExample { + private static final class Prompter implements Runnable { + @Override + public void run() { + System.out.print("Enter a command (m to exit): "); + } + } + /** * Main method. * @@ -25,8 +40,24 @@ public class FDSExample { FDSMode testMode = new SimpleFDSMode<>(); TestContext ctx = new TestContext(); + InputStreamReader reader = new InputStreamReader(System.in); + try { - FDS.runFDS(System.in, System.in, System.out, testMode, ctx); + BlockReader input = new SimpleBlockReader("\\R", reader); + + Prompter comPrompter = new Prompter(); + Prompter dataPrompter = new Prompter(); + + BlockReader rawComInput = new TriggeredBlockReader(input, comPrompter); + BlockReader rawDataInput = new TriggeredBlockReader(input, dataPrompter); + + PushbackBlockReader comInput = new PushbackBlockReader(rawComInput); + PushbackBlockReader dataInput = new PushbackBlockReader(rawDataInput); + + FDSState fdsState = new FDSState<>(ctx, InputMode.CHORD, comInput::addBlock, + dataInput::addBlock); + + FDS.runFDS(comInput, dataInput, System.out, testMode, fdsState); } catch (FDSException fex) { fex.printStackTrace(); } -- cgit v1.2.3