Package org.apache.torque.map

# Class DatabaseMap

java.lang.Object
org.apache.torque.map.OptionSupport
org.apache.torque.map.DatabaseMap

All Implemented Interfaces:
  `Serializable`

public class DatabaseMap extends OptionSupport implements Serializable
DatabaseMap is used to model a database.

Version:
  $Id: DatabaseMap.java 1917245 2024-04-21 14:06:23Z tv $
Author:
  John D. McNally, Daniel Rall, Greg Monroe
See Also:
  - Serialized Form

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `INIT_CLASS_NAME_FORMAT`
  Format used to create create the class name for initializing a DB specific map
  `static final char`
  `SCHEMA_SEPARATOR_CHAR`
  The character which separates the schema name from the table name.
  `static final char`
  `STD_SEPARATOR_CHAR`
  The character used by most implementations as the separator between name elements.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DatabaseMap(Database database)`
  Constructs a new DatabaseMap.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `TableMap`
  `addTable(String tableName)`
  Add a new table to the database by name.
  `boolean`
  `containsTable(String name)`
  Does this database contain this specific table?
  `boolean`
  `containsTable(TableMap table)`
  Does this database contain this specific table?
  `void`
  `copyFrom(DatabaseMap databaseMap)`
  Copy all settings except the database from another database map.
  `String`
  `getName()`
  The name of the database to which this database map belongs.
  `TableMap`
  `getTable(String name)`
  Get a TableMap for the table by name.
  `TableMap[]`
  `getTables()`
  Get a TableMap[] of all of the tables in the database.
  `void`
  `initialize()`
  Fully populate this DatabaseMap with all the TablesMaps.
  `protected String`
  `javanameMethod(String schemaName)`
  Converts a database schema name to java object name.
  `void`
  `setIdTable(TableMap idTableMap)`
  Add a new TableMap to the database.
  `String`
  `toString()`

  ### Methods inherited from class org.apache.torque.map.OptionSupport

  `clearOptions, getOption, getOptions, setOption`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Field Details

  - ### STD_SEPARATOR_CHAR

    public static final char STD_SEPARATOR_CHAR
    The character used by most implementations as the separator between name elements.
    See Also:
      - Constant Field Values

  - ### SCHEMA_SEPARATOR_CHAR

    public static final char SCHEMA_SEPARATOR_CHAR
    The character which separates the schema name from the table name.
    See Also:
      - Constant Field Values

  - ### INIT_CLASS_NAME_FORMAT

    public static final String INIT_CLASS_NAME_FORMAT
    Format used to create create the class name for initializing a DB specific map
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### DatabaseMap

    public DatabaseMap(Database database)
    Constructs a new DatabaseMap.
    Parameters:
      `database` - the databsae to map
    Throws:
      `NullPointerException` - if the database is not provided

- ## Method Details

  - ### getName

    public String getName()
    The name of the database to which this database map belongs.
    Returns:
      the database name, not null.

  - ### containsTable

    public boolean containsTable(TableMap table)
    Does this database contain this specific table?
    Parameters:
      `table` - The TableMap representation of the table.
    Returns:
      True if the database contains the table.

  - ### containsTable

    public boolean containsTable(String name)
    Does this database contain this specific table?
    Parameters:
      `name` - The String representation of the table.
    Returns:
      True if the database contains the table.

  - ### getTable

    public TableMap getTable(String name)
    Get a TableMap for the table by name.

    Note that by default Torque uses lazy initialization to minimize memory usage and startup time. However, if an OM or PEER class has not called the table's MapBuilder class, it will not be here. See the optional initialize method if you need full OM Mapping.

    Parameters:
      `name` - Name of the table.
    Returns:
      A TableMap, null if the table was not found.

  - ### getTables

    public TableMap[] getTables()
    Get a TableMap[] of all of the tables in the database.

    Note that by default Torque uses lazy initialization to minimize memory usage and startup time. However, if an OM or PEER class has not called the table's MapBuilder class, it will not be here. See the optional initialize method if you need full OM Mapping.

    Returns:
      A TableMap[].

  - ### addTable

    public TableMap addTable(String tableName)
    Add a new table to the database by name. It creates an empty TableMap that you need to populate.
    Parameters:
      `tableName` - The name of the table.
    Returns:
      the new table map.

  - ### setIdTable

    public void setIdTable(TableMap idTableMap)
    Add a new TableMap to the database.
    Parameters:
      `idTableMap` - The TableMap representation.

  - ### initialize

    public void initialize() throws TorqueException
    Fully populate this DatabaseMap with all the TablesMaps. This is only needed if the application needs to use the complete OM mapping information. Otherwise, the OM Mapping information will be populated as needed by OM and Peer classes. An example of how to initialize the map info from the application:

    `DatabaseMap dbMap = Torque.getDatabaseMap( dbName ); try { dbMap.initialize(); } catch ( TorqueException e ) { ... error handling }` Note that Torque database names are case sensitive and this DB map must be retrieved with the exact name used in the XML schema.

    This uses Java reflection methods to locate and run the init() method of a class generated in the org.apache.torque.linkage package with a name based on the XML Database name value, e.g. org.apache.torque.linkage.DefaultMapInit

    Some misconfiguration situations that could cause this method to fail are:

    The class(es) in the org.apache.torque.linkage package were not included with the other generated class files (e.g. the jar file creation process only included com.* and not org.* files).

    Throws:
      `TorqueException` - If an error is encountered locating and calling the init method.

  - ### javanameMethod

    protected String javanameMethod(String schemaName)
    Converts a database schema name to java object name. Operates same as underscoreMethod but does not convert anything to lowercase. This must match the javaNameMethod in the JavaNameGenerator class in Generator code.
    Parameters:
      `schemaName` - name to be converted.
    Returns:
      converted name.

  - ### copyFrom

    public void copyFrom(DatabaseMap databaseMap)
    Copy all settings except the database from another database map.
    Parameters:
      `databaseMap` - the database map to copy from, not null.

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `Object`