From c8633c6051a665bcaaae6a69eec20b14b2adf5fe Mon Sep 17 00:00:00 2001 From: "Brax Antti (Oy Samlink Ab)" Date: Wed, 12 Jan 2022 14:33:55 +0200 Subject: [PATCH] Convert 20_Buzzword to Java Provide the output PrintStream dependency to UserInterface in the constructor instead of have it hard coded to System.out. --- 20_Buzzword/java/src/Buzzword.java | 2 +- 20_Buzzword/java/src/UserInterface.java | 45 ++++++++++++++----------- 2 files changed, 27 insertions(+), 20 deletions(-) diff --git a/20_Buzzword/java/src/Buzzword.java b/20_Buzzword/java/src/Buzzword.java index 248b4a77..85fecfd3 100755 --- a/20_Buzzword/java/src/Buzzword.java +++ b/20_Buzzword/java/src/Buzzword.java @@ -10,7 +10,7 @@ public class Buzzword { ) { final BuzzwordSupplier buzzwords = new BuzzwordSupplier(); final UserInterface userInterface = new UserInterface( - scanner, buzzwords); + scanner, System.out, buzzwords); userInterface.run(); } } diff --git a/20_Buzzword/java/src/UserInterface.java b/20_Buzzword/java/src/UserInterface.java index cbfbe3eb..103e88c8 100644 --- a/20_Buzzword/java/src/UserInterface.java +++ b/20_Buzzword/java/src/UserInterface.java @@ -1,5 +1,4 @@ -import static java.lang.System.out; - +import java.io.PrintStream; import java.util.Scanner; import java.util.function.Supplier; @@ -14,6 +13,11 @@ public class UserInterface implements Runnable { */ private final Scanner input; + /** + * Output to the user. + */ + private final PrintStream output; + /** * The buzzword generator. */ @@ -23,35 +27,38 @@ public class UserInterface implements Runnable { * Create a new user interface. * * @param input The input scanner with which the user gives commands. + * @param output The output to show messages to the user. * @param buzzwords The buzzword supplier. */ public UserInterface(final Scanner input, - final Supplier buzzwords) { + final PrintStream output, + final Supplier buzzwords) { this.input = input; + this.output = output; this.buzzwords = buzzwords; } @Override public void run() { - out.println(" BUZZWORD GENERATOR"); - out.println(" CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"); - out.println(); - out.println(); - out.println(); - out.println("THIS PROGRAM PRINTS HIGHLY ACCEPTABLE PHRASES IN"); - out.println("'EDUCATOR-SPEAK' THAT YOU CAN WORK INTO REPORTS"); - out.println("AND SPEECHES. WHENEVER A QUESTION MARK IS PRINTED,"); - out.println("TYPE A 'Y' FOR ANOTHER PHRASE OR 'N' TO QUIT."); - out.println(); - out.println(); - out.println("HERE'S THE FIRST PHRASE:"); + output.println(" BUZZWORD GENERATOR"); + output.println(" CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"); + output.println(); + output.println(); + output.println(); + output.println("THIS PROGRAM PRINTS HIGHLY ACCEPTABLE PHRASES IN"); + output.println("'EDUCATOR-SPEAK' THAT YOU CAN WORK INTO REPORTS"); + output.println("AND SPEECHES. WHENEVER A QUESTION MARK IS PRINTED,"); + output.println("TYPE A 'Y' FOR ANOTHER PHRASE OR 'N' TO QUIT."); + output.println(); + output.println(); + output.println("HERE'S THE FIRST PHRASE:"); do { - out.println(buzzwords.get()); - out.println(); - out.print("?"); + output.println(buzzwords.get()); + output.println(); + output.print("?"); } while ("Y".equals(input.nextLine().toUpperCase())); - out.println("COME BACK WHEN YOU NEED HELP WITH ANOTHER REPORT!"); + output.println("COME BACK WHEN YOU NEED HELP WITH ANOTHER REPORT!"); } }