summaryrefslogtreecommitdiff
path: root/BJC-Utils2/src/examples
diff options
context:
space:
mode:
authorbculkin2442 <bjculkin@mix.wvu.edu>2017-03-27 08:38:51 -0400
committerbculkin2442 <bjculkin@mix.wvu.edu>2017-03-27 08:38:51 -0400
commitc9bce5d0ad88667eebf0f646fcc2323505ebc4ac (patch)
treef9c8581791925f8cd97a4902b48f5e58290ae918 /BJC-Utils2/src/examples
parentfaedf1fe8c22e4ccfa375951166bd1a41a4e3b94 (diff)
Update
Diffstat (limited to 'BJC-Utils2/src/examples')
-rw-r--r--BJC-Utils2/src/examples/java/bjc/utils/examples/cli/FDSExample.java33
1 files changed, 32 insertions, 1 deletions
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<TestContext> 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<TestContext> fdsState = new FDSState<>(ctx, InputMode.CHORD, comInput::addBlock,
+ dataInput::addBlock);
+
+ FDS.runFDS(comInput, dataInput, System.out, testMode, fdsState);
} catch (FDSException fex) {
fex.printStackTrace();
}