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 Summary
Constructors Modifier Constructor Description protected
Identifier(String text)
Constructs an unquoted identifier instance.Identifier(String text, boolean quoted)
Constructs an identifier instance.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static boolean
areEqual(Identifier id1, Identifier id2)
int
compareTo(Identifier o)
boolean
equals(Object o)
String
getCanonicalName()
String
getText()
Get the identifiers name (text)int
hashCode()
boolean
isQuoted()
Is this a quoted identifier?static boolean
isQuoted(String name)
Is the given identifier text considered quoted.static boolean
isQuoted(String name, int start, int end)
static Identifier
quote(Identifier identifier)
String
render()
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.static Identifier
toIdentifier(String text)
Means to generate anIdentifier
instance from its simple text form.static Identifier
toIdentifier(String text, boolean quote)
Means to generate anIdentifier
instance from its simple text form.static Identifier
toIdentifier(String text, boolean quote, boolean quoteOnNonIdentifierChar)
Means to generate anIdentifier
instance from its simple text form.String
toString()
static String
unQuote(String name)
-
-
-
Constructor Detail
-
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 Detail
-
toIdentifier
public static Identifier toIdentifier(String text)
Means to generate anIdentifier
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 wasnull
-
toIdentifier
public static Identifier toIdentifier(String text, boolean quote)
Means to generate anIdentifier
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 formquote
- Whether to quote unquoted text forms- Returns:
- The identifier form, or
null
if text wasnull
-
toIdentifier
public static Identifier toIdentifier(String text, boolean quote, boolean quoteOnNonIdentifierChar)
Means to generate anIdentifier
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 ]).
- Parameters:
text
- The text formquote
- Whether to quote unquoted text formsquoteOnNonIdentifierChar
- Controls whether to treat the result as quoted if text contains characters that are invalid for identifiers- Returns:
- The identifier form, or
null
if text wasnull
-
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)
-
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()
-
areEqual
public static boolean areEqual(Identifier id1, Identifier id2)
-
quote
public static Identifier quote(Identifier identifier)
-
compareTo
public int compareTo(Identifier o)
- Specified by:
compareTo
in interfaceComparable<Identifier>
-
-