Class StringHelper


  • public final class StringHelper
    extends Object
    • Method Detail

      • lastIndexOfLetter

        public static int lastIndexOfLetter​(String string)
      • joinWithQualifierAndSuffix

        public static String joinWithQualifierAndSuffix​(String[] values,
                                                        String qualifier,
                                                        String suffix,
                                                        String deliminator)
      • repeat

        public static String repeat​(String string,
                                    int times)
      • repeat

        public static String repeat​(String string,
                                    int times,
                                    String deliminator)
      • repeat

        public static String repeat​(char character,
                                    int times)
      • replace

        public static String replace​(String template,
                                     String placeholder,
                                     String replacement,
                                     boolean wholeWords)
      • replace

        public static String replace​(String template,
                                     String placeholder,
                                     String replacement,
                                     boolean wholeWords,
                                     boolean encloseInParensIfNecessary)
      • replace

        public static String replace​(String beforePlaceholder,
                                     String afterPlaceholder,
                                     String placeholder,
                                     String replacement,
                                     boolean wholeWords,
                                     boolean encloseInParensIfNecessary)
      • indexOfIdentifierWord

        public static int indexOfIdentifierWord​(String str,
                                                String word)
        Used to find the ordinal parameters (e.g. '?1') in a string.
      • getLastNonWhitespaceCharacter

        public static char getLastNonWhitespaceCharacter​(String str)
      • getFirstNonWhitespaceCharacter

        public static char getFirstNonWhitespaceCharacter​(String str)
      • split

        public static String[] split​(String separators,
                                     String list,
                                     boolean include)
      • splitTrimmingTokens

        public static String[] splitTrimmingTokens​(String separators,
                                                   String list,
                                                   boolean include)
      • unqualify

        public static String unqualify​(String qualifiedName)
      • qualifier

        public static String qualifier​(String qualifiedName)
      • collapse

        public static String collapse​(String name)
        Collapses a name. Mainly intended for use with classnames, where an example might serve best to explain. Imagine you have a class named 'org.hibernate.internal.util.StringHelper'; calling collapse on that classname will result in 'o.h.u.StringHelper'.
        Parameters:
        name - The name to collapse.
        Returns:
        The collapsed name.
      • collapseQualifier

        public static String collapseQualifier​(String qualifier,
                                               boolean includeDots)
        Given a qualifier, collapse it.
        Parameters:
        qualifier - The qualifier to collapse.
        includeDots - Should we include the dots in the collapsed form?
        Returns:
        The collapsed form.
      • partiallyUnqualify

        public static String partiallyUnqualify​(String name,
                                                String qualifierBase)
        Partially unqualifies a qualified name. For example, with a base of 'org.hibernate' the name 'org.hibernate.internal.util.StringHelper' would become 'util.StringHelper'.
        Parameters:
        name - The (potentially) qualified name.
        qualifierBase - The qualifier base.
        Returns:
        The name itself, or the partially unqualified form if it begins with the qualifier base.
      • collapseQualifierBase

        public static String collapseQualifierBase​(String name,
                                                   String qualifierBase)
        Cross between collapse(java.lang.String) and partiallyUnqualify(java.lang.String, java.lang.String). Functions much like collapse(java.lang.String) except that only the qualifierBase is collapsed. For example, with a base of 'org.hibernate' the name 'org.hibernate.internal.util.StringHelper' would become 'o.h.util.StringHelper'.
        Parameters:
        name - The (potentially) qualified name.
        qualifierBase - The qualifier base.
        Returns:
        The name itself if it does not begin with the qualifierBase, or the properly collapsed form otherwise.
      • root

        public static String root​(String qualifiedName)
      • unroot

        public static String unroot​(String qualifiedName)
      • toString

        public static String toString​(Object[] array)
      • count

        public static int count​(String text,
                                char match)
      • countUnquoted

        public static int countUnquoted​(String string,
                                        char character)
      • isNotEmpty

        public static boolean isNotEmpty​(String string)
      • isEmpty

        public static boolean isEmpty​(String string)
      • isBlank

        public static boolean isBlank​(String string)
      • qualifyConditionally

        public static String qualifyConditionally​(String prefix,
                                                  String name)
      • firstIndexOfChar

        public static int firstIndexOfChar​(String sqlString,
                                           BitSet keys,
                                           int startindex)
      • firstIndexOfChar

        public static int firstIndexOfChar​(String sqlString,
                                           String string,
                                           int startindex)
      • truncate

        public static String truncate​(String string,
                                      int length)
      • generateAlias

        public static String generateAlias​(String description)
      • generateAlias

        public static String generateAlias​(String description,
                                           int unique)
        Generate a nice alias for the given class name or collection role name and unique integer. Subclasses of Loader do not have to use aliases of this form.
        Parameters:
        description - The base name (usually an entity-name or collection-role)
        unique - A uniquing value
        Returns:
        an alias of the form foo1_
      • unqualifyEntityName

        public static String unqualifyEntityName​(String entityName)
      • moveAndToBeginning

        public static String moveAndToBeginning​(String filter)
      • isQuoted

        public static boolean isQuoted​(String name)
        Determine if the given string is quoted (wrapped by '`' characters at beginning and end).
        Parameters:
        name - The name to check.
        Returns:
        True if the given string starts and ends with '`'; false otherwise.
      • unquote

        public static String unquote​(String name)
        Return the unquoted version of name (stripping the start and end '`' characters if present).
        Parameters:
        name - The name to be unquoted.
        Returns:
        The unquoted version.
      • isQuoted

        public static boolean isQuoted​(String name,
                                       Dialect dialect)
        Determine if the given name is quoted. It is considered quoted if either:
        1. starts AND ends with backticks (`)
        2. starts with dialect-specified open-quote AND ends with dialect-specified close-quote
        Parameters:
        name - The name to check
        dialect - The dialect (to determine the "real" quoting chars).
        Returns:
        True if quoted, false otherwise
      • unquote

        public static String unquote​(String name,
                                     Dialect dialect)
        Return the unquoted version of name stripping the start and end quote characters.
        Parameters:
        name - The name to be unquoted.
        dialect - The dialect (to determine the "real" quoting chars).
        Returns:
        The unquoted version.
      • unquote

        public static String[] unquote​(String[] names,
                                       Dialect dialect)
        Return the unquoted version of name stripping the start and end quote characters.
        Parameters:
        names - The names to be unquoted.
        dialect - The dialect (to determine the "real" quoting chars).
        Returns:
        The unquoted versions.
      • nullIfEmpty

        public static String nullIfEmpty​(String value)
      • subStringNullIfEmpty

        public static String subStringNullIfEmpty​(String value,
                                                  Character startChar)
      • parseCommaSeparatedString

        public static List<String> parseCommaSeparatedString​(String incomingString)
      • getNonEmptyOrConjunctionIfBothNonEmpty

        public static String getNonEmptyOrConjunctionIfBothNonEmpty​(String firstExpression,
                                                                    String secondExpression)
        Parameters:
        firstExpression - the first expression
        secondExpression - the second expression
        Returns:
        if firstExpression and secondExpression are both non-empty, then "( " + firstExpression + " ) and ( " + secondExpression + " )" is returned; if firstExpression is non-empty and secondExpression is empty, then firstExpression is returned; if firstExpression is empty and secondExpression is non-empty, then secondExpression is returned; if both firstExpression and secondExpression are empty, then null is returned.
      • safeInterning

        public static String safeInterning​(String string)
        Return the interned form of a String, or null if the parameter is null.

        Use with caution: excessive interning is known to cause issues. Best to use only with strings which are known to be long lived constants, and for which the chances of being actual duplicates is proven. (Even better: avoid needing interning by design changes such as reusing the known reference)

        Parameters:
        string - The string to intern.
        Returns:
        The interned string.