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 mapstatic 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
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
-
-
-
-
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.
-
-