Class DBIdentifier

java.lang.Object
org.apache.openjpa.lib.identifier.IdentifierImpl
org.apache.openjpa.jdbc.identifier.DBIdentifier
All Implemented Interfaces:
Serializable, Cloneable, Comparable<Identifier>, Identifier
Direct Known Subclasses:
QualifiedDBIdentifier

public class DBIdentifier extends IdentifierImpl implements Cloneable, Identifier, Serializable
Encapsulates a database identifier. With a few exceptions, this class is intended to treated as immutable.
See Also:
  • Field Details

    • NULL

      public static final DBIdentifier NULL
      Special NULL indicator for db identifiers.
    • _ignoreCase

      public boolean _ignoreCase
  • Constructor Details

  • Method Details

    • getIgnoreCase

      public boolean getIgnoreCase()
      Returns whether case is ignored during equality operations.
    • setIgnoreCase

      public void setIgnoreCase(boolean ignoreCase)
    • setName

      public void setName(String name)
      Set the name of the identifier.
      Specified by:
      setName in interface Identifier
      Overrides:
      setName in class IdentifierImpl
    • setName

      public void setName(DBIdentifier name)
      Set the name of this identifier based upon a given identifier.
    • setName

      public void setName(String name, boolean delimit)
      Set the name of the identifier and optionally force delimiting of the identifier.
    • setType

      protected void setType(DBIdentifier.DBIdentifierType type)
      Set the type of the identifier
    • getType

      Get the identifier type
      Returns:
      the identifier type
    • split

      public static DBIdentifier[] split(String name, DBIdentifier.DBIdentifierType id, String delim)
      Splits a string delimited by the specified delimiter of a given name type into an array of DBIdentifier objects. Example: COL1|"COL 2"|COL3 delim=| --> DBIdentifier[]{ COL1, "COL 2", COL3 }
    • join

      public static String join(DBIdentifier... names)
      Joins the list of identifiers using the appropriate delimiters and returns a string based identifier.
    • split

      public static DBIdentifier[] split(DBIdentifier.DBIdentifierType resultType, String name)
      Splits a given DBIdentifier into multiple DBIdentifiers. Uses the base name type and heuristics to determine the types and placement of the resulting components.
      Parameters:
      name -
    • isEmpty

      public static boolean isEmpty(DBIdentifier name)
      Returns true if the identifier is null or the name is null or empty.
      Parameters:
      name -
    • isNull

      public static boolean isNull(DBIdentifier name)
      Returns true if the identifier is null.
      Parameters:
      name -
    • clone

      public DBIdentifier clone()
      Clones an identifier using deep copy.
      Overrides:
      clone in class Object
    • trimToNull

      public static DBIdentifier trimToNull(DBIdentifier name)
      Returns a copy of an identifier with name trimmed to null.
      Parameters:
      name -
    • equals

      public boolean equals(Object obj)
      Equality operation for identifiers. Supports comparison with strings and objects of this type.
      Overrides:
      equals in class Object
    • isNull

      public boolean isNull()
      Returns true if this object is NULL or has a null name component.
    • compareTo

      public int compareTo(Identifier o)
      Comparison operator for identifiers.
      Specified by:
      compareTo in interface Comparable<Identifier>
      Overrides:
      compareTo in class IdentifierImpl
    • toArray

      public static DBIdentifier[] toArray(String[] columnNames, DBIdentifier.DBIdentifierType id)
      Converts the provided set of names to an array of identifiers of the provided type
      Parameters:
      columnNames -
      id -
    • toArray

      public static DBIdentifier[] toArray(String[] names, DBIdentifier.DBIdentifierType id, boolean delimit)
      Converts the provided set of names to an array of identifiers of the provided type, optionally delimiting the names.
      Parameters:
      names - columnNames or other DB identifier names
      id -
    • toStringArray

      public static String[] toStringArray(DBIdentifier[] sNames)
      Returns a string array of names based upon the provided set of identifiers.
      Parameters:
      sNames -
    • newCatalog

      public static DBIdentifier newCatalog(String name)
      Constructs a new identifier of type Catalog.
    • newCatalog

      public static DBIdentifier newCatalog(String name, boolean delimit)
      Constructs a new identifier of type Catalog ,optionally delimiting the name.
    • newTable

      public static DBIdentifier newTable(String name)
      Constructs a new identifier of type Table.
    • newTable

      public static DBIdentifier newTable(String name, boolean delimit)
      Constructs a new identifier of type Table, optionally delimiting the name.
    • newColumn

      public static DBIdentifier newColumn(String name)
      Constructs a new identifier of type Column.
    • newColumn

      public static DBIdentifier newColumn(String name, boolean delimit)
      Constructs a new identifier of type Column,optionally delimiting the name.
    • newSchema

      public static DBIdentifier newSchema(String name)
      Constructs a new identifier of type Schema.
    • newSchema

      public static DBIdentifier newSchema(String name, boolean delimit)
      Constructs a new identifier of type Schema, optionally delimiting the name.
    • newIndex

      public static DBIdentifier newIndex(String name)
      Constructs a new identifier of type Index.
    • newIndex

      public static DBIdentifier newIndex(String name, boolean delimit)
      Constructs a new identifier of type Index, optionally delimiting the name.
    • newSequence

      public static DBIdentifier newSequence(String name)
      Constructs a new identifier of type Sequence.
    • newSequence

      public static DBIdentifier newSequence(String name, boolean delimit)
      Constructs a new identifier of type Sequence, optionally delimiting the name.
    • newForeignKey

      public static DBIdentifier newForeignKey(String name)
      Constructs a new identifier of type ForeignKey.
    • newForeignKey

      public static DBIdentifier newForeignKey(String name, boolean delimit)
      Constructs a new identifier of type ForeignKey, optionally delimiting the name.
    • newConstraint

      public static DBIdentifier newConstraint(String name)
      Constructs a new identifier of type Constraint.
    • newConstraint

      public static DBIdentifier newConstraint(String name, boolean delimit)
      Constructs a new identifier of type Constraint, optionally delimiting the name.
    • newConstant

      public static DBIdentifier newConstant(String name)
      Constructs a new identifier of type Constant.
    • newColumnDefinition

      public static DBIdentifier newColumnDefinition(String name)
      Constructs a new identifier of type Column Definition.
    • newDefault

      public static DBIdentifier newDefault(String name)
      Constructs a new identifier of type Default.
    • newIdentifier

      protected static DBIdentifier newIdentifier(String name, DBIdentifier.DBIdentifierType id)
      Constructs a new identifier with the provided name and type
    • newIdentifier

      public static DBIdentifier newIdentifier(String name, DBIdentifier.DBIdentifierType id, boolean toUpper)
      Constructs a new identifier with the provided name an type. Optionally, converting the name to upper case.
    • newIdentifier

      protected static DBIdentifier newIdentifier(String name, DBIdentifier.DBIdentifierType id, boolean toUpper, boolean delimit)
      Constructs a new identifier (potentially a compound QualifiedDBIdentifier) with the provided name an type. Optionally, converting the name to upper case and delimiting it.
    • newProcedure

      public static DBIdentifier newProcedure(String name)
    • newIdentifier

      protected static DBIdentifier newIdentifier(String name, DBIdentifier.DBIdentifierType id, boolean toUpper, boolean delimit, boolean ignoreCase)
      Constructs a new identifier (potentially a compound QualifiedDBIdentifier) with the provided name an type. Optionally, converting the name to upper case and delimiting it.
    • equal

      public static boolean equal(DBIdentifier name1, DBIdentifier name2)
      Static equality method for comparing two identifiers.
      Parameters:
      name1 -
      name2 -
    • truncate

      public static DBIdentifier truncate(DBIdentifier name, int length)
      Returns a new DBIdentifier truncated to length
      Parameters:
      name -
      length -
    • append

      public static DBIdentifier append(DBIdentifier name, String str)
      Returns a new DBIdentifier with the given string appended.
      Parameters:
      name -
      length -
    • combine

      public static DBIdentifier combine(DBIdentifier name, String str)
      Returns a new DBIdentifier with the given string combined using delimiting rules and appropriate separators.
      Parameters:
      name -
      length -
    • toLower

      public static DBIdentifier toLower(DBIdentifier name)
      Returns a new DBIdentifier converted to lower case - if not delimited.
      Parameters:
      name -
    • toLower

      public static DBIdentifier toLower(DBIdentifier name, boolean force)
      Returns a new DBIdentifier converted to lower case. If delimited, force to lower case using force option.
      Parameters:
      name -
    • toUpper

      public static DBIdentifier toUpper(DBIdentifier name)
      Returns a new DBIdentifier converted to upper case - if not delimited.
      Parameters:
      name -
    • toUpper

      public static DBIdentifier toUpper(DBIdentifier name, boolean force)
      Returns a new DBIdentifier converted to upper case. If delimited, force to upper case using force option.
      Parameters:
      name -
    • removeLeading

      public static DBIdentifier removeLeading(DBIdentifier name, String leadingStr)
      Returns a new DBIdentifier with the specified leading string removed.
      Parameters:
      name -
    • removeHungarianNotation

      public static DBIdentifier removeHungarianNotation(DBIdentifier name)
      Returns a new DBIdentifier with Hungarian notation removed.
      Parameters:
      name -
    • equalsIgnoreCase

      public boolean equalsIgnoreCase(DBIdentifier name)
      Equality operator which ignores case.
    • equalsIgnoreCase

      public static boolean equalsIgnoreCase(DBIdentifier name1, DBIdentifier name2)
      Static equality operator which ignores case.
    • preCombine

      public static DBIdentifier preCombine(DBIdentifier name, String prefix)
      Returns a new identifier with a combined prefix and name using the standard name concatenation character ('_').
    • removeDelimiters

      public static DBIdentifier removeDelimiters(DBIdentifier name)
      Returns a new identifier with delimiters removed.
    • removeDelimitersAndMakeUpper

      public static DBIdentifier removeDelimitersAndMakeUpper(DBIdentifier name)
    • trim

      public static DBIdentifier trim(DBIdentifier name)
      Returns a new delimiter with leading and trailing spaces removed.
    • length

      public int length()
      The length of the name, including delimiting characters.
      Specified by:
      length in interface Identifier
      Overrides:
      length in class IdentifierImpl
    • isDelimited

      public boolean isDelimited()
      Returns true if the identifier is delimited.
    • combine

      public static DBIdentifier combine(DBIdentifier.DBIdentifierType id, String... names)
      Combines an array of names names using standard combining rules and returns an identifier of the specified type.
    • getUnqualifiedName

      public DBIdentifier getUnqualifiedName()
      Returns the unqualified name of this identifier.