Add convenience methods for writing and flushing.
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Thu, 11 Apr 2013 20:09:49 +0000 (22:09 +0200)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Thu, 11 Apr 2013 20:09:49 +0000 (22:09 +0200)
src/main/java/net/pterodactylus/xdcc/ui/stdin/CommandReader.java

index b77ac2c..29c77ec 100644 (file)
@@ -110,25 +110,25 @@ public class CommandReader extends AbstractExecutionThreadService {
                                Collections.sort(lastResult);
                                int counter = 0;
                                for (Result result : lastResult) {
-                                       writer.write(String.format("[%d] %s (%s) from %s (#%s) on %s\n", counter++, result.pack().name(), result.pack().size(), result.bot().name(), result.pack().id(), result.bot().network().name()));
+                                       writeLine(String.format("[%d] %s (%s) from %s (#%s) on %s", counter++, result.pack().name(), result.pack().size(), result.bot().name(), result.pack().id(), result.bot().network().name()));
                                }
-                               writer.write("End of Search.\n");
+                               writeLine("End of Search.");
                        } else if (words[0].equalsIgnoreCase("dcc")) {
                                int counter = 0;
                                for (DccReceiver dccReceiver : core.dccReceivers()) {
-                                       writer.write(String.format("[%d] %s (%s, ", counter++, dccReceiver.filename(), dccReceiver.size()));
+                                       write(String.format("[%d] %s (%s, ", counter++, dccReceiver.filename(), dccReceiver.size()));
                                        if (dccReceiver.isRunning()) {
-                                               writer.write(String.format("%.1f%%, %s", dccReceiver.progress() * 100.0 / dccReceiver.size(), f(dccReceiver.currentRate())));
+                                               write(String.format("%.1f%%, %s", dccReceiver.progress() * 100.0 / dccReceiver.size(), f(dccReceiver.currentRate())));
                                        } else {
                                                if (dccReceiver.progress() >= dccReceiver.size()) {
-                                                       writer.write(String.format("complete, %s", f(dccReceiver.overallRate())));
+                                                       write(String.format("complete, %s", f(dccReceiver.overallRate())));
                                                } else {
-                                                       writer.write(String.format("aborted at %.1f%%, %s", dccReceiver.progress() * 100.0 / dccReceiver.size(), f(dccReceiver.currentRate())));
+                                                       write(String.format("aborted at %.1f%%, %s", dccReceiver.progress() * 100.0 / dccReceiver.size(), f(dccReceiver.currentRate())));
                                                }
                                        }
-                                       writer.write("/s)\n");
+                                       write("/s)\n");
                                }
-                               writer.write("End of DCCs.\n");
+                               writeLine("End of DCCs.");
                        } else if (words[0].equalsIgnoreCase("get")) {
                                Integer index = Ints.tryParse(words[1]);
                                if ((index != null) && (index < lastResult.size())) {
@@ -148,11 +148,10 @@ public class CommandReader extends AbstractExecutionThreadService {
                                        }
                                }
 
-                               writer.write(String.format("%d channels (%d joined, %d extra), %d bots offering %d packs (%d unique).\n", configuredChannelsCount, joinedChannelsCount, extraChannelsCount, bots.size(), packsCount, packNames.size()));
+                               writeLine(String.format("%d channels (%d joined, %d extra), %d bots offering %d packs (%d unique).", configuredChannelsCount, joinedChannelsCount, extraChannelsCount, bots.size(), packsCount, packNames.size()));
                        }
 
                        lastLine = line;
-                       writer.flush();
                }
        }
 
@@ -170,8 +169,7 @@ public class CommandReader extends AbstractExecutionThreadService {
        public void downloadStarted(DownloadStarted downloadStarted) {
                Download download = downloadStarted.download();
                try {
-                       writer.write(String.format("Download of %s (from %s, %s) has started.\n", download.filename(), download.bot().name(), download.bot().network().name()));
-                       writer.flush();
+                       writeLine(String.format("Download of %s (from %s, %s) has started.", download.filename(), download.bot().name(), download.bot().network().name()));
                } catch (IOException ioe1) {
                        /* ignore. */
                }
@@ -187,8 +185,7 @@ public class CommandReader extends AbstractExecutionThreadService {
        public void downloadFinished(DownloadFinished downloadFinished) {
                Download download = downloadFinished.download();
                try {
-                       writer.write(String.format("Download of %s (from %s, %s) has finished, at %s/s.\n", download.filename(), download.bot().name(), download.bot().network().name(), f(download.dccReceiver().overallRate())));
-                       writer.flush();
+                       writeLine(String.format("Download of %s (from %s, %s) has finished, at %s/s.", download.filename(), download.bot().name(), download.bot().network().name(), f(download.dccReceiver().overallRate())));
                } catch (IOException ioe1) {
                        /* ignore. */
                }
@@ -204,8 +201,7 @@ public class CommandReader extends AbstractExecutionThreadService {
        public void downloadFailed(DownloadFailed downloadFailed) {
                Download download = downloadFailed.download();
                try {
-                       writer.write(String.format("Download of %s (from %s, %s) has failed at %.1f%% and %s/s.\n", download.filename(), download.bot().name(), download.bot().network().name(), download.dccReceiver().progress() * 100.0 / download.dccReceiver().size(), f(download.dccReceiver().overallRate())));
-                       writer.flush();
+                       writeLine(String.format("Download of %s (from %s, %s) has failed at %.1f%% and %s/s.", download.filename(), download.bot().name(), download.bot().network().name(), download.dccReceiver().progress() * 100.0 / download.dccReceiver().size(), f(download.dccReceiver().overallRate())));
                } catch (IOException ioe1) {
                        /* ignore. */
                }
@@ -216,6 +212,32 @@ public class CommandReader extends AbstractExecutionThreadService {
        //
 
        /**
+        * Writes the given text to the {@link #writer}.
+        *
+        * @param text
+        *              The text to write
+        * @throws IOException
+        *              if an I/O error occurs
+        */
+       private void write(String text) throws IOException {
+               writer.write(text);
+               writer.flush();
+       }
+
+       /**
+        * Writes the given line followed by an LF to the {@link #writer}.
+        *
+        * @param line
+        *              The line to write
+        * @throws IOException
+        *              if an I/O error occurs
+        */
+       private void writeLine(String line) throws IOException {
+               writer.write(line + "\n");
+               writer.flush();
+       }
+
+       /**
         * Converts large numbers into a human-friendly format, by showing SI prefixes
         * for ×1024 (K), ×1048576 (M), and ×1073741824 (G).
         *