Author: jgbutler
Date: Mon Jan 28 13:50:30 2008
New Revision: 616068

URL: http://svn.apache.org/viewvc?rev=616068&view=rev
Log:
Abator:  Further changes for IBATIS-468, change the way that columnRenamingRule 
interacts with useActualColumnNames

Modified:
    ibatis/trunk/java/mapper/mapper2/tools/abator/core/build/version.properties
    
ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/configreference/columnRenamingRule.html
    
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/db/DatabaseIntrospector.java

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=616068&r1=616067&r2=616068&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 
Mon Jan 28 13:50:30 2008
@@ -1,4 +1,4 @@
 #Abator build version info
-#Tue Nov 20 23:15:11 CST 2007
+#Mon Jan 28 13:05:36 CST 2008
 version=1.1.0
-buildNum=397
+buildNum=401

Modified: 
ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/configreference/columnRenamingRule.html
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/configreference/columnRenamingRule.html?rev=616068&r1=616067&r2=616068&view=diff
==============================================================================
--- 
ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/configreference/columnRenamingRule.html
 (original)
+++ 
ibatis/trunk/java/mapper/mapper2/tools/abator/core/htmldoc/configreference/columnRenamingRule.html
 Mon Jan 28 13:50:30 2008
@@ -16,28 +16,63 @@
 calculating the property name.  For example, suppose a table
 contains the following columns:</p>
  <ul>
-   <li>CUST_NAME</li>
-   <li>CUST_ADDRESS</li>
+   <li>CUST_BUSINESS_NAME</li>
+   <li>CUST_STREET_ADDRESS</li>
    <li>CUST_CITY</li>
    <li>CUST_STATE</li>
  </ul>
 <p>It might be annoying to have the generated properties
  all containing the CUST prefix.  The prefix can be removed by
  specifying a renimg rule like this:</p>
- 
+
 <p><code>&lt;columnRenamingRule searchString="^CUST_" replaceString="" 
/&gt;</code></p>
 
-<p>Note that, internally, Abator uses the 
+<p>Note that, internally, Abator uses the
  <code>java.util.regex.Matcher.replaceAll</code> method
  for this function.  See the documentation for that method
  and class for examples of the regular expression language used in
  Java.</p>
 
-<p>This element will be ignored if the "useActualColumnNames" property
-  is set to "true" on the corresponding &lt;table&gt; element.
-  Further, if a &lt;columnOverride&gt; element matches a column,
-  it will take precedence over this renaming rule.</p>
-  
+<p>This element will be ignored for any column where a &lt;columnOverride&gt; 
element
+   matches a column - the &lt;columnOverride&gt;
+  will take precedence over the renaming rule.</p>
+
+<p>If specified, the renaming rule in this element will rename the column
+  before the property name is calculated.  The calculated property name
+  may be different depending on the value of the
+  "useActualColumnNames" property on the corresponding &lt;table&gt; element.
+  The following table shows the different values that will result if
+  the column renaming rule shown above is applied to the field set
+  shown above:</p>
+
+<table border="1" cellspacing="0" cellpadding="5">
+  <tr>
+    <th>Column Name</th>
+    <th>Property if useActualColumnNames="true"</th>
+    <th>Property if useActualColumnNames="false"</th>
+  </tr>
+  <tr>
+    <td>CUST_BUSINESS_NAME</td>
+    <td>BUSINESS_NAME</td>
+    <td>businessName</td>
+  </tr>
+  <tr>
+    <td>CUST_STREET_ADDRESS</td>
+    <td>STREET_ADDRESS</td>
+    <td>streetAddress</td>
+  </tr>
+  <tr>
+    <td>CUST_CITY</td>
+    <td>CITY</td>
+    <td>city</td>
+  </tr>
+  <tr>
+    <td>CUST_STATE</td>
+    <td>STATE</td>
+    <td>state</td>
+  </tr>
+</table>
+
 <p>This element is an optional child
 element of the <a href="table.html">&lt;table&gt;</a> element.</p>
 

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?rev=616068&r1=616067&r2=616068&view=diff
==============================================================================
--- 
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
 Mon Jan 28 13:50:30 2008
@@ -216,6 +216,14 @@
     }
     
     private void calculateExtraColumnInformation(TableConfiguration tc, Map 
columns) {
+        Pattern pattern = null;
+        String replaceString = null;
+        if (tc.getColumnRenamingRule() != null) {
+            pattern = 
Pattern.compile(tc.getColumnRenamingRule().getSearchString());
+            replaceString = tc.getColumnRenamingRule().getReplaceString();
+            replaceString = replaceString == null ? "" : 
replaceString;//$NON-NLS-1$
+        }
+        
         Iterator entries = columns.entrySet().iterator();
         while (entries.hasNext()) {
             Map.Entry entry = (Map.Entry) entries.next();
@@ -223,28 +231,18 @@
             while (tableColumns.hasNext()) {
                 ColumnDefinition cd = (ColumnDefinition) tableColumns.next();
 
-                Pattern pattern = null;
-                String replaceString = null;
-                if (tc.getColumnRenamingRule() != null) {
-                    pattern = 
Pattern.compile(tc.getColumnRenamingRule().getSearchString());
-                    
-                    replaceString = 
tc.getColumnRenamingRule().getReplaceString();
-                    replaceString = replaceString == null ? "" : 
replaceString;//$NON-NLS-1$
+                String calculatedColumnName;
+                if (pattern == null) {
+                    calculatedColumnName = cd.getActualColumnName();
+                } else {
+                    Matcher matcher = 
pattern.matcher(cd.getActualColumnName());
+                    calculatedColumnName = matcher.replaceAll(replaceString);
                 }
                 
                 if 
("true".equalsIgnoreCase(tc.getProperty(PropertyRegistry.TABLE_USE_ACTUAL_COLUMN_NAMES)))
 { //$NON-NLS-1$
-                    cd.setJavaProperty(JavaBeansUtil.getValidPropertyName(cd
-                            .getActualColumnName()));
+                    
cd.setJavaProperty(JavaBeansUtil.getValidPropertyName(calculatedColumnName));
                 } else {
-                    if (pattern != null) {
-                        Matcher matcher = 
pattern.matcher(cd.getActualColumnName());
-                        String renamedColumn = 
matcher.replaceAll(replaceString);
-                        
cd.setJavaProperty(JavaBeansUtil.getCamelCaseString(renamedColumn,
-                                false));
-                    } else {
-                        cd.setJavaProperty(JavaBeansUtil.getCamelCaseString(cd
-                            .getActualColumnName(), false));
-                    }
+                    
cd.setJavaProperty(JavaBeansUtil.getCamelCaseString(calculatedColumnName, 
false));
                 }
                 
                 try {


Reply via email to