diff options
author | Walter Harley | 2008-09-14 21:29:12 +0000 |
---|---|---|
committer | Walter Harley | 2008-09-14 21:29:12 +0000 |
commit | 521b10019026729ea6f37775e2b59ebaf2f70e3f (patch) | |
tree | 20d543f8de3b2fb4740bd7b5570ac7da562701e3 /org.eclipse.jdt.apt.pluggable.core | |
parent | 7515dcbf0b2425523d6c7872cb12027c7c83661e (diff) | |
download | eclipse.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.java | 19 |
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) |