You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by jg...@apache.org on 2008/02/05 20:24:47 UTC
svn commit: r618753 - in
/ibatis/trunk/java/mapper/mapper2/tools/abator/core: build/ doc/ htmldoc/
htmldoc/configreference/ src/org/apache/ibatis/abator/config/
src/org/apache/ibatis/abator/config/xml/
src/org/apache/ibatis/abator/internal/java/dao/ sr...
Author: jgbutler
Date: Tue Feb 5 11:24:41 2008
New Revision: 618753
URL: http://svn.apache.org/viewvc?rev=618753&view=rev
Log:
Abator: rootClass and rootInterface can be specified at the table level, misc. documentation updates
Modified:
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/daoGenerator.html
ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/configreference/generatedKey.html
ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/configreference/javaModelGenerator.html
ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/configreference/table.html
ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/running.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/config/GeneratedKey.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/PropertyRegistry.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/TableConfiguration.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/xml/AbatorConfigurationParser.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/util/messages/messages.properties
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?rev=618753&r1=618752&r2=618753&view=diff
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/build/version.properties (original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/build/version.properties Tue Feb 5 11:24:41 2008
@@ -1,4 +1,4 @@
#Abator build version info
-#Mon Jan 28 13:05:36 CST 2008
+#Tue Feb 05 12:11:25 CST 2008
version=1.1.0
-buildNum=401
+buildNum=402
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?rev=618753&r1=618752&r2=618753&view=diff
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/doc/ReleaseNotes.txt (original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/doc/ReleaseNotes.txt Tue Feb 5 11:24:41 2008
@@ -43,6 +43,9 @@
16. IBATIS-470 - make legacy DAOs extendable
17. IBATIS-468 - add <columnRenamingRule>
18. Added DB2 Main Frame database dialect for generated keys
+19. Allow rootClass and rootInterface to be specified at the table level
+20. Allowed specifying a type (pre or post) for the generatedKey
+ element.
-------------------------------------------------------------------------------
Version 1.0.0:
Modified: ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/configreference/daoGenerator.html
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/configreference/daoGenerator.html?rev=618753&r1=618752&r2=618753&view=diff
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/configreference/daoGenerator.html (original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/configreference/daoGenerator.html Tue Feb 5 11:24:41 2008
@@ -176,7 +176,8 @@
<tr>
<td valign="top">rootInterface</td>
<td>This property can be used to specify a super interface for all generated
- DAO interface objects.
+ DAO interface objects. This value may be overridden by specifying
+ the <code>rootInterface</code> property on a Table configuration.
<p><b>Important:</b> Abator does not verify that the interface exists, or is a
valid Java interface.</p>
<p>If specified, the value of this property should be a fully qualified
Modified: ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/configreference/generatedKey.html
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/configreference/generatedKey.html?rev=618753&r1=618752&r2=618753&view=diff
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/configreference/generatedKey.html (original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/configreference/generatedKey.html Tue Feb 5 11:24:41 2008
@@ -69,17 +69,34 @@
</table>
</td>
</tr>
+</table>
+
+<h2>Optional Attributes</h2>
+<table border="1" cellspacing="0" cellpadding="5">
+ <tr>
+ <th>Attribute</th>
+ <th>Description</th>
+ </tr>
<tr>
- <td>identity</td>
- <td>If <code>true</code>, then the generated <code><selectKey></code> element will be placed
+ <td valign="top">identity</td>
+ <td>If <code>true</code>, then the column is flagged as an identity column and the
+ generated <code><selectKey></code> element will be placed
after the insert (for an identity column). If <code>false</code>, then
the generated <code><selectKey></code> will be placed before the insert
- (typically for a sequence).</td>
+ (typically for a sequence).
+ <p><b>Important:</b> Even if you specify the <code>type</code> attribute as "post",
+ you should still specify this value as "true" for identity columns. This will flag
+ Abator to remove the column from the insert list.</p>
+ <p>The default is <i>false</i>.</p></td>
+ </tr>
+ <tr>
+ <td valign="top">type</td>
+ <td>If specified, then this value will be added as the type of the generated <code><selectKey></code> element.
+ The value of this property should be either "pre" or "post".
+ <p><b>Important:</b> if a value is specified for this attribute, then the generated
+ <code><selectKey></code> element will always be placed before the insert statement.</p></td>
</tr>
</table>
-
-<h2>Optional Attributes</h2>
-<p>None</p>
<h2>Child Elements</h2>
<p>None</p>
Modified: ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/configreference/javaModelGenerator.html
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/configreference/javaModelGenerator.html?rev=618753&r1=618752&r2=618753&view=diff
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/configreference/javaModelGenerator.html (original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/configreference/javaModelGenerator.html Tue Feb 5 11:24:41 2008
@@ -96,7 +96,8 @@
<td>This property can be used to specify a root class for all generated
Java model objects. Abator will specify this value as the super class
of the primary key object, if the table has a primary key, or the
- record object otherwise.
+ record object otherwise. This value may be overridden by specifying
+ the <code>rootClass</code> property on a Table configuration.
<p><b>Important:</b> Abator does not verify that the class exists, or is a
valid Java class. The generated classes may override elements in this
class without warning.</p>
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?rev=618753&r1=618752&r2=618753&view=diff
==============================================================================
--- 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 Tue Feb 5 11:24:41 2008
@@ -281,6 +281,31 @@
<p><i>The default value is false.</i></p></td>
</tr>
<tr>
+ <td valign="top">rootClass</td>
+ <td>This property can be used to specify a root class for all generated
+ Java model objects. Abator will specify this value as the super class
+ of the primary key object, if the table has a primary key, or the
+ record object otherwise. The value specified in this property will override
+ the <code>rootClass</code> property set on the Java Model Generator
+ configuration if any is set.
+ <p><b>Important:</b> Abator does not verify that the class exists, or is a
+ valid Java class. The generated classes may override elements in this
+ class without warning.</p>
+ <p>If specified, the value of this property should be a fully qualified
+ class name (like com.mycompany.MyRootClass).</p></td>
+ </tr>
+ <tr>
+ <td valign="top">rootInterface</td>
+ <td>This property can be used to specify a super interface for all generated
+ DAO interface objects. The value specified in this property will override
+ the <code>rootInterface</code> property set on the DAO Generator
+ configuration if any is set.
+ <p><b>Important:</b> Abator does not verify that the interface exists, or is a
+ valid Java interface.</p>
+ <p>If specified, the value of this property should be a fully qualified
+ interface name (like com.mycompany.MyRootInterface).</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>
Modified: ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/running.html
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/running.html?rev=618753&r1=618752&r2=618753&view=diff
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/running.html (original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/running.html Tue Feb 5 11:24:41 2008
@@ -178,6 +178,9 @@
accessed in the Abator configuration file with the escape sequence
<code>${generated.source.dir}</code>
</li>
+ <li>If a property is specified in the configuration file and is not resolved,
+ then the escaped property string will be passed "as is" into the generated code.
+ </li>
</ul>
<h2>Running Abator from Java with an XML Configuration File</h2>
@@ -194,6 +197,21 @@
Abator abator = new Abator(config, callback, warnings);
abator.generate(null);
</pre>
+
+<p>Notes:</p>
+<ul>
+ <li>Configuration file properties may be passed to the parser as a parameter on
+ the AbatorConfigurationParser constructor. If not passed explicitly, the JVM
+ system properties will be searched for the value of configuration file
+ properties. For example, the property
+ <code>generated.source.dir</code> can be
+ accessed in the Abator configuration file with the escape sequence
+ <code>${generated.source.dir}</code>
+ </li>
+ <li>If a property is specified in the configuration file and is not resolved,
+ then the escaped property string will be passed "as is" into the generated code.
+ </li>
+</ul>
<h2>Running Abator from Java with a Java Based Configuration</h2>
<p>The following code sample shows how to call Abator from Java only. It does
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?rev=618753&r1=618752&r2=618753&view=diff
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/whatsNew.html (original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/whatsNew.html Tue Feb 5 11:24:41 2008
@@ -96,6 +96,12 @@
<li>Exposed new support for selecting tables and/or contexts to the
command line and the Ant task - this has added an advanced syntax to the command
line for Abator.</li>
+ <li><code>rootClass</code> and <code>rootInterface</code> may now be specified for each table.
+ See the <a href="configreference/table.html"><table></a>
+ reference page for more information.</li>
+ <li>Allowed specifying a type (pre or post) for the generated key element. See the
+ <a href="configreference/generatedKey.html"><generatedKey></a>
+ reference page for more information</li>
</ul>
<h2>Version 1.0.0</h2>
Modified: ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/GeneratedKey.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/GeneratedKey.java?rev=618753&r1=618752&r2=618753&view=diff
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/GeneratedKey.java (original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/GeneratedKey.java Tue Feb 5 11:24:41 2008
@@ -18,6 +18,7 @@
import org.apache.ibatis.abator.api.dom.xml.Attribute;
import org.apache.ibatis.abator.api.dom.xml.XmlElement;
import org.apache.ibatis.abator.internal.db.DatabaseDialects;
+import org.apache.ibatis.abator.internal.util.StringUtility;
/**
* This class specifies that a key is auto-generated, either as an identity
@@ -70,12 +71,27 @@
return type;
}
+ public boolean isBeforeInsert() {
+ boolean rc;
+ if (StringUtility.stringHasValue(type)) {
+ rc = true;
+ } else {
+ if (isIdentity) {
+ rc = false;
+ } else {
+ rc = true;
+ }
+ }
+
+ return rc;
+ }
+
public XmlElement toXmlElement() {
XmlElement xmlElement = new XmlElement("generatedKey"); //$NON-NLS-1$
xmlElement.addAttribute(new Attribute("column", column)); //$NON-NLS-1$
xmlElement.addAttribute(new Attribute("sqlStatement", configuredSqlStatement)); //$NON-NLS-1$
- xmlElement.addAttribute(new Attribute("type", type));
- xmlElement.addAttribute(new Attribute("identity",//$NON-NLS-1$
+ xmlElement.addAttribute(new Attribute("type", type)); //$NON-NLS-1$
+ xmlElement.addAttribute(new Attribute("identity", //$NON-NLS-1$
isIdentity ? "true" : "false")); //$NON-NLS-1$ //$NON-NLS-2$
return xmlElement;
Modified: ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/PropertyRegistry.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/PropertyRegistry.java?rev=618753&r1=618752&r2=618753&view=diff
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/PropertyRegistry.java (original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/PropertyRegistry.java Tue Feb 5 11:24:41 2008
@@ -28,6 +28,16 @@
public class PropertyRegistry {
public static final String ANY_ENABLE_SUB_PACKAGES = "enableSubPackages"; //$NON-NLS-1$
+ /**
+ * recognized by table and java model generator
+ */
+ public static final String ANY_ROOT_CLASS = "rootClass"; //$NON-NLS-1$
+
+ /**
+ * recognized by table and dao generator
+ */
+ public static final String ANY_ROOT_INTERFACE = "rootInterface"; //$NON-NLS-1$
+
public static final String TABLE_USE_COLUMN_INDEXES = "useColumnIndexes"; //$NON-NLS-1$
public static final String TABLE_USE_ACTUAL_COLUMN_NAMES = "useActualColumnNames"; //$NON-NLS-1$
public static final String TABLE_IGNORE_QUALIFIERS_AT_RUNTIME = "ignoreQualifiersAtRuntime"; //$NON-NLS-1$
@@ -39,10 +49,8 @@
public static final String DAO_EXAMPLE_METHOD_VISIBILITY = "exampleMethodVisibility"; //$NON-NLS-1$
public static final String DAO_METHOD_NAME_CALCULATOR = "methodNameCalculator"; //$NON-NLS-1$
- public static final String DAO_ROOT_INTERFACE = "rootInterface"; //$NON-NLS-1$
public static final String TYPE_RESOLVER_FORCE_BIG_DECIMALS = "forceBigDecimals"; //$NON-NLS-1$
- public static final String MODEL_GENERATOR_ROOT_CLASS = "rootClass"; //$NON-NLS-1$
public static final String MODEL_GENERATOR_TRIM_STRINGS = "trimStrings"; //$NON-NLS-1$
}
Modified: ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/TableConfiguration.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/TableConfiguration.java?rev=618753&r1=618752&r2=618753&view=diff
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/TableConfiguration.java (original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/TableConfiguration.java Tue Feb 5 11:24:41 2008
@@ -481,6 +481,15 @@
errors
.add(Messages.getString("ValidationError.7", //$NON-NLS-1$
fqTableName));
+
+ String type = generatedKey.getType();
+ if (StringUtility.stringHasValue(type)) {
+ if (!"pre".equals(type) && !"post".equals(type)) { //$NON-NLS-1$ //$NON-NLS-2$
+ errors
+ .add(Messages.getString("ValidationError.15", //$NON-NLS-1$
+ fqTableName));
+ }
+ }
}
if ("true".equalsIgnoreCase(getProperty(PropertyRegistry.TABLE_USE_COLUMN_INDEXES))) { //$NON-NLS-1$
Modified: ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/xml/AbatorConfigurationParser.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/xml/AbatorConfigurationParser.java?rev=618753&r1=618752&r2=618753&view=diff
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/xml/AbatorConfigurationParser.java (original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/xml/AbatorConfigurationParser.java Tue Feb 5 11:24:41 2008
@@ -75,7 +75,7 @@
public AbatorConfigurationParser(Properties properties, List warnings) {
super();
if (properties == null) {
- this.properties = new Properties();
+ this.properties = System.getProperties();
} else {
this.properties = properties;
}
@@ -481,10 +481,6 @@
boolean identity = "true".equals(attributes.getProperty("identity")); //$NON-NLS-1$ //$NON-NLS-2$
String sqlStatement = attributes.getProperty("sqlStatement"); //$NON-NLS-1$
String type = attributes.getProperty("type"); //$NON-NLS-1$
- // if type is specified then set identity to false
- if(type != null && !type.trim().equals("")) {
- identity = false;
- }
GeneratedKey gk = new GeneratedKey(column, sqlStatement, identity, type);
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?rev=618753&r1=618752&r2=618753&view=diff
==============================================================================
--- 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 Tue Feb 5 11:24:41 2008
@@ -444,7 +444,11 @@
Interface answer = new Interface(getDAOInterfaceType(table));
answer.setVisibility(JavaVisibility.PUBLIC);
- String rootInterface = properties.getProperty(PropertyRegistry.DAO_ROOT_INTERFACE);
+ String rootInterface = introspectedTable.getTableConfigurationProperty(PropertyRegistry.ANY_ROOT_INTERFACE);
+ if (rootInterface == null) {
+ rootInterface = properties.getProperty(PropertyRegistry.ANY_ROOT_INTERFACE);
+ }
+
if (StringUtility.stringHasValue(rootInterface)) {
FullyQualifiedJavaType fqjt = new FullyQualifiedJavaType(rootInterface);
answer.addSuperInterface(fqjt);
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?rev=618753&r1=618752&r2=618753&view=diff
==============================================================================
--- 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 Tue Feb 5 11:24:41 2008
@@ -240,7 +240,7 @@
TopLevelClass answer = new TopLevelClass(type);
answer.setVisibility(JavaVisibility.PUBLIC);
- String rootClass = properties.getProperty(PropertyRegistry.MODEL_GENERATOR_ROOT_CLASS);
+ String rootClass = getRootClass(introspectedTable);
if (rootClass != null) {
answer.setSuperClass(new FullyQualifiedJavaType(rootClass));
answer.addImportedType(answer.getSuperClass());
@@ -265,7 +265,7 @@
if (introspectedTable.getRules().generatePrimaryKeyClass()) {
answer.setSuperClass(getPrimaryKeyType(table));
} else {
- String rootClass = properties.getProperty(PropertyRegistry.MODEL_GENERATOR_ROOT_CLASS);
+ String rootClass = getRootClass(introspectedTable);
if (rootClass != null) {
answer.setSuperClass(new FullyQualifiedJavaType(rootClass));
answer.addImportedType(answer.getSuperClass());
@@ -1460,5 +1460,14 @@
public void setAbatorContext(AbatorContext abatorContext) {
this.abatorContext = abatorContext;
+ }
+
+ protected String getRootClass (IntrospectedTable introspectedTable) {
+ String rootClass = introspectedTable.getTableConfigurationProperty(PropertyRegistry.ANY_ROOT_CLASS);
+ if (rootClass == null) {
+ rootClass = properties.getProperty(PropertyRegistry.ANY_ROOT_CLASS);
+ }
+
+ return rootClass;
}
}
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?rev=618753&r1=618752&r2=618753&view=diff
==============================================================================
--- 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 Tue Feb 5 11:24:41 2008
@@ -460,7 +460,7 @@
GeneratedKey gk = introspectedTable.getGeneratedKey();
- if (gk != null && !gk.isIdentity()) {
+ if (gk != null && gk.isBeforeInsert()) {
ColumnDefinition cd = introspectedTable.getColumn(gk.getColumn());
// if the column is null, then it's a configuration error. The
// warning has already been reported
@@ -479,14 +479,12 @@
valuesClause.append("values ("); //$NON-NLS-1$
- ColumnDefinition identityColumn = null;
boolean comma = false;
Iterator iter = introspectedTable.getAllColumns();
while (iter.hasNext()) {
ColumnDefinition cd = (ColumnDefinition) iter.next();
if (cd.isIdentity()) {
- identityColumn = cd;
// cannot set values on identity fields
continue;
}
@@ -507,8 +505,14 @@
answer.addElement(new TextElement(insertClause.toString()));
answer.addElement(new TextElement(valuesClause.toString()));
- if (gk != null && identityColumn != null) {
- answer.addElement(getSelectKey(identityColumn, gk));
+ if (gk != null && !gk.isBeforeInsert()) {
+ ColumnDefinition cd = introspectedTable.getColumn(gk.getColumn());
+ // if the column is null, then it's a configuration error. The
+ // warning has already been reported
+ if (cd != null) {
+ // pre-generated key
+ answer.addElement(getSelectKey(cd, gk));
+ }
}
return answer;
@@ -908,7 +912,7 @@
answer.addAttribute(new Attribute("resultClass", identityColumnType)); //$NON-NLS-1$
answer.addAttribute(new Attribute(
"keyProperty", columnDefinition.getJavaProperty())); //$NON-NLS-1$
- if(generatedKey.getType() != null && !generatedKey.getType().trim().equals("")) {
+ if(StringUtility.stringHasValue(generatedKey.getType())) {
answer.addAttribute(new Attribute("type", generatedKey.getType())); //$NON-NLS-1$
}
answer.addElement(new TextElement(generatedKey.getRuntimeSqlStatement()));
Modified: ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/util/messages/messages.properties
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/util/messages/messages.properties?rev=618753&r1=618752&r2=618753&view=diff
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/util/messages/messages.properties (original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/util/messages/messages.properties Tue Feb 5 11:24:41 2008
@@ -13,6 +13,7 @@
ValidationError.12={0} Target Package is Required for context {1}
ValidationError.13=If "useColumnIndexes" property is set, then either both or neither query id must be set for table {0}
ValidationError.14="searchString is required in a ColumnRenamingRule"
+ValidationError.15=Generated key type must be either "pre" or "post" if the type is specified for a generated key for table {0}
RuntimeError.0=configfile is a required parameter
RuntimeError.1=configfile {0} does not exist