code cleanup, fix for ReplaceInputStream
[nikiroo-utils.git] / src / be / nikiroo / utils / streams / NextableInputStream.java
index b8c3fe8c5baf45b0c8b3adffa5cda11c53b99c79..550aa24f459f2fe0fc1c28fe3efa80f606a59a88 100644 (file)
@@ -2,6 +2,8 @@ package be.nikiroo.utils.streams;
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.UnsupportedEncodingException;
+import java.util.Arrays;
 
 /**
  * This {@link InputStream} can be separated into sub-streams (you can process
@@ -244,11 +246,27 @@ public class NextableInputStream extends BufferedInputStream {
                return true;
        }
 
-       public String DEBUG() {
+       /**
+        * Display a DEBUG {@link String} representation of this object.
+        * <p>
+        * Do <b>not</b> use for release code.
+        */
+       @Override
+       public String toString() {
+               String data = "";
+               if (stop > 0) {
+                       try {
+                               data = new String(Arrays.copyOfRange(buffer, 0, stop), "UTF-8");
+                       } catch (UnsupportedEncodingException e) {
+                       }
+                       if (data.length() > 50) {
+                               data = data.substring(0, 47) + "...";
+                       }
+               }
                String rep = String.format(
-                               "Nextable %s: %d -> %d [eof: %s] [more data: %s]",
+                               "Nextable %s: %d -> %d [eof: %s] [more data: %s]: %s",
                                (stopped ? "stopped" : "running"), start, stop, "" + eof, ""
-                                               + hasMoreData());
+                                               + hasMoreData(), data);
 
                return rep;
        }