[AAF-21] Initial code import
[aaf/authz.git] / authz-batch / src / main / java / com / att / authz / helpers / InputIterator.java
diff --git a/authz-batch/src/main/java/com/att/authz/helpers/InputIterator.java b/authz-batch/src/main/java/com/att/authz/helpers/InputIterator.java
new file mode 100644 (file)
index 0000000..02fdc16
--- /dev/null
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2016 AT&T Intellectual Property. All rights reserved.
+ *******************************************************************************/
+package com.att.authz.helpers;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.util.Iterator;
+
+public class InputIterator implements Iterable<String> {
+       private BufferedReader in;
+       private final PrintStream out;
+       private final String prompt, instructions;
+       
+       public InputIterator(BufferedReader in, PrintStream out, String prompt, String instructions) {
+               this.in = in;
+               this.out = out;
+               this.prompt = prompt;
+               this.instructions = instructions;
+       }
+       
+       @Override
+       public Iterator<String> iterator() {
+               out.println(instructions);
+               return new Iterator<String>() {
+                       String input;
+                       @Override
+                       public boolean hasNext() {
+                               out.append(prompt);
+                               try {
+                                       input = in.readLine();
+                               } catch (IOException e) {
+                                       input = null;
+                                       return false;
+                               }
+                               return input.length()>0;
+                       }
+
+                       @Override
+                       public String next() {
+                               return input;
+                       }
+
+                       @Override
+                       public void remove() {
+                       }
+               };
+       }
+}
+