Class Utils


  • public final class Utils
    extends Object
    Miscellaneous Para utilities.
    Author:
    Alex Bogdanovski [alex@erudika.com]
    • Method Detail

      • getInstance

        public static Utils getInstance()
        Returns an instance of this class.
        Returns:
        an instance
      • getHumanTime

        public static HumanTime getHumanTime()
        HumanTime - a relative time formatter.
        Returns:
        humantime instance
      • md5

        public static String md5​(String s)
        md5 hash function.
        Parameters:
        s - the string to be hashed
        Returns:
        an md5 hash
      • hmacSHA256

        public static String hmacSHA256​(String message,
                                        String secret)
        Computes the HmacSHA256 hash of a message.
        Parameters:
        message - a message as UTF-8 encoded string
        secret - a secret key
        Returns:
        base64(hmacSHA256(message, secret))
      • bcrypt

        public static String bcrypt​(String s)
        bcrypt hash function implemented by Spring Security.
        Parameters:
        s - the string to be hashed
        Returns:
        the hash
      • bcryptMatches

        public static boolean bcryptMatches​(String plain,
                                            String storedHash)
        Checks if a hash matches a string.
        Parameters:
        plain - plain text string
        storedHash - hashed string
        Returns:
        true if the hash matches
      • generateSecurityToken

        public static String generateSecurityToken​(int length,
                                                   boolean urlSafe)
        Generates an authentication token - a random string encoded in Base64.
        Parameters:
        length - the length of the generated token
        urlSafe - switches to a URL safe encoding
        Returns:
        a random string
      • generateSecurityToken

        public static String generateSecurityToken​(int length)
        Generates an authentication token - a random string encoded in Base64.
        Parameters:
        length - the length of the generated token
        Returns:
        a random string
      • generateSecurityToken

        public static String generateSecurityToken()
        Generates an authentication token - a random 32 byte string encoded in Base64.
        Returns:
        a random string
      • escapeJavascript

        public static String escapeJavascript​(String str)
        Escapes JavaScript.
        Parameters:
        str - a javascript string
        Returns:
        the escaped javascript string
      • stripHtml

        public static String stripHtml​(String html)
        Strips all HTML tags from a string.
        Parameters:
        html - HTML string
        Returns:
        just the text
      • markdownToHtml

        public static String markdownToHtml​(String markdownString)
        Converts Markdown to HTML.
        Parameters:
        markdownString - Markdown
        Returns:
        HTML
      • markdownToHtml

        public static String markdownToHtml​(String markdownString,
                                            boolean htmlTagsRenderingEnabled)
        Converts Markdown to HTML.
        Parameters:
        markdownString - Markdown
        htmlTagsRenderingEnabled - if true, basic HTML tags will be rendered instead of escaped
        Returns:
        HTML
      • compileMustache

        public static String compileMustache​(Map<String,​Object> context,
                                             String template,
                                             boolean escapeHtml)
        Compiles a mustache template with a given scope (map of fields and values).
        Parameters:
        context - a map of fields and values
        template - a Mustache template
        Returns:
        the compiled template string
      • abbreviate

        public static String abbreviate​(String str,
                                        int max)
        Abbreviates a string.
        Parameters:
        str - a string
        max - max length
        Returns:
        a substring of that string
      • arrayJoin

        public static String arrayJoin​(List<String> arr,
                                       String separator)
        Joins a list of strings to String using a separator.
        Parameters:
        arr - a list of strings
        separator - a separator string
        Returns:
        a string
      • stripAndTrim

        public static String stripAndTrim​(String str)
        Strips all symbols, punctuation, whitespace and control chars from a string.
        Parameters:
        str - a dirty string
        Returns:
        a clean string
      • stripAndTrim

        public static String stripAndTrim​(String str,
                                          String replaceWith)
        Strips all symbols, punctuation, whitespace and control chars from a string.
        Parameters:
        str - a dirty string
        replaceWith - a string to replace spaces with
        Returns:
        a clean string
      • stripAndTrim

        public static String stripAndTrim​(String str,
                                          String replaceWith,
                                          boolean asciiOnly)
        Strips all symbols, punctuation, whitespace and control chars from a string.
        Parameters:
        str - a dirty string
        replaceWith - a string to replace spaces with
        asciiOnly - if true, all non-ASCII characters will be stripped
        Returns:
        a clean string
      • noSpaces

        public static String noSpaces​(String str,
                                      String replaceWith)
        Converts spaces to dashes.
        Parameters:
        str - a string with spaces
        replaceWith - a string to replace spaces with
        Returns:
        a string with dashes
      • formatMessage

        public static String formatMessage​(String msg,
                                           Object... params)
        Formats a messages containing {0}, {1}... etc. Used for translation.
        Parameters:
        msg - a message with placeholders
        params - objects used to populate the placeholders
        Returns:
        a formatted message
      • base64enc

        public static String base64enc​(byte[] str)
        Encodes a byte array to Base64.
        Parameters:
        str - the byte array
        Returns:
        an encoded string
      • base64encURL

        public static String base64encURL​(byte[] str)
        Encodes a byte array to Base64. URL safe.
        Parameters:
        str - the byte array
        Returns:
        an encoded string
      • base64dec

        public static String base64dec​(String str)
        Decodes a string from Base64.
        Parameters:
        str - the encoded string
        Returns:
        a decoded string
      • formatDate

        public static String formatDate​(Long timestamp,
                                        String format,
                                        Locale loc)
        Formats a date in a specific format.
        Parameters:
        timestamp - the Java timestamp
        format - the date format
        loc - the locale instance
        Returns:
        a formatted date
      • formatDate

        public static String formatDate​(String format,
                                        Locale loc)
        Formats the date for today, in a specific format.
        Parameters:
        format - the date format
        loc - the locale instance
        Returns:
        today's date formatted
      • getCurrentYear

        public static int getCurrentYear()
        Returns the current year.
        Returns:
        this year
      • getMonths

        public static String[] getMonths​(Locale locale)
        Returns an array of the months in the Gregorian calendar.
        Parameters:
        locale - the locale used for the months' names
        Returns:
        an array of the 12 months
      • getLocale

        public static Locale getLocale​(String localeStr)
        Parameters:
        localeStr - locale string
        Returns:
        a Locale instance from a locale string.
      • round

        public static int round​(float d)
        Rounds a float to an int.
        Parameters:
        d - a float
        Returns:
        a rounded int
      • formatPrice

        public static String formatPrice​(double price)
        Returns the price with two fractional digits at the end.
        Parameters:
        price - a price
        Returns:
        $###.##
      • roundHalfUp

        public static double roundHalfUp​(double d)
        Round up a double using the "half up" method.
        Parameters:
        d - a double
        Returns:
        a double
      • roundHalfUp

        public static double roundHalfUp​(double d,
                                         int scale)
        Round up a double using the "half up" method.
        Parameters:
        d - a double
        scale - the scale
        Returns:
        a double
      • abbreviateInt

        public static String abbreviateInt​(Number number,
                                           int decPlaces)
        Abbreviates an integer by adding a letter suffix at the end. E.g. "M" for millions, "K" for thousands, etc.
        Parameters:
        number - a big integer
        decPlaces - decimal places
        Returns:
        the rounded integer as a string
      • urlDecode

        public static String urlDecode​(String s)
        Decodes a URL-encoded string.
        Parameters:
        s - a string
        Returns:
        the decoded string
      • urlEncode

        public static String urlEncode​(String s)
        URL-encodes a string.
        Parameters:
        s - a string
        Returns:
        the encoded string
      • isValidURL

        public static boolean isValidURL​(String url)
        URL validation.
        Parameters:
        url - a URL
        Returns:
        true if the URL is valid
      • isValidEmail

        public static boolean isValidEmail​(String email)
        Email validation.
        Parameters:
        email - email address
        Returns:
        true if the URL is valid
      • getHostFromURL

        public static String getHostFromURL​(String url)
        Returns the host part of the URL.
        Parameters:
        url - a URL
        Returns:
        just the host
      • getBaseURL

        public static String getBaseURL​(String url)
        The basic URL without any parameters: >scheme<:>authority<.
        Parameters:
        url - a full URL
        Returns:
        the basic URL
      • getObjectURI

        public static String getObjectURI​(ParaObject obj,
                                          boolean includeName,
                                          boolean includeId)
        Returns the default URL for a given domain object.
        Parameters:
        obj - the domain object
        includeName - true if we want to include the name of the object in the URL
        includeId - true if we want to include the ID of the object in the URL
        Returns:
        the object's URL - e.g. /users/123-name, /users/, /users/123
      • isJsonType

        public static boolean isJsonType​(String contentType)
        Checks if a response is of type JSON.
        Parameters:
        contentType - the value of "Content-Type" header
        Returns:
        true if JSON
      • singularToPlural

        public static String singularToPlural​(String singul)
        Quick and dirty singular to plural conversion.
        Parameters:
        singul - a word
        Returns:
        a guess of its plural form
      • isBasicType

        public static boolean isBasicType​(Class<?> clazz)
        Checks if a class is primitive, String or a primitive wrapper.
        Parameters:
        clazz - a class
        Returns:
        true if primitive or wrapper
      • type

        public static String type​(Class<? extends ParaObject> clazz)
        Returns the simple name of a class in lowercase (AKA the type).
        Parameters:
        clazz - a core class
        Returns:
        just the name in lowercase or an empty string if clazz is null
      • getAllDeclaredFields

        public static List<Field> getAllDeclaredFields​(Class<? extends ParaObject> clazz)
        Returns a list of all declared fields in a class. Transient and serialVersionUID fields are skipped. This method scans parent classes as well.
        Parameters:
        clazz - a class to scan
        Returns:
        a list of fields including those of the parent classes excluding the Object class.
      • getNewId

        public static String getNewId()
        Distributed id generator. Relies on node/worker ids and datacenter ids to prevent collisions.
        Returns:
        a long unique ID string of digits