Class DatastoreIdentifierImpl

java.lang.Object
org.datanucleus.store.rdbms.identifier.DatastoreIdentifierImpl
All Implemented Interfaces:
DatastoreIdentifier
Direct Known Subclasses:
CandidateKeyIdentifier, ColumnIdentifier, ForeignKeyIdentifier, IndexIdentifier, PrimaryKeyIdentifier, SequenceIdentifier, TableIdentifier

public class DatastoreIdentifierImpl extends Object implements DatastoreIdentifier
Implementation of a datastore identifier. This can be something like a table name, column name, PK name, etc.
  • Field Details

    • dba

      protected final DatastoreAdapter dba
      Datastore adapter
    • factory

      protected final IdentifierFactory factory
      Datastore Identifier factory.
    • name

      protected String name
      The name.
    • catalogName

      protected String catalogName
      catalog
    • schemaName

      protected String schemaName
      schema
    • toString

      private String toString
      String representation to reduce number of times the toString is constructed
  • Constructor Details

    • DatastoreIdentifierImpl

      protected DatastoreIdentifierImpl(IdentifierFactory factory, String sqlIdentifier)
      Constructor.
      Parameters:
      factory - Identifier factory
      sqlIdentifier - The SQL identifier name
  • Method Details

    • toCase

      protected String toCase(String identifierName)
      Mutator for the sql identifier. Takes account of the DB policy on upper, lower and mixed case identifiers. Optionally can truncate the identifier if it exceeds the "getMaxLength()".
      Parameters:
      identifierName - The Identifier
      Returns:
      The cased identifier
    • getName

      public String getName()
      Accessor for the name.
      Specified by:
      getName in interface DatastoreIdentifier
      Returns:
      The name
    • setCatalogName

      public void setCatalogName(String catalogName)
      Sets the catalog
      Specified by:
      setCatalogName in interface DatastoreIdentifier
      Parameters:
      catalogName - The catalog
    • setSchemaName

      public void setSchemaName(String schemaName)
      Sets the schema
      Specified by:
      setSchemaName in interface DatastoreIdentifier
      Parameters:
      schemaName - The schema
    • getCatalogName

      public String getCatalogName()
      Accessor for the catalog
      Specified by:
      getCatalogName in interface DatastoreIdentifier
      Returns:
      The catalog
    • getSchemaName

      public String getSchemaName()
      Accessor for the schema
      Specified by:
      getSchemaName in interface DatastoreIdentifier
      Returns:
      The schema
    • hashCode

      public int hashCode()
      Hash code method.
      Overrides:
      hashCode in class Object
      Returns:
      The hash code
    • equals

      public boolean equals(Object obj)
      Equality operator to judge if 2 identifiers are equal.
      • Comparing NULL schema/owner names in one or both objects evaluates to true
      • Comparing NULL catalog names in one or both objects evaluates to true
      TODO change the below behavior. will require changing all places creating an identifier to set the catalog name and schema name from jdo metadata and/or metadata collected from the db
      Overrides:
      equals in class Object
      Parameters:
      obj - Object to compare against
      Returns:
      Whether they are equal
    • toString

      public String toString()
      Method to output the name of the identifier. This will be quoted where necessary. Will not include the catalog/schema names.
      Specified by:
      toString in interface DatastoreIdentifier
      Overrides:
      toString in class Object
      Returns:
      The identifier name with any necessary quoting
    • getFullyQualifiedName

      public final String getFullyQualifiedName(boolean adapterCase)
      Accessor for a fully-qualified version of the identifier name. Allows for catalog/schema (if specified and if supported)
      Specified by:
      getFullyQualifiedName in interface DatastoreIdentifier
      Parameters:
      adapterCase - Whether to use adapter case for the returned name
      Returns:
      The fully-qualified name