Class Util

java.lang.Object
org.freedesktop.dbus.utils.Util

public final class Util extends Object
Utility class providing helper methods for handling strings, files and so on.
Since:
v3.2.5 - 2020-12-28
Author:
hypfvieh
  • Method Details

    • readProperties

      public static Properties readProperties(File _file)
      Trys to read a properties file. Returns null if properties file could not be loaded
      Parameters:
      _file - property file to read
      Returns:
      Properties Object or null
    • readProperties

      public static Properties readProperties(InputStream _stream)
      Tries to read a properties file from an inputstream.
      Parameters:
      _stream - input stream providing property file content
      Returns:
      properties object/null
    • isBlank

      public static boolean isBlank(String _str)
      Checks if the given String is either null or blank. Blank means:
      " " - true
      "" - true
      null - true
      " xx" - false
      
      Parameters:
      _str - string to test
      Returns:
      true if string is blank or null, false otherwise
    • strEquals

      public static boolean strEquals(String _str1, String _str2)
      Null-safe equals for two strings.
      Parameters:
      _str1 - first string
      _str2 - second string
      Returns:
      true if both are equal (also true if both are null)
    • isEmpty

      public static boolean isEmpty(String _str)
      Checks if the given String is either null or empty. Blank means:
      " " - false
      "" - true
      null - true
      " xx" - false
      
      Parameters:
      _str - string to test
      Returns:
      true if string is empty or null, false otherwise
    • randomString

      public static String randomString(int _length)
      Generate a simple (cryptographic insecure) random string.
      Parameters:
      _length - length of random string
      Returns:
      random string or empty string if _length <= 0
    • upperCaseFirstChar

      public static String upperCaseFirstChar(String _str)
      Upper case the first letter of the given string.
      Parameters:
      _str - string
      Returns:
      uppercased string
    • snakeToCamelCase

      public static String snakeToCamelCase(String _input)
      Converts a snake-case-string to camel case string.
      Eg. this_is_snake_case → thisIsSnakeCase
      Parameters:
      _input - string
      Returns:
      camel case string or input if nothing todo. Returns null if input was null.
    • abbreviate

      public static String abbreviate(String _str, int _length)
      Abbreviates a String using ellipses.
      Parameters:
      _str - string to abbrivate
      _length - max length
      Returns:
      abbreviated string, original string if string length is lower or equal then desired length or null if input was null
    • isValidNetworkPort

      public static boolean isValidNetworkPort(int _port, boolean _allowWellKnown)
      Check if the given value is a valid network port (1 - 65535).
      Parameters:
      _port - 'port' to check
      _allowWellKnown - allow ports below 1024 (aka reserved well known ports)
      Returns:
      true if int is a valid network port, false otherwise
    • isValidNetworkPort

      public static boolean isValidNetworkPort(String _str, boolean _allowWellKnown)
      Parameters:
      _str - string to check
      _allowWellKnown - allow well known port
      Returns:
      true if valid port, false otherwise
      See Also:
    • isInteger

      public static boolean isInteger(String _str, boolean _allowNegative)
      Check if string is an either positive or negative integer.
      Parameters:
      _str - string to validate
      _allowNegative - negative integer allowed
      Returns:
      true if integer, false otherwise
    • readFileToList

      public static List<String> readFileToList(String _fileName)
      Reads a file to a List<String> (each line is one entry in list). Line endings (line feed/carriage return) are NOT removed!
      Parameters:
      _fileName - file to read
      Returns:
      list containing text
    • readFileToString

      public static String readFileToString(File _file)
      Reads a file to a String. Line endings (line feed/carriage return) are NOT removed!
      Parameters:
      _file - file to read
      Returns:
      String containing content, maybe null
    • getTextfileFromUrl

      public static List<String> getTextfileFromUrl(String _url, Charset _charset, boolean _silent)
      Reads a text file from the given URL using the provided charset. Using the _silent argument optionally disables all error logging.
      Parameters:
      _url - url providing the file to read
      _charset - charset to use
      _silent - true to not log exceptions, false otherwise
      Returns:
      list of string or null on error
    • readTextFileFromStream

      public static List<String> readTextFileFromStream(InputStream _input, Charset _charset, boolean _silent)
      Reads a text file from given InputStream using the given Charset.
      Parameters:
      _input - stream to read
      _charset - charset to use
      _silent - true to disable exception logging, false otherwise
      Returns:
      List of string or null on error
    • writeTextFile

      public static boolean writeTextFile(String _fileName, String _fileContent, Charset _charset, boolean _append)
      Write String to file with the given charset. Optionally appends the data to the file.
      Parameters:
      _fileName - the file to write
      _fileContent - the content to write
      _charset - the charset to use
      _append - append content to file, if false file will be overwritten if existing
      Returns:
      true on successful write, false otherwise
    • getHostName

      public static String getHostName()
      Gets the host name of the local machine.
      Returns:
      host name
    • collectionContainsAny

      public static <T> boolean collectionContainsAny(Collection<T> _haystack, Collection<T> _needles)
      Checks if any of the 'needle' values are found in 'haystack'.
      Type Parameters:
      T - type
      Parameters:
      _haystack - collection to check
      _needles - values to find
      Returns:
      true if any value found, false if any parameter null or no matching value found
    • getCurrentUser

      public static String getCurrentUser()
      Determines the current logged on user.
      Returns:
      logged on user
    • isMacOs

      public static boolean isMacOs()
      Checks if the running OS is a MacOS/MacOS X.
      Returns:
      true if MacOS (or MacOS X), false otherwise
    • isFreeBsd

      public static boolean isFreeBsd()
    • isWindows

      public static boolean isWindows()
      Checks if the running OS is a MS Windows OS.
      Returns:
      true if Windows, false otherwise
    • getJavaVersion

      public static int getJavaVersion()
      Get the java version of the current running JRE.
      Returns:
      java major
    • genGUID

      public static String genGUID()
      Create a random GUID (used for connection addresses).
      Returns:
      String
    • createDynamicSessionAddress

      public static String createDynamicSessionAddress(boolean _listeningSocket, boolean _abstract)
      Creates a unix socket address using.
      Parameters:
      _listeningSocket - true if the address should be used for a listing socket
      _abstract - true to create an abstract socket
      Returns:
      address String
    • checkIntInRange

      public static int checkIntInRange(int _check, int _min, int _max)
      Checks if given value is greater or equal to the given minimum and less or equal to the given maximum.
      Parameters:
      _check - value to check
      _min - minimum allowed value (including)
      _max - maximum allowed value (including)
      Returns:
      given value if in range
      Throws:
      IllegalArgumentException - when given value is out of range
      Since:
      4.2.0 - 2022-07-13
    • setFilePermissions

      public static void setFilePermissions(Path _path, String _fileOwner, String _fileGroup, Set<PosixFilePermission> _fileUnixPermissions)
      Setup the unix socket file permissions. User and group can always be set, file permissions are only set on non-windows OSes.
      Parameters:
      _path - path to file which where permissions should be set
      _fileOwner - new owner for the file
      _fileGroup - new group for the file
      _fileUnixPermissions - unix permissions to set on file
    • waitFor

      public static <T extends Throwable> void waitFor(String _lockName, IThrowingSupplier<Boolean,T> _wait, long _timeoutMs, long _sleepTime) throws T
      Waits for the provided supplier to return true or throws an exception.

      This method will call the provided supplier every _sleepTime milliseconds to check if the supplier returns true.
      If supplier returns true, method will return. If no value is present after the defined _timeoutMs a IllegalStateException is thrown.

      Type Parameters:
      T - exception type which might be thrown
      Parameters:
      _lockName - name for the lock (used in exception text and logging)
      _wait - supplier to wait for
      _timeoutMs - timeout in milliseconds when wait will fail
      _sleepTime - sleep time between each retries
      Throws:
      T - when timeout is reached
    • unwrapTypeRef

      public static Type unwrapTypeRef(Class<?> _type)
      Gets the type wrapped by a TypeRef interface.
      Parameters:
      _type - class to unwrap
      Returns:
      Type used in TypeRef if class is extending TypeRef interface, null otherwise
    • toObjectArray

      public static Object[] toObjectArray(Object _obj)
      Convert a object of arbitrary type to an object array.
      If input is null or not an array, an empty array will be returned.
      Parameters:
      _obj - object of arbitrary type
      Returns:
      object array
    • defaultString

      public static String defaultString(String _input, String _default)
      Return a default String if input is null.
      Parameters:
      _input - input string
      _default - default to use if input is null
      Returns:
      input string or default
    • getConstructor

      public static <C> Constructor<? extends C> getConstructor(Class<? extends C> _clz, Class<?>... _args)
      Tries to find a constructor of the given class with the given signature. Will catch all exceptions and return null in doubt.
      Type Parameters:
      C - type of input class
      Parameters:
      _clz - class to query for constructor
      _args - parameter classes used in constructor
      Returns:
      constructor matching given pattern or null
    • extractClassNameFromFqcn

      public static String extractClassNameFromFqcn(String _fqcn)
      Extracts the class name from a fully qualified class name (FQCN).

      If the FQCN is null or empty, null will be returned. If the FQCN does not contain any dots, the FQCN itself will be returned.

      Parameters:
      _fqcn - fully qualified class name
      Returns:
      class name or null if input was null/empty