package org.jbehave.eclipse.util; public class IO { /** * End of file, termination character/code. */ public static final int EOF = -1; /** * Carriage Return code. */ public static final byte CR = '\r'; /** * Line Feed code. */ public static final byte LF = '\n'; /** * */ public enum LineSeparator { /** * Line Feed code. */ LineFeed(LF), /** * Carriage Return code. */ CarriageReturn(CR), CRLF(CR,LF); private byte[] bytes; private LineSeparator(byte... bytes) { this.bytes = bytes; } public int length() { return bytes.length; } } public static BidirectionalStream toBidirectionalStream(final CharSequence seq) { return new BidirectionalStream() { private int index; public void unread() { index--; } public int read() { if(index<seq.length()) return seq.charAt(index++); else return IO.EOF; } }; } public static BidirectionalReader toBidirectionalReader(final CharSequence seq) { return new BidirectionalReader(toBidirectionalStream(seq)); } }