org.codehaus.plexus.util
Class LineOrientedInterpolatingReader

java.lang.Object
  extended by java.io.Reader
      extended by java.io.FilterReader
          extended by org.codehaus.plexus.util.LineOrientedInterpolatingReader
All Implemented Interfaces:
java.io.Closeable, java.lang.Readable

public class LineOrientedInterpolatingReader
extends java.io.FilterReader

Author:
jdcasey Created on Feb 3, 2005

Field Summary
private static char CARRIAGE_RETURN_CHAR
           
private  java.util.Map context
           
static java.lang.String DEFAULT_END_DELIM
           
static java.lang.String DEFAULT_ESCAPE_SEQ
           
static java.lang.String DEFAULT_START_DELIM
           
private  java.lang.String endDelim
           
private  java.lang.String escapeSeq
           
private  java.lang.String line
           
private  int lineIdx
           
private  int minExpressionSize
           
private static char NEWLINE_CHAR
           
private  java.io.PushbackReader pushbackReader
           
private  Reflector reflector
           
private  java.lang.String startDelim
           
 
Fields inherited from class java.io.FilterReader
in
 
Fields inherited from class java.io.Reader
lock
 
Constructor Summary
LineOrientedInterpolatingReader(java.io.Reader reader, java.util.Map context)
           
LineOrientedInterpolatingReader(java.io.Reader reader, java.util.Map context, java.lang.String startDelim, java.lang.String endDelim)
           
LineOrientedInterpolatingReader(java.io.Reader reader, java.util.Map context, java.lang.String startDelim, java.lang.String endDelim, java.lang.String escapeSeq)
           
 
Method Summary
private  java.util.Map evaluateExpressions(java.util.Set expressions)
           
private  java.lang.String findAndReplaceUnlessEscaped(java.lang.String rawLine, java.lang.String search, java.lang.String replace)
           
private  int findDelimiter(java.lang.String rawLine, java.lang.String delimiter, int lastPos)
           
private  java.util.Set parseForExpressions(java.lang.String rawLine)
           
 int read()
           
 int read(char[] cbuf, int off, int len)
           
private  void readAndInterpolateLine()
           
private  java.lang.String readLine()
           
private  java.lang.String replaceWithInterpolatedValues(java.lang.String rawLine, java.util.Map evaluatedExpressions)
           
 long skip(long n)
           
 
Methods inherited from class java.io.FilterReader
close, mark, markSupported, ready, reset
 
Methods inherited from class java.io.Reader
read, read
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_START_DELIM

public static final java.lang.String DEFAULT_START_DELIM
See Also:
Constant Field Values

DEFAULT_END_DELIM

public static final java.lang.String DEFAULT_END_DELIM
See Also:
Constant Field Values

DEFAULT_ESCAPE_SEQ

public static final java.lang.String DEFAULT_ESCAPE_SEQ
See Also:
Constant Field Values

CARRIAGE_RETURN_CHAR

private static final char CARRIAGE_RETURN_CHAR
See Also:
Constant Field Values

NEWLINE_CHAR

private static final char NEWLINE_CHAR
See Also:
Constant Field Values

pushbackReader

private final java.io.PushbackReader pushbackReader

context

private final java.util.Map context

startDelim

private final java.lang.String startDelim

endDelim

private final java.lang.String endDelim

escapeSeq

private final java.lang.String escapeSeq

minExpressionSize

private final int minExpressionSize

reflector

private final Reflector reflector

lineIdx

private int lineIdx

line

private java.lang.String line
Constructor Detail

LineOrientedInterpolatingReader

public LineOrientedInterpolatingReader(java.io.Reader reader,
                                       java.util.Map context,
                                       java.lang.String startDelim,
                                       java.lang.String endDelim,
                                       java.lang.String escapeSeq)

LineOrientedInterpolatingReader

public LineOrientedInterpolatingReader(java.io.Reader reader,
                                       java.util.Map context,
                                       java.lang.String startDelim,
                                       java.lang.String endDelim)

LineOrientedInterpolatingReader

public LineOrientedInterpolatingReader(java.io.Reader reader,
                                       java.util.Map context)
Method Detail

read

public int read()
         throws java.io.IOException
Overrides:
read in class java.io.FilterReader
Throws:
java.io.IOException

read

public int read(char[] cbuf,
                int off,
                int len)
         throws java.io.IOException
Overrides:
read in class java.io.FilterReader
Throws:
java.io.IOException

skip

public long skip(long n)
          throws java.io.IOException
Overrides:
skip in class java.io.FilterReader
Throws:
java.io.IOException

readAndInterpolateLine

private void readAndInterpolateLine()
                             throws java.io.IOException
Throws:
java.io.IOException

readLine

private java.lang.String readLine()
                           throws java.io.IOException
Throws:
java.io.IOException

replaceWithInterpolatedValues

private java.lang.String replaceWithInterpolatedValues(java.lang.String rawLine,
                                                       java.util.Map evaluatedExpressions)

evaluateExpressions

private java.util.Map evaluateExpressions(java.util.Set expressions)

parseForExpressions

private java.util.Set parseForExpressions(java.lang.String rawLine)

findDelimiter

private int findDelimiter(java.lang.String rawLine,
                          java.lang.String delimiter,
                          int lastPos)

findAndReplaceUnlessEscaped

private java.lang.String findAndReplaceUnlessEscaped(java.lang.String rawLine,
                                                     java.lang.String search,
                                                     java.lang.String replace)