Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWalter Harley2008-09-14 21:29:12 +0000
committerWalter Harley2008-09-14 21:29:12 +0000
commit521b10019026729ea6f37775e2b59ebaf2f70e3f (patch)
tree20d543f8de3b2fb4740bd7b5570ac7da562701e3 /org.eclipse.jdt.apt.pluggable.core
parent7515dcbf0b2425523d6c7872cb12027c7c83661e (diff)
downloadeclipse.jdt.core-521b10019026729ea6f37775e2b59ebaf2f70e3f.tar.gz
eclipse.jdt.core-521b10019026729ea6f37775e2b59ebaf2f70e3f.tar.xz
eclipse.jdt.core-521b10019026729ea6f37775e2b59ebaf2f70e3f.zip
bug 246089: implement FileObject.getCharContent() in IDE
Diffstat (limited to 'org.eclipse.jdt.apt.pluggable.core')
-rw-r--r--org.eclipse.jdt.apt.pluggable.core/src/org/eclipse/jdt/internal/apt/pluggable/core/filer/IdeInputFileObject.java19
1 files changed, 17 insertions, 2 deletions
diff --git a/org.eclipse.jdt.apt.pluggable.core/src/org/eclipse/jdt/internal/apt/pluggable/core/filer/IdeInputFileObject.java b/org.eclipse.jdt.apt.pluggable.core/src/org/eclipse/jdt/internal/apt/pluggable/core/filer/IdeInputFileObject.java
index 599c728bbe..c1693a6541 100644
--- a/org.eclipse.jdt.apt.pluggable.core/src/org/eclipse/jdt/internal/apt/pluggable/core/filer/IdeInputFileObject.java
+++ b/org.eclipse.jdt.apt.pluggable.core/src/org/eclipse/jdt/internal/apt/pluggable/core/filer/IdeInputFileObject.java
@@ -18,6 +18,7 @@ import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.Reader;
+import java.io.StringWriter;
import java.io.Writer;
import java.net.URI;
@@ -51,8 +52,22 @@ public class IdeInputFileObject implements FileObject {
*/
@Override
public CharSequence getCharContent(boolean ignoreEncodingErrors) throws IOException {
- //TODO
- throw new UnsupportedOperationException("Not yet implemented");
+ // Use buffer size at least as big as the default size of the
+ // BufferedReader returned by openReader(), to reduce redundant
+ // copying. See BufferedReader.read1() for details.
+ char[] buffer = new char[8192];
+ StringWriter w = new StringWriter();
+ Reader r = openReader(ignoreEncodingErrors);
+ try {
+ int read = -1;
+ while ((read = r.read(buffer)) != -1) {
+ w.write(buffer, 0, read);
+ }
+ }
+ finally {
+ r.close();
+ }
+ return w.getBuffer();
}
/* (non-Javadoc)

Back to the top