diff --git a/src/main/org/apache/tools/ant/filters/BaseFilterReader.java b/src/main/org/apache/tools/ant/filters/BaseFilterReader.java
index d4ec80dea..25a354b68 100644
--- a/src/main/org/apache/tools/ant/filters/BaseFilterReader.java
+++ b/src/main/org/apache/tools/ant/filters/BaseFilterReader.java
@@ -91,24 +91,27 @@ public abstract class BaseFilterReader
}
/**
- * Create a new filtered reader.
+ * Creates a new filtered reader.
*
- * @param in a Reader object providing the underlying stream.
+ * @param in A Reader object providing the underlying stream.
+ * Must not be null
.
+ *
*/
public BaseFilterReader(final Reader in) {
super(in);
}
/**
- * Read characters into a portion of an array. This method will block
+ * Reads characters into a portion of an array. This method will block
* until some input is available, an I/O error occurs, or the end of the
* stream is reached.
*
- * @param cbuf Destination buffer
- * @param off Offset at which to start storing characters
- * @param len Maximum number of characters to read
+ * @param cbuf Destination buffer to write characters to.
+ * Must not be null
.
+ * @param off Offset at which to start storing characters.
+ * @param len Maximum number of characters to read.
*
- * @return The number of characters read, or -1 if the end of the
+ * @return the number of characters read, or -1 if the end of the
* stream has been reached
*
* @exception IOException If an I/O error occurs
@@ -130,12 +133,12 @@ public abstract class BaseFilterReader
}
/**
- * Skip characters. This method will block until some characters are
+ * 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
+ * @return the number of characters actually skipped
*
* @exception IllegalArgumentException If n
is negative.
* @exception IOException If an I/O error occurs
@@ -154,51 +157,76 @@ public abstract class BaseFilterReader
}
/**
- * Set the initialized status.
+ * Sets the initialized status.
+ *
+ * @param initialized Whether or not the filter is initialized.
*/
protected final void setInitialized(final boolean initialized) {
this.initialized = initialized;
}
/**
- * Get the initialized status.
+ * Returns the initialized status.
+ *
+ * @return whether or not the filter is initialized
*/
protected final boolean getInitialized() {
return initialized;
}
/**
- * Set the project to work with
+ * Sets the project to work with.
+ *
+ * @param project The project this filter is part of.
+ * Should not be null
.
*/
public final void setProject(final Project project) {
this.project = project;
}
/**
- * Get the project
+ * Returns the project this filter is part of.
+ *
+ * @return the project this filter is part of
*/
protected final Project getProject() {
return project;
}
/**
- * Read till EOL
+ * Reads a line of text ending with '\n' (or until the end of the stream).
+ * The returned String retains the '\n'.
+ *
+ * @return the line read, or null
if the end of the stream
+ * has already been reached
+ *
+ * @throws IOException if the underlying reader throws one during reading
*/
protected final String readLine() throws IOException {
int ch = in.read();
- String line = (ch == -1) ? null : "";
+
+ if (ch==-1)
+ return null;
+
+ StringBuffer line = new StringBuffer();
+ line.append ((char)ch);
+
while (ch != -1) {
- line += (char) ch;
+ line.append ((char)ch);
if (ch == '\n') {
break;
}
ch = in.read();
}
- return line;
+ return line.toString();
}
/**
- * Read till EOF
+ * Reads to the end of the stream, returning the contents as a String.
+ *
+ * @return the remaining contents of the reader, as a String
+ *
+ * @throws IOException if the underlying reader throws one during reading
*/
protected final String readFully() throws IOException {
return FileUtils.readFully(in, 8192);