org.apache.torque.map
Class DatabaseMap

java.lang.Object
  extended by org.apache.torque.map.DatabaseMap
All Implemented Interfaces:
Serializable

public class DatabaseMap
extends Object
implements Serializable

DatabaseMap is used to model a database.

Version:
$Id: DatabaseMap.java 1375888 2012-08-22 03:51:00Z tfischer $
Author:
John D. McNally, Daniel Rall, Greg Monroe
See Also:
Serialized Form

Field Summary
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
DatabaseMap(Database database)
          Constructs a new DatabaseMap.
 
Method Summary
 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 getOption(String key)
          Returns the value of an option.
 Map<String,String> getOptions()
          Returns an unmodifiable map of all options.
 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.
 void setOption(String key, String value)
          Sets an option.
 String toString()
           
 
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.

Method Detail

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.

getOptions

public Map<String,String> getOptions()
Returns an unmodifiable map of all options.

Returns:
A map containing all options, not null.

setOption

public void setOption(String key,
                      String value)
Sets an option.

Parameters:
key - the key of the option
value - the value of the option.

getOption

public String getOption(String key)
Returns the value of an option.

Parameters:
key - the key of the option.
Returns:
the value of the option, or null if not set.

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


Copyright © 2000-2013 The Apache Software Foundation. All Rights Reserved.