Package com.bc.ceres.util
Class TemplateReader
- java.lang.Object
-
- java.io.Reader
-
- java.io.FilterReader
-
- com.bc.ceres.util.TemplateReader
-
- All Implemented Interfaces:
Closeable,AutoCloseable,Readable
public class TemplateReader extends FilterReader
A template reader replaces any occurences of${key}or$keyin the underlying stream with the string representations of any non-null value returned by a given resolver for that key.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceTemplateReader.Resolver
-
Field Summary
-
Fields inherited from class java.io.FilterReader
in
-
-
Constructor Summary
Constructors Constructor Description TemplateReader(Reader in, TemplateReader.Resolver resolver)Constructs a template reader for the given reader stream and the given resolver.TemplateReader(Reader in, Map map)Constructs a template reader for the given reader stream and a resolver given by aMap.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Close the stream.chargetKeyIndicator()Gets the key indicator.voidmark(int readAheadLimit)Mark the present position in the stream.booleanmarkSupported()Tell whether this stream supports the mark() operation.intread()Read a single character.intread(char[] cbuf)Read characters into an array.intread(char[] cbuf, int off, int len)Read characters into a portion of an array.intread(CharBuffer target)Attempts to read characters into the specified character buffer.StringreadAll()Reads all content.booleanready()Tell whether this stream is ready to be read.voidreset()Reset the stream.voidsetKeyIndicator(char keyIndicator)Sets the key indicator.longskip(long n)Skip characters.-
Methods inherited from class java.io.Reader
nullReader, transferTo
-
-
-
-
Constructor Detail
-
TemplateReader
public TemplateReader(Reader in, Map map)
Constructs a template reader for the given reader stream and a resolver given by aMap.- Parameters:
in- the underlying readermap- the map to serve as resolver
-
TemplateReader
public TemplateReader(Reader in, TemplateReader.Resolver resolver)
Constructs a template reader for the given reader stream and the given resolver.- Parameters:
in- the underlying readerresolver- the resolver
-
-
Method Detail
-
getKeyIndicator
public char getKeyIndicator()
Gets the key indicator.- Returns:
- the key indicator, defaults to '$'.
-
setKeyIndicator
public void setKeyIndicator(char keyIndicator)
Sets the key indicator.- Parameters:
keyIndicator- the key indicator, must not be a digit, letter or whitespace.
-
readAll
public String readAll() throws IOException
Reads all content.- Returns:
- the content
- Throws:
IOException- if an I/O error occurs
-
read
public int read() throws IOExceptionRead a single character.- Overrides:
readin classFilterReader- Throws:
IOException- If an I/O error occurs
-
read
public int read(char[] cbuf) throws IOExceptionRead characters into an array. This method will block until some input is available, an I/O error occurs, or the end of the stream is reached.- Overrides:
readin classReader- Parameters:
cbuf- Destination buffer- Returns:
- The number of characters read, or -1 if the end of the stream has been reached
- Throws:
IOException- If an I/O error occurs
-
read
public int read(char[] cbuf, int off, int len) throws IOExceptionRead characters into a portion of an array.- Overrides:
readin classFilterReader- Throws:
IOException- If an I/O error occurs
-
read
public int read(CharBuffer target) throws IOException
Attempts to read characters into the specified character buffer. The buffer is used as a repository of characters as-is: the only changes made are the results of a put operation. No flipping or rewinding of the buffer is performed.- Specified by:
readin interfaceReadable- Overrides:
readin classReader- Parameters:
target- the buffer to read characters into- Returns:
- The number of characters added to the buffer, or -1 if this source of characters is at its end
- Throws:
IOException- if an I/O error occursNullPointerException- if target is nullReadOnlyBufferException- if target is a read only buffer
-
skip
public long skip(long n) throws IOExceptionSkip characters.- Overrides:
skipin classFilterReader- Throws:
IOException- If an I/O error occurs
-
ready
public boolean ready() throws IOExceptionTell whether this stream is ready to be read.- Overrides:
readyin classFilterReader- Throws:
IOException- If an I/O error occurs
-
markSupported
public boolean markSupported()
Tell whether this stream supports the mark() operation.- Overrides:
markSupportedin classFilterReader
-
mark
public void mark(int readAheadLimit) throws IOExceptionMark the present position in the stream.- Overrides:
markin classFilterReader- Throws:
IOException- If an I/O error occurs
-
reset
public void reset() throws IOExceptionReset the stream.- Overrides:
resetin classFilterReader- Throws:
IOException- If an I/O error occurs
-
close
public void close() throws IOExceptionClose the stream.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classFilterReader- Throws:
IOException- If an I/O error occurs
-
-