samples/delegatingwriter/src/org/apidesign/delegatingwriter/AltBufferedWriter.java
1.1 --- a/samples/delegatingwriter/src/org/apidesign/delegatingwriter/AltBufferedWriter.java Sat Jun 14 10:03:49 2008 +0200
1.2 +++ b/samples/delegatingwriter/src/org/apidesign/delegatingwriter/AltBufferedWriter.java Sat Jun 14 10:04:51 2008 +0200
1.3 @@ -68,7 +68,7 @@
1.4 // BEGIN: writer.delegateout
1.5 // efficient, yet dangerous delegation skipping methods unknown to
1.6 // subclasses that used version 1.4
1.7 - if (shouldBufferAsTheSequenceIsNotTooBig(csq)) {
1.8 + if (csq != null && csq.length() < 1024) {
1.9 write(csq.toString());
1.10 } else {
1.11 flush();
1.12 @@ -103,7 +103,7 @@
1.13 throw new IOException(ex);
1.14 }
1.15
1.16 - if (isOverriden || shouldBufferAsTheSequenceIsNotTooBig(csq)) {
1.17 + if (isOverriden || (csq != null && csq.length() < 1024)) {
1.18 write(csq.toString());
1.19 } else {
1.20 flush();
1.21 @@ -112,28 +112,6 @@
1.22 return this;
1.23 // END: writer.conditionally
1.24 }
1.25 -
1.26 - /** At the end the purpose of BufferedWriter is to buffer writes, this
1.27 - * method is here to decide when it is OK to prefer buffering and when
1.28 - * it is better to delegate directly into the underlaying stream.
1.29 - *
1.30 - * @param csq the seqence to evaluate
1.31 - * @return true if buffering from super class should be used
1.32 - */
1.33 - private static boolean shouldBufferAsTheSequenceIsNotTooBig(CharSequence csq) {
1.34 - if (csq == null) {
1.35 - return false;
1.36 - }
1.37 - // as buffers are usually bigger than 1024, it makes sense to
1.38 - // pay the penalty of converting the sequence to string, but buffering
1.39 - // the write
1.40 - if (csq.length() < 1024) {
1.41 - return true;
1.42 - } else {
1.43 - // otherwise, just directly write down the char sequence
1.44 - return false;
1.45 - }
1.46 - }
1.47
1.48 public enum Behaviour {
1.49 THROW_EXCEPTION,