Class ArgumentUtils


  • public class ArgumentUtils
    extends java.lang.Object
    An utility class for validating inputs.
    • Constructor Summary

      Constructors 
      Constructor Description
      ArgumentUtils()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.lang.String displayLineSeparators​(java.lang.String str, boolean addNewLine)
      Displays line separators in a string by replacing all instances of `\r` and `\n` with `[cr]` and `[lf]`.
      static <T> T[] findDuplicates​(T[] array)
      Identifies duplicate values in a given array and returns them
      static java.lang.Object[] findMissingElements​(java.lang.Object[] array, java.lang.Object[] elements)
      Searches for elements in a given array and returns the elements not found.
      static java.lang.Object[] findMissingElements​(java.lang.Object[] array, java.util.Collection<?> elements)
      Searches for elements in a given array and returns the elements not found.
      static int[] indexesOf​(java.lang.Object[] array, java.lang.Object element)
      Returns the indexes of an element in a given array.
      static int indexOf​(char[] array, char element, int from)
      Returns the index of a character in a given array.
      static int indexOf​(NormalizedString[] array, NormalizedString element, FieldSelector fieldSelector)
      Returns the index of a header, when headers are selected using a FieldSelector.
      static int indexOf​(java.lang.Object[] array, java.lang.Object element)
      Returns the index of an element in a given array.
      private static int indexOf​(java.lang.Object[] array, java.lang.Object element, int from)
      Returns the index of an element in a given array.
      static java.io.Reader newReader​(java.io.File file)
      Creates a Reader for a given a file
      static java.io.Reader newReader​(java.io.File file, java.lang.String encoding)
      Creates a Reader for a given a file
      static java.io.Reader newReader​(java.io.File file, java.nio.charset.Charset encoding)
      Creates a Reader for a given a file
      static java.io.Reader newReader​(java.io.InputStream input)
      Creates a Reader from an input stream
      static java.io.Reader newReader​(java.io.InputStream input, java.lang.String encoding)
      Creates a Reader from an input stream
      static java.io.Reader newReader​(java.io.InputStream input, java.nio.charset.Charset encoding)
      Creates a Reader from an input stream
      static java.io.Writer newWriter​(java.io.File file)
      Creates a Writer from a file
      static java.io.Writer newWriter​(java.io.File file, java.lang.String encoding)
      Creates a Writer from a file
      static java.io.Writer newWriter​(java.io.File file, java.nio.charset.Charset encoding)
      Creates a Writer from a file
      static java.io.Writer newWriter​(java.io.OutputStream output)
      Creates a Writer from an output stream
      static java.io.Writer newWriter​(java.io.OutputStream output, java.lang.String encoding)
      Creates a Writer from an output stream
      static java.io.Writer newWriter​(java.io.OutputStream output, java.nio.charset.Charset encoding)
      Creates a Writer from an output stream
      static <T> void noNulls​(java.lang.String argDescription, T... args)
      Throws an IllegalArgumentException if the given array is null,empty, or contains null values
      static <T> void notEmpty​(java.lang.String argDescription, T... args)
      Throws an IllegalArgumentException if the given array is null or empty.
      static int[] removeAll​(int[] array, int e)
      Removes all instances of a given element from an int array.
      static java.lang.String restrictContent​(int length, java.lang.CharSequence content)
      Restricts the length of a given content.
      static java.lang.String restrictContent​(int length, java.lang.Object content)
      Restricts the length of a given content.
      private static <T extends java.lang.Exception>
      void
      throwsUnchecked​(java.lang.Throwable toThrow)  
      static void throwUnchecked​(java.lang.Throwable error)
      Allows rethrowing a checked exception instead of wrapping it into a runtime exception.
      static java.lang.String[] toArray​(java.util.List<java.lang.Enum> enums)
      Converts a list of enumerations to an array of their Enum.toString() representation
      static byte[] toByteArray​(int... ints)
      Converts a sequence of int numbers into a byte array.
      static char[] toCharArray​(java.util.Collection<java.lang.Character> characters)
      Converts any collection of Character into a char array.
      static int[] toIntArray​(java.util.Collection<java.lang.Integer> ints)
      Converts any collection of Integer into an int array.
      static java.lang.String trim​(java.lang.String input, boolean left, boolean right)
      Removes surrounding spaces from a given String, from its right or left side, or both.
      • Methods inherited from class java.lang.Object

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

      • EMPTY_STRING_ARRAY

        public static final java.lang.String[] EMPTY_STRING_ARRAY
        An empty String array.
      • EMPTY_NORMALIZED_STRING_ARRAY

        public static final NormalizedString[] EMPTY_NORMALIZED_STRING_ARRAY
    • Constructor Detail

      • ArgumentUtils

        public ArgumentUtils()
    • Method Detail

      • notEmpty

        public static <T> void notEmpty​(java.lang.String argDescription,
                                        T... args)
        Throws an IllegalArgumentException if the given array is null or empty.
        Type Parameters:
        T - Type of arguments to be validated
        Parameters:
        argDescription - the description of the elements
        args - the elements to be validated.
      • noNulls

        public static <T> void noNulls​(java.lang.String argDescription,
                                       T... args)
        Throws an IllegalArgumentException if the given array is null,empty, or contains null values
        Type Parameters:
        T - Type of arguments to be validated
        Parameters:
        argDescription - the description of the elements
        args - the elements to be validated.
      • indexOf

        public static int indexOf​(NormalizedString[] array,
                                  NormalizedString element,
                                  FieldSelector fieldSelector)
        Returns the index of a header, when headers are selected using a FieldSelector.
        Parameters:
        array - the element array
        element - the element to be looked for in the array.
        fieldSelector - a field selector that indicates which elements of the given array are selected.
        Returns:
        the index of the given element in the array, or -1 if the element could not be found.
      • indexesOf

        public static int[] indexesOf​(java.lang.Object[] array,
                                      java.lang.Object element)
        Returns the indexes of an element in a given array.
        Parameters:
        array - the element array
        element - the element to be looked for in the array.
        Returns:
        the indexes of the given element in the array, or an empty array if no element could be found
      • indexOf

        public static int indexOf​(java.lang.Object[] array,
                                  java.lang.Object element)
        Returns the index of an element in a given array.
        Parameters:
        array - the element array
        element - the element to be looked for in the array.
        Returns:
        the index of the given element in the array, or -1 if the element could not be found.
      • indexOf

        public static int indexOf​(char[] array,
                                  char element,
                                  int from)
        Returns the index of a character in a given array.
        Parameters:
        array - the character array
        element - the character to be looked for in the array.
        from - the starting position of the array from where to start the search
        Returns:
        the index of the given character in the array, or -1 if the character could not be found.
      • indexOf

        private static int indexOf​(java.lang.Object[] array,
                                   java.lang.Object element,
                                   int from)
        Returns the index of an element in a given array.
        Parameters:
        array - the element array
        element - the element to be looked for in the array.
        from - the starting position of the array from where to start the search
        Returns:
        the index of the given element in the array, or -1 if the element could not be found.
      • findMissingElements

        public static java.lang.Object[] findMissingElements​(java.lang.Object[] array,
                                                             java.util.Collection<?> elements)
        Searches for elements in a given array and returns the elements not found.
        Parameters:
        array - An array with elements
        elements - the elements to be found
        Returns:
        the elements not found in the array.
      • findMissingElements

        public static java.lang.Object[] findMissingElements​(java.lang.Object[] array,
                                                             java.lang.Object[] elements)
        Searches for elements in a given array and returns the elements not found.
        Parameters:
        array - An array with elements
        elements - the elements to be found
        Returns:
        the elements not found in the array.
      • newWriter

        public static java.io.Writer newWriter​(java.io.OutputStream output)
        Creates a Writer from an output stream
        Parameters:
        output - the output stream
        Returns:
        Writer wrapping the given output stream
      • newWriter

        public static java.io.Writer newWriter​(java.io.OutputStream output,
                                               java.lang.String encoding)
        Creates a Writer from an output stream
        Parameters:
        output - the output stream
        encoding - the encoding to use when writing to the output stream
        Returns:
        Writer wrapping the given output stream
      • newWriter

        public static java.io.Writer newWriter​(java.io.OutputStream output,
                                               java.nio.charset.Charset encoding)
        Creates a Writer from an output stream
        Parameters:
        output - the output stream
        encoding - the encoding to use when writing to the output stream
        Returns:
        Writer wrapping the given output stream
      • newWriter

        public static java.io.Writer newWriter​(java.io.File file)
        Creates a Writer from a file
        Parameters:
        file - the file to be written
        Returns:
        Writer for the given file
      • newWriter

        public static java.io.Writer newWriter​(java.io.File file,
                                               java.lang.String encoding)
        Creates a Writer from a file
        Parameters:
        file - the file to be written
        encoding - the encoding to use when writing to the file
        Returns:
        Writer for the given file
      • newWriter

        public static java.io.Writer newWriter​(java.io.File file,
                                               java.nio.charset.Charset encoding)
        Creates a Writer from a file
        Parameters:
        file - the file to be written
        encoding - the encoding to use when writing to the file
        Returns:
        Writer for the given file
      • newReader

        public static java.io.Reader newReader​(java.io.InputStream input)
        Creates a Reader from an input stream
        Parameters:
        input - the input stream
        Returns:
        a Reader wrapping the given input stream
      • newReader

        public static java.io.Reader newReader​(java.io.InputStream input,
                                               java.lang.String encoding)
        Creates a Reader from an input stream
        Parameters:
        input - the input stream
        encoding - the encoding to use when reading from the input stream
        Returns:
        a Reader wrapping the given input stream
      • newReader

        public static java.io.Reader newReader​(java.io.InputStream input,
                                               java.nio.charset.Charset encoding)
        Creates a Reader from an input stream
        Parameters:
        input - the input stream
        encoding - the encoding to use when reading from the input stream
        Returns:
        a Reader wrapping the given input stream
      • newReader

        public static java.io.Reader newReader​(java.io.File file)
        Creates a Reader for a given a file
        Parameters:
        file - the file to be read
        Returns:
        a Reader for reading the given file
      • newReader

        public static java.io.Reader newReader​(java.io.File file,
                                               java.lang.String encoding)
        Creates a Reader for a given a file
        Parameters:
        file - the file to be read
        encoding - the encoding to be used when reading from the file
        Returns:
        a Reader for reading the given file
      • newReader

        public static java.io.Reader newReader​(java.io.File file,
                                               java.nio.charset.Charset encoding)
        Creates a Reader for a given a file
        Parameters:
        file - the file to be read
        encoding - the encoding to be used when reading from the file
        Returns:
        a Reader for reading the given file
      • toArray

        public static java.lang.String[] toArray​(java.util.List<java.lang.Enum> enums)
        Converts a list of enumerations to an array of their Enum.toString() representation
        Parameters:
        enums - a list of enumerations to convert
        Returns:
        an array of String with the values produced by each element's Enum.toString() method.
      • toIntArray

        public static int[] toIntArray​(java.util.Collection<java.lang.Integer> ints)
        Converts any collection of Integer into an int array.
        Parameters:
        ints - a collection of (boxed) integers.
        Returns:
        a primitive int array with the unboxed integer values.
      • toCharArray

        public static char[] toCharArray​(java.util.Collection<java.lang.Character> characters)
        Converts any collection of Character into a char array.
        Parameters:
        characters - a collection of (boxed) characters.
        Returns:
        a primitive char array with the unboxed character values.
      • restrictContent

        public static java.lang.String restrictContent​(int length,
                                                       java.lang.CharSequence content)
        Restricts the length of a given content.
        Parameters:
        length - the maximum length to be displayed. If 0, the "<omitted>" string will be returned.
        content - the content whose length should be restricted.
        Returns:
        the restricted content.
      • restrictContent

        public static java.lang.String restrictContent​(int length,
                                                       java.lang.Object content)
        Restricts the length of a given content.
        Parameters:
        length - the maximum length to be displayed. If 0, the "<omitted>" string will be returned.
        content - the content whose length should be restricted.
        Returns:
        the restricted content.
      • throwUnchecked

        public static void throwUnchecked​(java.lang.Throwable error)
        Allows rethrowing a checked exception instead of wrapping it into a runtime exception. For internal use only as this generally causes more trouble than it solves (your exception-specific catch statement may not catch this error - make sure you are catching a Throwable)
        Parameters:
        error - the (potentially checked) exception to the thrown.
      • throwsUnchecked

        private static <T extends java.lang.Exception> void throwsUnchecked​(java.lang.Throwable toThrow)
                                                                     throws T extends java.lang.Exception
        Throws:
        T extends java.lang.Exception
      • toByteArray

        public static byte[] toByteArray​(int... ints)
        Converts a sequence of int numbers into a byte array.
        Parameters:
        ints - the integers to be cast to by
        Returns:
        the resulting byte array.
      • findDuplicates

        public static <T> T[] findDuplicates​(T[] array)
        Identifies duplicate values in a given array and returns them
        Type Parameters:
        T - the type of elements held in the given array.
        Parameters:
        array - the search array
        Returns:
        all duplicate values found in the given array, or empty array if no duplicates, or null if the input is null.
      • trim

        public static java.lang.String trim​(java.lang.String input,
                                            boolean left,
                                            boolean right)
        Removes surrounding spaces from a given String, from its right or left side, or both.
        Parameters:
        input - the content to trim
        left - flag to indicate whether spaces on the left side of the string should be removed.
        right - flag to indicate whether spaces on the right side of the string should be removed.
        Returns:
        the trimmed string.
      • displayLineSeparators

        public static java.lang.String displayLineSeparators​(java.lang.String str,
                                                             boolean addNewLine)
        Displays line separators in a string by replacing all instances of `\r` and `\n` with `[cr]` and `[lf]`. If `\r` is followed by `\n` or vice versa, then `[crlf]` or `[lfcr]` will be printed.
        Parameters:
        str - the string to have its line separators displayed
        addNewLine - flag indicating whether the original `\r` or `\n` characters should be kept in the string. if true, `\r` will be replaced by `[cr]\r` for example.
        Returns:
        the updated string with any line separators replaced by visible character sequences.
      • removeAll

        public static int[] removeAll​(int[] array,
                                      int e)
        Removes all instances of a given element from an int array.
        Parameters:
        array - the array to be checked
        e - the element to be removed
        Returns:
        an updated array that does not contain the given element anywhere, or the original array if the element has not been found.