Author: jgbutler
Date: Fri Sep 29 15:14:27 2006
New Revision: 451474
URL: http://svn.apache.org/viewvc?view=rev&rev=451474
Log:
Abator - Add support for "ignoreQualifiersAtRuntime" and "runtimeTableName"
properties on the <table> configuration element
Added:
ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/usage/oracle.html
Modified:
ibatis/trunk/java/mapper/mapper2/tools/abator/core/build/build.xml
ibatis/trunk/java/mapper/mapper2/tools/abator/core/build/version.properties
ibatis/trunk/java/mapper/mapper2/tools/abator/core/doc/ReleaseNotes.txt
ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/configreference/table.html
ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/menu.html
ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/usage/intro.html
ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/whatsNew.html
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/api/FullyQualifiedTable.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/api/dom/java/Field.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/api/dom/java/InnerClass.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/api/dom/java/InnerEnum.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/api/dom/java/Method.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/AbatorContext.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/db/DatabaseIntrospector.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/java/dao/BaseDAOGenerator.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/java/model/JavaModelGeneratorJava2Impl.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/sqlmap/SqlMapGeneratorIterateImpl.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/sqlmap/SqlMapGeneratorLegacyImpl.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/util/StringUtility.java
Modified: ibatis/trunk/java/mapper/mapper2/tools/abator/core/build/build.xml
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/build/build.xml?view=diff&rev=451474&r1=451473&r2=451474
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/build/build.xml
(original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/build/build.xml Fri Sep
29 15:14:27 2006
@@ -149,6 +149,7 @@
</target>
<target name="test.generate.test.code.java2" depends="test.prepare">
+ <echo message="Expect three warnings from Abator (BLOBSONLY,
NonExistantTable, FRED)" />
<!-- note that the class does not exist until the build runs.
Validating Ant editors will complain that the task cannot be
@@ -168,6 +169,8 @@
</target>
<target name="test.generate.test.code.java5" depends="test.prepare"
if="usingJava5">
+ <echo message="Expect three warnings from Abator (BLOBSONLY,
NonExistantTable, FRED)" />
+
<!-- note that the class does not exist until the build runs.
Validating Ant editors will complain that the task cannot be
found, but it's not really an error. -->
Modified:
ibatis/trunk/java/mapper/mapper2/tools/abator/core/build/version.properties
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/build/version.properties?view=diff&rev=451474&r1=451473&r2=451474
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/build/version.properties
(original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/build/version.properties
Fri Sep 29 15:14:27 2006
@@ -1,4 +1,4 @@
#Abator build version info
-#Tue Sep 26 14:22:03 CDT 2006
+#Fri Sep 29 16:33:41 CDT 2006
version=1.0.1
-buildNum=249
+buildNum=251
Modified:
ibatis/trunk/java/mapper/mapper2/tools/abator/core/doc/ReleaseNotes.txt
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/doc/ReleaseNotes.txt?view=diff&rev=451474&r1=451473&r2=451474
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/doc/ReleaseNotes.txt
(original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/doc/ReleaseNotes.txt Fri
Sep 29 15:14:27 2006
@@ -5,6 +5,8 @@
2. Add "clear" method to generated example classes in the Java2/Java5
generator sets
3. Fix bug - trimStrings on JavaModelGenerator not working
+4. Add support for "ignoreQualifiersAtRuntime" and "runtimeTableName" on
+ the <table> configuration
-------------------------------------------------------------------------------
Version 1.0.0:
Modified:
ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/configreference/table.html
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/configreference/table.html?view=diff&rev=451474&r1=451473&r2=451474
==============================================================================
---
ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/configreference/table.html
(original)
+++
ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/configreference/table.html
Fri Sep 29 15:14:27 2006
@@ -213,6 +213,26 @@
<code>setStartDate()</code>.</p>
<p><i>The default value is false.</i></p></td>
</tr>
+ <tr>
+ <td valign="top">ignoreQualifiersAtRuntime</td>
+ <td>If true, then
+ Abator will not add the schema or catalog to the table name in the
generated SQL.
+ This is useful if you have tables with the same name in several
schemas -
+ you can use Abator to generate objects based on the table in one
schema,
+ but not include the schema for runtime.</p>
+ <p><i>The default value is false.</i></p></td>
+ </tr>
+ <tr>
+ <td valign="top">runtimeTableName</td>
+ <td>If you specify a value for this property, than Abator will use that
+ value as the table name in the generated SQL rather than the
<code>tableName</code>
+ as configured above.
+ This is especially useful on Oracle if you want to generate objects to
use
+ a public synonym. In that case, you will need to generate the objects
against the
+ actual table that the synonym points to, then specify the synonym name
in
+ this property. You should also specify the
<code>ignoreQualifiersAtRuntime</code>
+ property in most cases with public synonyms.</td>
+ </tr>
</table>
<h2>Example</h2>
Modified: ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/menu.html
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/menu.html?view=diff&rev=451474&r1=451473&r2=451474
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/menu.html
(original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/menu.html Fri
Sep 29 15:14:27 2006
@@ -41,6 +41,7 @@
<a href="usage/intro.html" target="mainFrame">Database Specific
Information</a><br/>
<a href="usage/db2.html" target="mainFrame">DB2</a><br/>
<a href="usage/mysql.html" target="mainFrame">MySql</a><br/>
+ <a href="usage/oracle.html" target="mainFrame">Oracle</a><br/>
<a href="reference/intro.html" target="mainFrame">Other Reference
Information</a><br/>
<a href="reference/building.html" target="mainFrame">Building
Abator from Source</a><br/>
Modified:
ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/usage/intro.html
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/usage/intro.html?view=diff&rev=451474&r1=451473&r2=451474
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/usage/intro.html
(original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/usage/intro.html
Fri Sep 29 15:14:27 2006
@@ -14,6 +14,7 @@
<ul>
<li><a href="db2.html">DB2</a></li>
<li><a href="mysql.html">MySql</a></li>
+ <li><a href="oracle.html">Oracle</a></li>
</ul>
<p>Please let us know about any quirks you discover for the database you are
using - we will
be happy to add the information
Added:
ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/usage/oracle.html
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/usage/oracle.html?view=auto&rev=451474
==============================================================================
---
ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/usage/oracle.html
(added)
+++
ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/usage/oracle.html
Fri Sep 29 15:14:27 2006
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3c.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>Abator Oracle Usage Notes</title>
+ <link type="text/css" rel="stylesheet" href="../abator.css"/>
+</head>
+<body>
+<h1>Abator Oracle Usage Notes</h1>
+<h2>Public Synonyms</h2>
+<p>If you want to generate objects for a table that has a public synonym, you
+should actually generate the objects against the real table - and then change
the
+table name at runtime. Abator supports this automatically.</p>
+<p>For example, assume there is a public alias "FRED" that points the the
+table "HR.EMPLOYEES". The following table configuration will generate the
objects
+based on HR.EMPLOYEES, but the runtime SQL will only refer to FRED:</p>
+<pre>
+ <table schema="HR" tableName="EMPLOYEES" alias="A">
+ <property name="ignoreQualifiersAtRuntime" value="true" />
+ <property name="runtimeTableName" value="FRED" />
+ </table>
+</pre>
+</body>
+</html>
Modified:
ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/whatsNew.html
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/whatsNew.html?view=diff&rev=451474&r1=451473&r2=451474
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/whatsNew.html
(original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/whatsNew.html
Fri Sep 29 15:14:27 2006
@@ -9,8 +9,19 @@
</head>
<body>
<h1>What's New in Abator</h1>
-<p>Version 1.0.0 is a significant update to Abator from the prior version
0.6.5.
-Many new features have been added as detailed below.</p>
+<h2>Version 1.0.1 Miscellaneous Changes</h2>
+<ul>
+ <li>Added the ability to specify properties to ignore qualifiers and change
runtime
+ table names in the generated SQL for a table. Primary use cases for this
+ support include:
+ <ul>
+ <li>Generating objects for a table that has a public synonym in
Oracle</li>
+ <li>Generating objects for a table that exists in many schemas, and the
+ schema will be selected at runtime</li>
+ </ul>
+ See the <a href="configreference/table.html"><table></a>
+ reference page for more information.</li>
+</ul>
<h2>Generator Sets (Version 1.0.0)</h2>
<p>A generator set is a set of
Modified:
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/api/FullyQualifiedTable.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/api/FullyQualifiedTable.java?view=diff&rev=451474&r1=451473&r2=451474
==============================================================================
---
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/api/FullyQualifiedTable.java
(original)
+++
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/api/FullyQualifiedTable.java
Fri Sep 29 15:14:27 2006
@@ -34,17 +34,56 @@
private String domainObjectName;
private String alias;
+
+ private boolean ignoreQualifiersAtRuntime;
+
+ private String runtimeTableName;
- /**
- *
- */
+ /**
+ * This object is used to hold information related to the table itself,
+ * not the columns in the table.
+ *
+ * @param catalog the actual catalog of the table as returned from
+ * DatabaseMetaData. This value should only be set if the user
+ * configured a catalog. Otherwise the DatabaseMetaData is reporting
+ * some database default that we don't want in the generated code.
+ *
+ * @param schema the actual schema of the table as returned from
+ * DatabaseMetaData. This value should only be set if the user
+ * configured a schema. Otherwise the DatabaseMetaData is reporting
+ * some database default that we don't want in the generated code.
+ *
+ * @param tableName the actual table name as returned from DatabaseMetaData
+ *
+ * @param domainObjectName the configred domain object name for this table.
+ * If nothing is configured, we'll build the domain object named based
+ * on the tableName or runtimeTableName.
+ *
+ * @param alias a configured alias for the table. This alias will be
+ * added to the table name in the SQL
+ *
+ * @param ignoreQualifiersAtRuntime if true, then the catalog and schema
+ * qualifiers will be ignored when composing fully qualified names in
+ * the generated SQL. This is used, for example, when the user needs
+ * to specify a specific schema for generating code but does not want
+ * the schema in the generated SQL
+ *
+ * @param runtimeTableName this is used to "rename" the table in the
+ * generated SQL. This is usefule, for example, when generating code
+ * to run with an Oracle synonym. The user would have to specify
+ * the actual table name and schema for generation, but would want to
+ * use the synonym name in the generated SQL
+ */
public FullyQualifiedTable(String catalog, String schema, String
tableName,
- String domainObjectName, String alias) {
+ String domainObjectName, String alias, boolean
ignoreQualifiersAtRuntime,
+ String runtimeTableName) {
super();
this.catalog = catalog;
this.schema = schema;
this.tableName = tableName;
this.domainObjectName = domainObjectName;
+ this.ignoreQualifiersAtRuntime = ignoreQualifiersAtRuntime;
+ this.runtimeTableName = runtimeTableName;
if (alias == null) {
this.alias = null;
@@ -65,14 +104,23 @@
return tableName;
}
- public String getFullyQualifiedTableName() {
- return StringUtility.composeFullyQualifiedTableName(catalog, schema,
tableName);
+ public String getFullyQualifiedTableNameAsConfigured() {
+ return StringUtility.composeFullyQualifiedTableName(
+ catalog, schema, tableName, '.');
}
- public String getAliasedFullyQualifiedTableName() {
+ public String getFullyQualifiedTableNameAtRuntime() {
+ return StringUtility.composeFullyQualifiedTableName(
+ ignoreQualifiersAtRuntime ? null : catalog,
+ ignoreQualifiersAtRuntime ? null : schema,
+ StringUtility.stringHasValue(runtimeTableName) ?
runtimeTableName : tableName,
+ '.');
+ }
+
+ public String getAliasedFullyQualifiedTableNameAtRuntime() {
StringBuffer sb = new StringBuffer();
- sb.append(getFullyQualifiedTableName());
+ sb.append(getFullyQualifiedTableNameAtRuntime());
if(StringUtility.stringHasValue(alias)) {
sb.append(' ');
@@ -82,31 +130,19 @@
return sb.toString();
}
- public String getFullyQualifiedTableNameWithUnderscores() {
- StringBuffer sb = new StringBuffer();
-
- if (StringUtility.stringHasValue(catalog)) {
- sb.append(catalog);
- sb.append('_');
- }
-
- if (StringUtility.stringHasValue(schema)) {
- sb.append(schema);
- sb.append('_');
- } else {
- if (sb.length() > 0) {
- sb.append('_');
- }
- }
-
- sb.append(tableName);
-
- return sb.toString();
+ public String getFullyQualifiedTableNameWithUnderscoresAtRuntime() {
+ return StringUtility.composeFullyQualifiedTableName(
+ ignoreQualifiersAtRuntime ? null : catalog,
+ ignoreQualifiersAtRuntime ? null : schema,
+ StringUtility.stringHasValue(runtimeTableName) ?
runtimeTableName : tableName,
+ '_');
}
public String getDomainObjectName() {
if (StringUtility.stringHasValue(domainObjectName)) {
return domainObjectName;
+ } else if (StringUtility.stringHasValue(runtimeTableName)) {
+ return JavaBeansUtil.getCamelCaseString(runtimeTableName, true);
} else {
return JavaBeansUtil.getCamelCaseString(tableName,
true);
}
@@ -138,10 +174,34 @@
}
public String toString() {
- return getFullyQualifiedTableName();
+ return getFullyQualifiedTableNameAsConfigured();
}
public String getAlias() {
return alias;
+ }
+
+ /**
+ * Calculates a Java package fragment based on the
+ * table catalog and schema. If qualifiers are ignored,
+ * then this method will return an empty string
+ *
+ * @return
+ */
+ public String getSubPackage() {
+ StringBuffer sb = new StringBuffer();
+ if (!ignoreQualifiersAtRuntime) {
+ if (StringUtility.stringHasValue(catalog)) {
+ sb.append('.');
+ sb.append(catalog.toLowerCase());
+ }
+
+ if (StringUtility.stringHasValue(schema)) {
+ sb.append('.');
+ sb.append(schema.toLowerCase());
+ }
+ }
+
+ return sb.toString();
}
}
Modified:
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/api/dom/java/Field.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/api/dom/java/Field.java?view=diff&rev=451474&r1=451473&r2=451474
==============================================================================
---
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/api/dom/java/Field.java
(original)
+++
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/api/dom/java/Field.java
Fri Sep 29 15:14:27 2006
@@ -135,7 +135,7 @@
addJavaDocLine(" * This field was generated by Abator for iBATIS.");
//$NON-NLS-1$
sb.append(" * This field corresponds to the database column ");
//$NON-NLS-1$
- sb.append(table.getFullyQualifiedTableName());
+ sb.append(table.getFullyQualifiedTableNameAsConfigured());
sb.append('.');
sb.append(columnName);
addJavaDocLine(sb.toString());
@@ -157,7 +157,7 @@
addJavaDocLine(" * This field was generated by Abator for iBATIS.");
//$NON-NLS-1$
sb.append(" * This field corresponds to the database table ");
//$NON-NLS-1$
- sb.append(table.getFullyQualifiedTableName());
+ sb.append(table.getFullyQualifiedTableNameAsConfigured());
addJavaDocLine(sb.toString());
addJavaDocLine(" *"); //$NON-NLS-1$
Modified:
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/api/dom/java/InnerClass.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/api/dom/java/InnerClass.java?view=diff&rev=451474&r1=451473&r2=451474
==============================================================================
---
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/api/dom/java/InnerClass.java
(original)
+++
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/api/dom/java/InnerClass.java
Fri Sep 29 15:14:27 2006
@@ -258,7 +258,7 @@
addJavaDocLine(" * This class was generated by Abator for iBATIS.");
//$NON-NLS-1$
sb.append(" * This class corresponds to the database table ");
//$NON-NLS-1$
- sb.append(table.getFullyQualifiedTableName());
+ sb.append(table.getFullyQualifiedTableNameAsConfigured());
addJavaDocLine(sb.toString());
addJavaDocLine(" *"); //$NON-NLS-1$
Modified:
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/api/dom/java/InnerEnum.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/api/dom/java/InnerEnum.java?view=diff&rev=451474&r1=451473&r2=451474
==============================================================================
---
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/api/dom/java/InnerEnum.java
(original)
+++
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/api/dom/java/InnerEnum.java
Fri Sep 29 15:14:27 2006
@@ -255,7 +255,7 @@
addJavaDocLine(" * This enum was generated by Abator for iBATIS.");
//$NON-NLS-1$
sb.append(" * This enum corresponds to the database table ");
//$NON-NLS-1$
- sb.append(table.getFullyQualifiedTableName());
+ sb.append(table.getFullyQualifiedTableNameAsConfigured());
addJavaDocLine(sb.toString());
addJavaDocLine(" *"); //$NON-NLS-1$
Modified:
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/api/dom/java/Method.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/api/dom/java/Method.java?view=diff&rev=451474&r1=451473&r2=451474
==============================================================================
---
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/api/dom/java/Method.java
(original)
+++
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/api/dom/java/Method.java
Fri Sep 29 15:14:27 2006
@@ -268,7 +268,7 @@
addJavaDocLine(" * This method was generated by Abator for iBATIS.");
//$NON-NLS-1$
sb.append(" * This method returns the value of the database column ");
//$NON-NLS-1$
- sb.append(table.getFullyQualifiedTableName());
+ sb.append(table.getFullyQualifiedTableNameAsConfigured());
sb.append('.');
sb.append(columnDefinition.getColumnName());
addJavaDocLine(sb.toString());
@@ -277,7 +277,7 @@
sb.setLength(0);
sb.append(" * @return the value of "); //$NON-NLS-1$
- sb.append(table.getFullyQualifiedTableName());
+ sb.append(table.getFullyQualifiedTableNameAsConfigured());
sb.append('.');
sb.append(columnDefinition.getColumnName());
addJavaDocLine(sb.toString());
@@ -299,7 +299,7 @@
addJavaDocLine(" * This method was generated by Abator for iBATIS.");
//$NON-NLS-1$
sb.append(" * This method sets the value of the database column ");
//$NON-NLS-1$
- sb.append(table.getFullyQualifiedTableName());
+ sb.append(table.getFullyQualifiedTableNameAsConfigured());
sb.append('.');
sb.append(columnDefinition.getColumnName());
addJavaDocLine(sb.toString());
@@ -310,7 +310,7 @@
sb.append(" * @param "); //$NON-NLS-1$
sb.append(columnDefinition.getJavaProperty());
sb.append(" the value for "); //$NON-NLS-1$
- sb.append(table.getFullyQualifiedTableName());
+ sb.append(table.getFullyQualifiedTableNameAsConfigured());
sb.append('.');
sb.append(columnDefinition.getColumnName());
addJavaDocLine(sb.toString());
@@ -332,7 +332,7 @@
addJavaDocLine(" * This method was generated by Abator for iBATIS.");
//$NON-NLS-1$
sb.append(" * This method corresponds to the database table ");
//$NON-NLS-1$
- sb.append(table.getFullyQualifiedTableName());
+ sb.append(table.getFullyQualifiedTableNameAsConfigured());
addJavaDocLine(sb.toString());
addJavaDocLine(" *"); //$NON-NLS-1$
Modified:
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/AbatorContext.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/AbatorContext.java?view=diff&rev=451474&r1=451473&r2=451474
==============================================================================
---
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/AbatorContext.java
(original)
+++
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/AbatorContext.java
Fri Sep 29 15:14:27 2006
@@ -198,7 +198,7 @@
&&
!StringUtility.stringHasValue(tc.getGeneratedKey()
.getSqlStatement())) {
String tableName = StringUtility.composeFullyQualifiedTableName(
- tc.getCatalog(), tc.getSchema(), tc.getTableName());
+ tc.getCatalog(), tc.getSchema(), tc.getTableName(), '.');
errors
.add(Messages.getString("ValidationError.7",
//$NON-NLS-1$
tableName));
@@ -246,7 +246,7 @@
while (iter.hasNext()) {
TableConfiguration tc = (TableConfiguration)
iter.next();
String tableName =
StringUtility.composeFullyQualifiedTableName(
- tc.getCatalog(), tc.getSchema(), tc.getTableName());
+ tc.getCatalog(), tc.getSchema(), tc.getTableName(),
'.');
if (!tc.areAnyStatementsEnabled()) {
warnings.add(Messages.getString("Warning.0", tableName)); //$NON-NLS-1$
Modified:
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/db/DatabaseIntrospector.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/db/DatabaseIntrospector.java?view=diff&rev=451474&r1=451473&r2=451474
==============================================================================
---
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/db/DatabaseIntrospector.java
(original)
+++
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/db/DatabaseIntrospector.java
Fri Sep 29 15:14:27 2006
@@ -138,7 +138,9 @@
FullyQualifiedTable table = new FullyQualifiedTable(
StringUtility.stringHasValue(tc.getCatalog()) ? catalog :
null,
StringUtility.stringHasValue(tc.getSchema()) ? schema :
null,
- tableName, tc.getDomainObjectName(), tc.getAlias());
+ tableName, tc.getDomainObjectName(), tc.getAlias(),
+ "true".equalsIgnoreCase((String)
tc.getProperties().get("ignoreQualifiersAtRuntime")), //$NON-NLS-1$
//$NON-NLS-2$
+ (String)
tc.getProperties().get("runtimeTableName"));//$NON-NLS-1$
ColumnOverride columnOverride = tc.getColumnOverride(cd
.getColumnName());
@@ -146,7 +148,7 @@
if (columnOverride == null
|| !StringUtility.stringHasValue(columnOverride
.getJavaProperty())) {
- if
("true".equals(tc.getProperties().get("useActualColumnNames"))) { //$NON-NLS-1$
//$NON-NLS-2$
+ if ("true".equalsIgnoreCase((String)
tc.getProperties().get("useActualColumnNames"))) { //$NON-NLS-1$ //$NON-NLS-2$
cd.setJavaProperty(JavaBeansUtil.getValidPropertyName(cd
.getColumnName()));
} else {
@@ -163,7 +165,7 @@
// if the type is not supported, then we'll report a warning
and
// ignore the column
warnings.add(Messages.getString("Warning.14", //$NON-NLS-1$
- table.getFullyQualifiedTableName(),
+ table.getFullyQualifiedTableNameAsConfigured(),
cd.getColumnName()));
continue;
}
@@ -201,10 +203,10 @@
if (!tc.isColumnIgnored(cd.getColumnName())) {
IntrospectedTableImpl introspectedTable =
- (IntrospectedTableImpl)
introspectedTables.get(table.getFullyQualifiedTableName());
+ (IntrospectedTableImpl)
introspectedTables.get(table.getFullyQualifiedTableNameAsConfigured());
if (introspectedTable == null) {
introspectedTable = new IntrospectedTableImpl(tc, new
ColumnDefinitions(), table);
- introspectedTables.put(table.getFullyQualifiedTableName(),
introspectedTable);
+
introspectedTables.put(table.getFullyQualifiedTableNameAsConfigured(),
introspectedTable);
}
introspectedTable.getColumnDefinitions().addColumn(cd);
@@ -238,12 +240,12 @@
if (!cds.hasAnyColumns()) {
// add warning that the table has no columns, remove from the
list
- warnings.add(Messages.getString("Warning.1",
introspectedTable.getTable().getFullyQualifiedTableName())); //$NON-NLS-1$
+ warnings.add(Messages.getString("Warning.1",
introspectedTable.getTable().getFullyQualifiedTableNameAsConfigured()));
//$NON-NLS-1$
iter.remove();
} else if (!cds.hasPrimaryKeyColumns()
&& !cds.hasBaseColumns()) {
// add warning that the table has only BLOB columns, remove
from the list
- warnings.add(Messages.getString("Warning.18",
introspectedTable.getTable().getFullyQualifiedTableName())); //$NON-NLS-1$
+ warnings.add(Messages.getString("Warning.18",
introspectedTable.getTable().getFullyQualifiedTableNameAsConfigured()));
//$NON-NLS-1$
iter.remove();
} else {
// now make sure that all columns called out in the
configuration
Modified:
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/java/dao/BaseDAOGenerator.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/java/dao/BaseDAOGenerator.java?view=diff&rev=451474&r1=451473&r2=451474
==============================================================================
---
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/java/dao/BaseDAOGenerator.java
(original)
+++
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/java/dao/BaseDAOGenerator.java
Fri Sep 29 15:14:27 2006
@@ -213,7 +213,7 @@
List list = new ArrayList();
String tableName = introspectedTable.getTable()
- .getFullyQualifiedTableName();
+ .getFullyQualifiedTableNameAsConfigured();
callback.startSubTask(Messages.getString("Progress.10", //$NON-NLS-1$
tableName));
@@ -1110,15 +1110,7 @@
if (s == null) {
StringBuffer sb = new StringBuffer(targetPackage);
if ("true".equals(properties.get("enableSubPackages"))) {
//$NON-NLS-1$ //$NON-NLS-2$
- if (StringUtility.stringHasValue(table.getCatalog())) {
- sb.append('.');
- sb.append(table.getCatalog().toLowerCase());
- }
-
- if (StringUtility.stringHasValue(table.getSchema())) {
- sb.append('.');
- sb.append(table.getSchema().toLowerCase());
- }
+ sb.append(table.getSubPackage());
}
s = sb.toString();
Modified:
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/java/model/JavaModelGeneratorJava2Impl.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/java/model/JavaModelGeneratorJava2Impl.java?view=diff&rev=451474&r1=451473&r2=451474
==============================================================================
---
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/java/model/JavaModelGeneratorJava2Impl.java
(original)
+++
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/java/model/JavaModelGeneratorJava2Impl.java
Fri Sep 29 15:14:27 2006
@@ -230,24 +230,12 @@
Map map = getTableValueMap(table);
s = (String) map.get(key);
if (s == null) {
+ StringBuffer sb = new StringBuffer(targetPackage);
if ("true".equals(properties.get("enableSubPackages"))) {
//$NON-NLS-1$ //$NON-NLS-2$
- StringBuffer sb = new StringBuffer(targetPackage);
-
- if (StringUtility.stringHasValue(table.getCatalog())) {
- sb.append('.');
- sb.append(table.getCatalog().toLowerCase());
- }
-
- if (StringUtility.stringHasValue(table.getSchema())) {
- sb.append('.');
- sb.append(table.getSchema().toLowerCase());
- }
-
- s = sb.toString();
- } else {
- s = targetPackage;
+ sb.append(table.getSubPackage());
}
-
+
+ s = sb.toString();
map.put(key, s);
}
@@ -370,7 +358,7 @@
List list = new ArrayList();
String tableName = introspectedTable.getTable()
- .getFullyQualifiedTableName();
+ .getFullyQualifiedTableNameAsConfigured();
callback.startSubTask(Messages.getString(
"Progress.6", //$NON-NLS-1$
Modified:
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/sqlmap/SqlMapGeneratorIterateImpl.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/sqlmap/SqlMapGeneratorIterateImpl.java?view=diff&rev=451474&r1=451473&r2=451474
==============================================================================
---
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/sqlmap/SqlMapGeneratorIterateImpl.java
(original)
+++
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/sqlmap/SqlMapGeneratorIterateImpl.java
Fri Sep 29 15:14:27 2006
@@ -130,7 +130,7 @@
FullyQualifiedTable table = introspectedTable.getTable();
callback.startSubTask(Messages.getString(
"Progress.12", //$NON-NLS-1$
- table.getFullyQualifiedTableName()));
+ table.getFullyQualifiedTableNameAsConfigured()));
list.add(getSqlMap(introspectedTable));
return list;
@@ -406,7 +406,7 @@
StringBuffer valuesClause = new StringBuffer();
insertClause.append("insert into "); //$NON-NLS-1$
- insertClause.append(table.getFullyQualifiedTableName());
+ insertClause.append(table.getFullyQualifiedTableNameAtRuntime());
insertClause.append(" ("); //$NON-NLS-1$
valuesClause.append("values ("); //$NON-NLS-1$
@@ -477,7 +477,7 @@
StringBuffer sb = new StringBuffer();
sb.append("update "); //$NON-NLS-1$
- sb.append(table.getFullyQualifiedTableName());
+ sb.append(table.getFullyQualifiedTableNameAtRuntime());
answer.addElement(new TextElement(sb.toString()));
// set up for first column
@@ -549,7 +549,7 @@
StringBuffer sb = new StringBuffer();
sb.append("update "); //$NON-NLS-1$
- sb.append(table.getFullyQualifiedTableName());
+ sb.append(table.getFullyQualifiedTableNameAtRuntime());
answer.addElement(new TextElement(sb.toString()));
// set up for first column
@@ -626,7 +626,7 @@
StringBuffer sb = new StringBuffer();
sb.append("delete from "); //$NON-NLS-1$
- sb.append(table.getFullyQualifiedTableName());
+ sb.append(table.getFullyQualifiedTableNameAtRuntime());
answer.addElement(new TextElement(sb.toString()));
boolean and = false;
@@ -675,7 +675,7 @@
StringBuffer sb = new StringBuffer();
sb.append("delete from "); //$NON-NLS-1$
- sb.append(table.getAliasedFullyQualifiedTableName());
+ sb.append(table.getAliasedFullyQualifiedTableNameAtRuntime());
answer.addElement(new TextElement(sb.toString()));
XmlElement includeElement = new XmlElement("include"); //$NON-NLS-1$
@@ -755,7 +755,7 @@
sb.setLength(0);
sb.append("from "); //$NON-NLS-1$
- sb.append(table.getAliasedFullyQualifiedTableName());
+ sb.append(table.getAliasedFullyQualifiedTableNameAtRuntime());
answer.addElement(new TextElement(sb.toString()));
boolean and = false;
@@ -816,7 +816,7 @@
Map map = getTableStringMap(table);
s = (String) map.get(key);
if (s == null) {
- s = table.getFullyQualifiedTableNameWithUnderscores();
+ s = table.getFullyQualifiedTableNameWithUnderscoresAtRuntime();
map.put(key, s);
}
@@ -870,7 +870,7 @@
s = (String) map.get(key);
if (s == null) {
StringBuffer sb = new StringBuffer();
- sb.append(table.getFullyQualifiedTableNameWithUnderscores());
+
sb.append(table.getFullyQualifiedTableNameWithUnderscoresAtRuntime());
sb.append("_SqlMap.xml"); //$NON-NLS-1$
@@ -971,24 +971,12 @@
Map map = getTableStringMap(table);
s = (String) map.get(key);
if (s == null) {
- if ("true".equals(properties.get("enableSubPackages"))) {
//$NON-NLS-1$ //$NON-NLS-2$
- StringBuffer sb = new StringBuffer(targetPackage);
-
- if (StringUtility.stringHasValue(table.getCatalog())) {
- sb.append('.');
- sb.append(table.getCatalog().toLowerCase());
- }
-
- if (StringUtility.stringHasValue(table.getSchema())) {
- sb.append('.');
- sb.append(table.getSchema().toLowerCase());
- }
-
- s = sb.toString();
- } else {
- s = targetPackage;
+ StringBuffer sb = new StringBuffer(targetPackage);
+ if ("true".equals(properties.get("enableSubPackages"))) {
//$NON-NLS-1$ //$NON-NLS-2$
+ sb.append(table.getSubPackage());
}
-
+
+ s = sb.toString();
map.put(key, s);
}
@@ -1257,7 +1245,7 @@
sb.setLength(0);
sb.append("from "); //$NON-NLS-1$
- sb.append(table.getAliasedFullyQualifiedTableName());
+ sb.append(table.getAliasedFullyQualifiedTableNameAtRuntime());
answer.addElement((new TextElement(sb.toString())));
XmlElement isParameterPresenteElement =
@@ -1329,7 +1317,7 @@
sb.setLength(0);
sb.append("from "); //$NON-NLS-1$
- sb.append(table.getAliasedFullyQualifiedTableName());
+ sb.append(table.getAliasedFullyQualifiedTableNameAtRuntime());
answer.addElement(new TextElement(sb.toString()));
XmlElement isParameterPresenteElement =
@@ -1401,7 +1389,7 @@
StringBuffer sb = new StringBuffer();
sb.append("update "); //$NON-NLS-1$
- sb.append(table.getFullyQualifiedTableName());
+ sb.append(table.getFullyQualifiedTableNameAtRuntime());
answer.addElement(new TextElement(sb.toString()));
XmlElement dynamicElement = new XmlElement("dynamic"); //$NON-NLS-1$
Modified:
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/sqlmap/SqlMapGeneratorLegacyImpl.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/sqlmap/SqlMapGeneratorLegacyImpl.java?view=diff&rev=451474&r1=451473&r2=451474
==============================================================================
---
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/sqlmap/SqlMapGeneratorLegacyImpl.java
(original)
+++
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/sqlmap/SqlMapGeneratorLegacyImpl.java
Fri Sep 29 15:14:27 2006
@@ -62,7 +62,7 @@
StringBuffer sb = new StringBuffer();
sb.append("delete from "); //$NON-NLS-1$
- sb.append(table.getAliasedFullyQualifiedTableName());
+ sb.append(table.getAliasedFullyQualifiedTableNameAtRuntime());
answer.addElement(new TextElement(sb.toString()));
XmlElement includeElement = new XmlElement("include"); //$NON-NLS-1$
@@ -173,7 +173,7 @@
sb.setLength(0);
sb.append("from "); //$NON-NLS-1$
- sb.append(table.getAliasedFullyQualifiedTableName());
+ sb.append(table.getAliasedFullyQualifiedTableNameAtRuntime());
answer.addElement((new TextElement(sb.toString())));
XmlElement isParameterPresenteElement =
@@ -240,7 +240,7 @@
sb.setLength(0);
sb.append("from "); //$NON-NLS-1$
- sb.append(table.getAliasedFullyQualifiedTableName());
+ sb.append(table.getAliasedFullyQualifiedTableNameAtRuntime());
answer.addElement((new TextElement(sb.toString())));
XmlElement isParameterPresenteElement =
Modified:
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/util/StringUtility.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/util/StringUtility.java?view=diff&rev=451474&r1=451473&r2=451474
==============================================================================
---
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/util/StringUtility.java
(original)
+++
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/util/StringUtility.java
Fri Sep 29 15:14:27 2006
@@ -33,20 +33,20 @@
}
public static String composeFullyQualifiedTableName(String catalog, String
schema,
- String tableName) {
+ String tableName, char separator) {
StringBuffer sb = new StringBuffer();
if (stringHasValue(catalog)) {
sb.append(catalog);
- sb.append('.');
+ sb.append(separator);
}
if (stringHasValue(schema)) {
sb.append(schema);
- sb.append('.');
+ sb.append(separator);
} else {
if (sb.length() > 0) {
- sb.append('.');
+ sb.append(separator);
}
}