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 1867515 2019-09-25 15:02:03Z gk $
  Author:
    John D. McNally, Daniel Rall, Greg Monroe
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static String` | `INIT_CLASS_NAME_FORMAT` | Format used to create create the class name for initializing a DB specific map
    `static char` | `SCHEMA_SEPARATOR_CHAR` | The character which separates the schema name from the table name.
    `static 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

    All Methods Instance Methods Concrete Methods
    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 Detail

    - #### 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 Detail

    - #### DatabaseMap

          public DatabaseMap​(Database database)

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

  - ### Method Detail

    - #### 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`