/** * @param in reader to use * @param interpolator interpolator instance to use * @param beginToken start token to use * @param endToken end token to use * @param ri The {@link RecursionInterceptor} to use to prevent recursive expressions. * @param supportMultiLineFiltering If multi line filtering is allowed */ private InterpolatorFilterReaderLineEnding( Reader in, Interpolator interpolator, String beginToken, String endToken, RecursionInterceptor ri, boolean supportMultiLineFiltering ) { // wrap our own buffer, so we can use mark/reset safely. super( new BufferedReader( in ) ); this.interpolator = interpolator; this.beginToken = beginToken; this.endToken = endToken; recursionInterceptor = ri; this.supportMultiLineFiltering = supportMultiLineFiltering; calculateMarkLength(); }
int ch = read(); if ( ch == -1 )
boolean inEscape = useEscape && ch == getEscapeString().charAt( 0 ); for ( int i = 0; i < getEscapeString().length(); i++ ) if ( ch != getEscapeString().charAt( i ) || ch == -1 || ( ch == '\n' && !supportMultiLineFiltering ) ) if ( !isPreserveEscapeString() ) replaceIndex = key.length(); return read(); return read();
public Reader getReader( Reader reader ) { StringSearchInterpolator propertiesInterpolator = new StringSearchInterpolator( startExp, endExp ); propertiesInterpolator.addValueSource( valueSource ); propertiesInterpolator.setEscapeString( escapeString ); InterpolatorFilterReaderLineEnding interpolatorFilterReader = new InterpolatorFilterReaderLineEnding( reader, propertiesInterpolator, startExp, endExp, multiLineFiltering ); interpolatorFilterReader.setInterpolateWithPrefixPattern( false ); return interpolatorFilterReader; } } );
/** * Skips characters. This method will block until some characters are available, an I/O error occurs, or the end of * the stream is reached. * * @param n The number of characters to skip * @return the number of characters actually skipped * @throws IOException If an I/O error occurs */ public long skip( long n ) throws IOException { if ( n < 0L ) { throw new IllegalArgumentException( "skip value is negative" ); } for ( long i = 0; i < n; i++ ) { if ( read() == -1 ) { return i; } } return n; }