Upgrade to latest oparent
[aaf/authz.git] / authz-batch / src / main / java / com / att / authz / helpers / InputIterator.java
1 /*******************************************************************************
2  * Copyright (c) 2016 AT&T Intellectual Property. All rights reserved.
3  *******************************************************************************/
4 package com.att.authz.helpers;
5
6 import java.io.BufferedReader;
7 import java.io.IOException;
8 import java.io.PrintStream;
9 import java.util.Iterator;
10
11 public class InputIterator implements Iterable<String> {
12         private BufferedReader in;
13         private final PrintStream out;
14         private final String prompt, instructions;
15         
16         public InputIterator(BufferedReader in, PrintStream out, String prompt, String instructions) {
17                 this.in = in;
18                 this.out = out;
19                 this.prompt = prompt;
20                 this.instructions = instructions;
21         }
22         
23         @Override
24         public Iterator<String> iterator() {
25                 out.println(instructions);
26                 return new Iterator<String>() {
27                         String input;
28                         @Override
29                         public boolean hasNext() {
30                                 out.append(prompt);
31                                 try {
32                                         input = in.readLine();
33                                 } catch (IOException e) {
34                                         input = null;
35                                         return false;
36                                 }
37                                 return input.length()>0;
38                         }
39
40                         @Override
41                         public String next() {
42                                 return input;
43                         }
44
45                         @Override
46                         public void remove() {
47                         }
48                 };
49         }
50 }
51