Package dev.davwheat

Class IOHelper


  • public class IOHelper
    extends java.lang.Object
    Class to make inputting data much easier.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.util.Scanner scanner  
      static java.util.function.Function<java.lang.Character,​java.lang.Boolean> YesNoCharValidator
      Pre-created custom char validator used to only accept Y/N inputs.
    • Constructor Summary

      Constructors 
      Constructor Description
      IOHelper()  
    • Method Summary

      Modifier and Type Method Description
      void pressEnterToContinue()
      Pauses execution until the user presses ENTER.
      char readChar​(java.lang.String message, java.lang.String failMessage)
      Reads a char until it passes the validation
      char readChar​(java.lang.String message, java.lang.String failMessage, java.util.function.Function<java.lang.Character,​java.lang.Boolean> customValidator)
      Reads a char until it passes the validation
      int readInteger​(java.lang.String message, java.lang.String failMessage)
      Reads an int until it passes the validation
      int readInteger​(java.lang.String message, java.lang.String failMessage, java.util.function.Function<java.lang.Integer,​java.lang.Boolean> customValidator)
      Reads an int until it passes the validation
      java.lang.String readString​(java.lang.String message, java.lang.String failMessage)
      Reads a string until it passes the validation
      java.lang.String readString​(java.lang.String message, java.lang.String failMessage, java.util.function.Function<java.lang.String,​java.lang.Boolean> customValidator)
      Reads a string until it passes the validation
      void setScanner​(java.util.Scanner scanner)
      Used in tests to allow a custom Scanner to be set.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • scanner

        protected java.util.Scanner scanner
      • YesNoCharValidator

        public static java.util.function.Function<java.lang.Character,​java.lang.Boolean> YesNoCharValidator
        Pre-created custom char validator used to only accept Y/N inputs.
    • Constructor Detail

      • IOHelper

        public IOHelper()
    • Method Detail

      • setScanner

        public void setScanner​(java.util.Scanner scanner)
        Used in tests to allow a custom Scanner to be set.

        This allows us to provide custom input to the IOHelper functions.

        Do not use this in normal code.

        Parameters:
        scanner - custom scanner
      • readString

        public java.lang.String readString​(java.lang.String message,
                                           java.lang.String failMessage)
        Reads a string until it passes the validation
        Parameters:
        message - Message to output before input is read
        failMessage - Message to output if validation fails
        Returns:
        The inputted string
      • readString

        public java.lang.String readString​(java.lang.String message,
                                           java.lang.String failMessage,
                                           java.util.function.Function<java.lang.String,​java.lang.Boolean> customValidator)
        Reads a string until it passes the validation
        Parameters:
        message - Message to output before input is read
        failMessage - Message to output if validation fails
        customValidator - Custom string validator
        Returns:
        The inputted string
      • readInteger

        public int readInteger​(java.lang.String message,
                               java.lang.String failMessage)
        Reads an int until it passes the validation
        Parameters:
        message - Message to output before input is read
        failMessage - Message to output if validation fails
        Returns:
        The inputted integer
      • readInteger

        public int readInteger​(java.lang.String message,
                               java.lang.String failMessage,
                               java.util.function.Function<java.lang.Integer,​java.lang.Boolean> customValidator)
        Reads an int until it passes the validation
        Parameters:
        message - Message to output before input is read
        failMessage - Message to output if validation fails
        customValidator - Custom validator
        Returns:
        The inputted integer
      • readChar

        public char readChar​(java.lang.String message,
                             java.lang.String failMessage)
        Reads a char until it passes the validation
        Parameters:
        message - Message to output before input is read
        failMessage - Message to output if validation fails
        Returns:
        The inputted char
      • readChar

        public char readChar​(java.lang.String message,
                             java.lang.String failMessage,
                             java.util.function.Function<java.lang.Character,​java.lang.Boolean> customValidator)
        Reads a char until it passes the validation
        Parameters:
        message - Message to output before input is read
        failMessage - Message to output if validation fails
        customValidator - Custom char validator
        Returns:
        string The inputted char
      • pressEnterToContinue

        public void pressEnterToContinue()
        Pauses execution until the user presses ENTER.

        Does not display any prompts, so ensure that you inform the user that they should press ENTER before you call this.