summaryrefslogtreecommitdiff
path: root/src/src/test/java/jline/example/Example.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/src/test/java/jline/example/Example.java')
-rw-r--r--src/src/test/java/jline/example/Example.java97
1 files changed, 97 insertions, 0 deletions
diff --git a/src/src/test/java/jline/example/Example.java b/src/src/test/java/jline/example/Example.java
new file mode 100644
index 0000000..c019b29
--- /dev/null
+++ b/src/src/test/java/jline/example/Example.java
@@ -0,0 +1,97 @@
+/*
+ * Copyright (c) 2002-2006, Marc Prud'hommeaux. All rights reserved.
+ *
+ * This software is distributable under the BSD license. See the terms of the
+ * BSD license in the documentation provided with this software.
+ */
+package jline.example;
+
+import jline.*;
+
+import java.io.*;
+import java.util.*;
+import java.util.zip.*;
+
+public class Example {
+ public static void usage() {
+ System.out.println("Usage: java " + Example.class.getName()
+ + " [none/simple/files/dictionary [trigger mask]]");
+ System.out.println(" none - no completors");
+ System.out.println(" simple - a simple completor that comples "
+ + "\"foo\", \"bar\", and \"baz\"");
+ System.out
+ .println(" files - a completor that comples " + "file names");
+ System.out.println(" dictionary - a completor that comples "
+ + "english dictionary words");
+ System.out.println(" classes - a completor that comples "
+ + "java class names");
+ System.out
+ .println(" trigger - a special word which causes it to assume "
+ + "the next line is a password");
+ System.out.println(" mask - is the character to print in place of "
+ + "the actual password character");
+ System.out.println("\n E.g - java Example simple su '*'\n"
+ + "will use the simple compleator with 'su' triggering\n"
+ + "the use of '*' as a password mask.");
+ }
+
+ public static void main(String[] args) throws IOException {
+ Character mask = null;
+ String trigger = null;
+
+ ConsoleReader reader = new ConsoleReader();
+ reader.setBellEnabled(false);
+ reader.setDebug(new PrintWriter(new FileWriter("writer.debug", true)));
+
+ if ((args == null) || (args.length == 0)) {
+ usage();
+
+ return;
+ }
+
+ List completors = new LinkedList();
+
+ if (args.length > 0) {
+ if (args[0].equals("none")) {
+ } else if (args[0].equals("files")) {
+ completors.add(new FileNameCompletor());
+ } else if (args[0].equals("classes")) {
+ completors.add(new ClassNameCompletor());
+ } else if (args[0].equals("dictionary")) {
+ completors.add(new SimpleCompletor(new GZIPInputStream(
+ Example.class.getResourceAsStream("english.gz"))));
+ } else if (args[0].equals("simple")) {
+ completors.add(new SimpleCompletor(new String[] { "foo", "bar",
+ "baz" }));
+ } else {
+ usage();
+
+ return;
+ }
+ }
+
+ if (args.length == 3) {
+ mask = new Character(args[2].charAt(0));
+ trigger = args[1];
+ }
+
+ reader.addCompletor(new ArgumentCompletor(completors));
+
+ String line;
+ PrintWriter out = new PrintWriter(System.out);
+
+ while ((line = reader.readLine("prompt> ")) != null) {
+ out.println("======>\"" + line + "\"");
+ out.flush();
+
+ // If we input the special word then we will mask
+ // the next line.
+ if ((trigger != null) && (line.compareTo(trigger) == 0)) {
+ line = reader.readLine("password> ", mask);
+ }
+ if (line.equalsIgnoreCase("quit") || line.equalsIgnoreCase("exit")) {
+ break;
+ }
+ }
+ }
+}