Class Identifier

java.lang.Object
org.hibernate.boot.model.naming.Identifier
All Implemented Interfaces:
Comparable<Identifier>
Direct Known Subclasses:
DatabaseIdentifier

public class Identifier extends Object implements Comparable<Identifier>
Models an identifier (name), which may or may not be quoted.
  • Constructor Details

    • Identifier

      public Identifier(String text, boolean quoted)
      Constructs an identifier instance.
      Parameters:
      text - The identifier text.
      quoted - Is this a quoted identifier?
    • Identifier

      protected Identifier(String text)
      Constructs an unquoted identifier instance.
      Parameters:
      text - The identifier text.
  • Method Details

    • toIdentifier

      public static Identifier toIdentifier(String text)
      Means to generate an Identifier instance from its simple text form.

      If passed text is null, null is returned.

      If passed text is surrounded in quote markers, the generated Identifier is considered quoted. Quote markers include back-ticks (`), double-quotes (") and brackets ([ and ]). If the text, after trimming, contains a character that is not a valid identifier character, the identifier is treated as quoted.

      Parameters:
      text - The text form
      Returns:
      The identifier form, or null if text was null
    • toIdentifier

      public static Identifier toIdentifier(String text, boolean quote)
      Means to generate an Identifier instance from its simple text form.

      If passed text is null, null is returned.

      If passed text is surrounded in quote markers, the generated Identifier is considered quoted. Quote markers include back-ticks (`), double-quotes (") and brackets ([ and ]). If the text, after trimming, contains a character that is not a valid identifier character, the identifier is treated as quoted.

      Parameters:
      text - The text form
      quote - Whether to quote unquoted text forms
      Returns:
      The identifier form, or null if text was null
    • toIdentifier

      public static Identifier toIdentifier(String text, boolean quote, boolean autoquote)
      Means to generate an Identifier instance from its simple text form.

      If passed text is null, null is returned.

      If passed text is surrounded in quote markers, the returned Identifier is considered quoted. Quote markers include back-ticks (`), double-quotes ("), and brackets ([ and ]).

      Parameters:
      text - The text form
      quote - Whether to quote unquoted text forms
      autoquote - Whether to quote the result if it contains special characters
      Returns:
      The identifier form, or null if text was null
    • isQuoted

      public static boolean isQuoted(String name)
      Is the given identifier text considered quoted. The following patterns are recognized as quoted:
      • `name`
      • [name]
      • "name"

      That final form using double-quote (") is the JPA-defined quoting pattern. Although it is the standard, it makes for ugly declarations.

      Returns:
      true if the given identifier text is considered quoted; false otherwise.
    • isQuoted

      public static boolean isQuoted(String name, int start, int end)
    • unQuote

      public static String unQuote(String name)
    • getText

      public String getText()
      Get the identifiers name (text)
      Returns:
      The name
    • isQuoted

      public boolean isQuoted()
      Is this a quoted identifier?
      Returns:
      True if this is a quote identifier; false otherwise.
    • render

      public String render(Dialect dialect)
      If this is a quoted identifier, then return the identifier name enclosed in dialect-specific open- and end-quotes; otherwise, simply return the unquoted identifier.
      Parameters:
      dialect - The dialect whose dialect-specific quoting should be used.
      Returns:
      if quoted, identifier name enclosed in dialect-specific open- and end-quotes; otherwise, the unquoted identifier.
    • render

      public String render()
    • getCanonicalName

      public String getCanonicalName()
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object object)
      Overrides:
      equals in class Object
    • matches

      public boolean matches(String name)
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • areEqual

      public static boolean areEqual(Identifier id1, Identifier id2)
    • quote

      public static Identifier quote(Identifier identifier)
    • compareTo

      public int compareTo(Identifier identifier)
      Specified by:
      compareTo in interface Comparable<Identifier>