Class Identifier

  • All Implemented Interfaces:
    java.lang.Comparable<Identifier>
    Direct Known Subclasses:
    DatabaseIdentifier

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

      Constructors 
      Modifier Constructor Description
      protected Identifier​(java.lang.String text)
      Constructs an unquoted identifier instance.
        Identifier​(java.lang.String text, boolean quoted)
      Constructs an identifier instance.
    • Constructor Detail

      • Identifier

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

        protected Identifier​(java.lang.String text)
        Constructs an unquoted identifier instance.
        Parameters:
        text - The identifier text.
    • Method Detail

      • toIdentifier

        public static Identifier toIdentifier​(java.lang.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 (`), and double-quotes (").

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

        public static Identifier toIdentifier​(java.lang.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 (`), and double-quotes (").

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

        public static boolean isQuoted​(java.lang.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.

        Parameters:
        name -
        Returns:
        true if the given identifier text is considered quoted; false otherwise.
      • getText

        public java.lang.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 java.lang.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 java.lang.String render()
      • getCanonicalName

        public java.lang.String getCanonicalName()
      • toString

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

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • compareTo

        public int compareTo​(Identifier o)
        Specified by:
        compareTo in interface java.lang.Comparable<Identifier>