View Javadoc
1   package au.gov.amsa.ais;
2   
3   import java.io.InputStream;
4   import java.io.InputStreamReader;
5   import java.nio.charset.Charset;
6   
7   import rx.functions.Func1;
8   import au.gov.amsa.streams.Strings;
9   import au.gov.amsa.util.nmea.NmeaReader;
10  
11  public class NmeaReaderFromInputStream implements NmeaReader {
12  
13  	private static final Func1<String, Boolean> NON_EMPTY = new Func1<String, Boolean>() {
14  		@Override
15  		public Boolean call(String s) {
16  			return s.trim().length() > 0;
17  		}
18  	};
19  
20  	private final InputStream is;
21  
22  	public NmeaReaderFromInputStream(InputStream is) {
23  		this.is = is;
24  	}
25  
26  	@Override
27  	public Iterable<String> read() {
28  		return Strings
29  				.split(Strings.from(new InputStreamReader(is, Charset
30  						.forName("UTF-8"))), "\n").filter(NON_EMPTY)
31  				.toBlocking().toIterable();
32  	}
33  }