I'm resubmitting a patch I made to allow overriding plural-form Java OM
class names, so you end up with methods like "foo.getCategories()" instead
of "foo.getCategorys()".  I ran the testbed (it works) and added a new test
to it.

-- Bill

Index: src/dtd/database.dtd
===================================================================
RCS file: /home/cvspublic/jakarta-turbine-torque/src/dtd/database.dtd,v
retrieving revision 1.12
diff -u -b -r1.12 database.dtd
--- src/dtd/database.dtd 14 Mar 2002 00:54:33 -0000 1.12
+++ src/dtd/database.dtd 4 May 2002 11:38:53 -0000
@@ -51,6 +51,7 @@
 <!ATTLIST table
   name CDATA #REQUIRED
   javaName CDATA #IMPLIED
+  pluralName CDATA #IMPLIED
   idMethod (idbroker|native|autoincrement|sequence|none|null) "null"
   skipSql (true|false) "false"
   abstract (true|false) "false"
Index: src/java/org/apache/torque/engine/database/model/Table.java
===================================================================
RCS file:
/home/cvspublic/jakarta-turbine-torque/src/java/org/apache/torque/engine/dat
abase/model/Table.java,v
retrieving revision 1.29
diff -u -b -r1.29 Table.java
--- src/java/org/apache/torque/engine/database/model/Table.java 29 Apr 2002
19:47:45 -0000 1.29
+++ src/java/org/apache/torque/engine/database/model/Table.java 4 May 2002
11:38:54 -0000
@@ -91,6 +91,7 @@
     private String name;
     private String description;
     private String javaName;
+    private String pluralName;
     private String idMethod;
     private String javaNamingMethod;
     private Database tableParent;
@@ -145,6 +146,7 @@
     {
         name = attrib.getValue("name");
         javaName = attrib.getValue("javaName");
+        pluralName = attrib.getValue("pluralName");
         idMethod = attrib.getValue("idMethod");

         // retrieves the method for converting from specified name to
@@ -628,6 +630,19 @@
     }

     /**
+     * Get the plural form of the name to use in Java sources.  If none
+     * is explicitly supplied, adds an "s" to getJavaName.
+     */
+    public String getPluralName()
+    {
+        if (pluralName == null)
+ {
+       pluralName = getJavaName() + "s";
+ }
+ return pluralName;
+    }
+
+    /**
      * Get name to use in Java sources
      */
     public String getJavaName()
@@ -659,6 +674,14 @@
     }

     /**
+     * Set plural form of name to use in Java sources
+     */
+    public void setPluralName(String pluralName)
+    {
+        this.pluralName = pluralName;
+    }
+
+    /**
      * Get the method for generating pk's
      */
     public String getIdMethod()
@@ -960,6 +983,13 @@
         {
             result.append(" javaname=\"")
                   .append(javaName)
+                  .append('\"');
+        }
+
+        if (pluralName != null)
+        {
+            result.append(" pluralName=\"")
+                  .append(pluralName)
                   .append('\"');
         }

Index: src/rttest/bookstore-schema.xml
===================================================================
RCS file:
/home/cvspublic/jakarta-turbine-torque/src/rttest/bookstore-schema.xml,v
retrieving revision 1.8
diff -u -b -r1.8 bookstore-schema.xml
--- src/rttest/bookstore-schema.xml 8 Mar 2002 23:07:47 -0000 1.8
+++ src/rttest/bookstore-schema.xml 4 May 2002 11:38:55 -0000
@@ -199,4 +199,25 @@
     />
   </table>

+  <!-- =================================================== -->
+  <!-- P L U R A L   T A B L E   A                         -->
+  <!-- =================================================== -->
+  <table name="plural_a" idMethod="none" pluralName="PluralesA"
+          description="table has different plural name">
+     <column name="plural_a_id" type="INTEGER"/>
+     <column name="plural_b_id" type="INTEGER"/>
+     <foreign-key foreignTable="plural_b">
+       <reference local="plural_b_id" foreign="plural_b_id"/>
+     </foreign-key>
+  </table>
+
+  <!-- =================================================== -->
+  <!-- P L U R A L   T A B L E   A                         -->
+  <!-- =================================================== -->
+  <!-- Java OM should have a method "getPluralesA" -->
+  <table name="plural_b"
+          description="plural test table">
+     <column name="plural_b_id" type="INTEGER" primaryKey="true"/>
+  </table>
+
 </database>
Index: src/rttest/org/apache/torque/test/TorqueRunner.java
===================================================================
RCS file:
/home/cvspublic/jakarta-turbine-torque/src/rttest/org/apache/torque/test/Tor
queRunner.java,v
retrieving revision 1.1
diff -u -b -r1.1 TorqueRunner.java
--- src/rttest/org/apache/torque/test/TorqueRunner.java 15 Nov 2001
02:44:21 -0000 1.1
+++ src/rttest/org/apache/torque/test/TorqueRunner.java 4 May 2002
11:38:55 -0000
@@ -94,7 +94,26 @@
         // run the tests
         TorqueRunner tr = new TorqueRunner();
         tr.insertData();
+ tr.testPlural();
     }
+
+    /**
+     * does some inserts.
+     */
+    private void testPlural()
+    {
+        try
+ {
+       PluralA a = new PluralA();
+     PluralB b = new PluralB();
+     // just make sure method name generated properly
+     System.out.println("plurals ok");
+     b.getPluralesA();
+ } catch (Exception e) {
+   e.printStackTrace();
+ }
+    }
+

     /**
      * does some inserts.
Index: src/templates/om/Object.vm
===================================================================
RCS file:
/home/cvspublic/jakarta-turbine-torque/src/templates/om/Object.vm,v
retrieving revision 1.28
diff -u -b -r1.28 Object.vm
--- src/templates/om/Object.vm 30 Apr 2002 23:49:48 -0000 1.28
+++ src/templates/om/Object.vm 4 May 2002 11:38:55 -0000
@@ -174,9 +174,9 @@
             #if ( !($tblFK.Name.equals($table.Name)) )
               #set ( $colFK = $tblFK.getColumn($fkColName) )
               #if ($colFK.isMultipleFK())
-                #set ( $collName =
"coll${tblFK.JavaName}sRelatedBy$colFK.JavaName" )
+                #set ( $collName =
"coll${tblFK.PluralName}RelatedBy$colFK.JavaName" )
               #else
-                #set ( $collName = "coll${tblFK.JavaName}s" )
+                #set ( $collName = "coll${tblFK.PluralName}" )
               #end

               // update associated $tblFK.JavaName
@@ -269,7 +269,7 @@
     #set ( $and = " && " )
     #set ( $comma = ", " )
    #end
-   #set ( $pCollName = "${table.JavaName}s$relCol" )
+   #set ( $pCollName = "${table.PluralName}$relCol" )

     public $className get${pVarName}() throws TorqueException
     {
@@ -334,6 +334,7 @@
   #set ( $tblFK = $fk.Table )
   #if ( !($tblFK.Name.equals($table.Name)) )
    #set ( $className = $tblFK.JavaName )
+   #set ( $classPlural = $tblFK.PluralName )
    #set ( $relatedByCol = "" )
    #foreach ($columnName in $fk.LocalColumns)
     #set ( $column = $tblFK.getColumn($columnName) )
@@ -344,11 +345,11 @@

    #if ($relatedByCol == "")
     #set ( $suffix = "" )
-    #set ( $relCol = "${className}s" )
+    #set ( $relCol = "${classPlural}" )
     #set ( $relColMs = $className )
    #else
     #set ( $suffix = "RelatedBy$relatedByCol" )
-    #set ( $relCol= "${className}sRelatedBy$relatedByCol" )
+    #set ( $relCol= "${classPlural}RelatedBy$relatedByCol" )
     #set ( $relColMs= "${className}RelatedBy$relatedByCol" )
    #end
    #set ( $collName = "coll$relCol" )
@@ -917,9 +918,9 @@
         #end

         #if ($relCol == "")
-            #set ( $relCol = "${className}s" )
+            #set ( $relCol = "${classPlural}" )
         #else
-            #set ( $relCol = "${className}sRelatedBy$relCol" )
+            #set ( $relCol = "${classPlural}RelatedBy$relCol" )
         #end
         #set ( $collName = "coll$relCol" )

@@ -1142,10 +1143,10 @@
         #end

         #if ($relCol == "")
-            #set ( $pCollName = "${className}s" )
+            #set ( $pCollName = "${classPlural}" )
             #set ( $pCollNameNoS = "${className}" )
         #else
-            #set ( $pCollName = "${className}sRelatedBy$relCol" )
+            #set ( $pCollName = "${classPlural}RelatedBy$relCol" )
             #set ( $pCollNameNoS = "${className}RelatedBy$relCol" )
         #end

Index: src/templates/om/ObjectWithManager.vm
===================================================================
RCS file:
/home/cvspublic/jakarta-turbine-torque/src/templates/om/ObjectWithManager.vm
,v
retrieving revision 1.7
diff -u -b -r1.7 ObjectWithManager.vm
--- src/templates/om/ObjectWithManager.vm 30 Apr 2002 23:49:48 -0000 1.7
+++ src/templates/om/ObjectWithManager.vm 4 May 2002 11:38:55 -0000
@@ -178,9 +178,9 @@
             #if ( !($tblFK.Name.equals($table.Name)) )
               #set ( $colFK = $tblFK.getColumn($fkColName) )
               #if ($colFK.isMultipleFK())
-                #set ( $collName =
"coll${tblFK.JavaName}sRelatedBy$colFK.JavaName" )
+                #set ( $collName =
"coll${tblFK.PluralName}RelatedBy$colFK.JavaName" )
               #else
-                #set ( $collName = "coll${tblFK.JavaName}s" )
+                #set ( $collName = "coll${tblFK.PluralName}" )
               #end

               // update associated $tblFK.JavaName
@@ -336,6 +336,7 @@
   #set ( $tblFK = $fk.Table )
   #if ( !($tblFK.Name.equals($table.Name)) )
    #set ( $className = $tblFK.JavaName )
+   #set ( $classPlural = $tblFK.PluralName )
    #set ( $relatedByCol = "" )
    #foreach ($columnName in $fk.LocalColumns)
     #set ( $column = $tblFK.getColumn($columnName) )
@@ -346,11 +347,11 @@

    #if ($relatedByCol == "")
     #set ( $suffix = "" )
-    #set ( $relCol = "${className}s" )
+    #set ( $relCol = "${classPlural}" )
     #set ( $relColMs = $className )
    #else
     #set ( $suffix = "RelatedBy$relatedByCol" )
-    #set ( $relCol= "${className}sRelatedBy$relatedByCol" )
+    #set ( $relCol= "${classPlural}RelatedBy$relatedByCol" )
     #set ( $relColMs= "${className}RelatedBy$relatedByCol" )
    #end
    #set ( $collName = "coll$relCol" )
@@ -935,9 +936,9 @@
         #end

         #if ($relCol == "")
-            #set ( $relCol = "${className}s" )
+            #set ( $relCol = "${classPlural}" )
         #else
-            #set ( $relCol = "${className}sRelatedBy$relCol" )
+            #set ( $relCol = "${classPlural}RelatedBy$relCol" )
         #end
         #set ( $collName = "coll$relCol" )

@@ -1168,10 +1169,10 @@
         #end

         #if ($relCol == "")
-            #set ( $pCollName = "${className}s" )
+            #set ( $pCollName = "${classPlural}" )
             #set ( $pCollNameNoS = "${className}" )
         #else
-            #set ( $pCollName = "${className}sRelatedBy$relCol" )
+            #set ( $pCollName = "${classPlural}RelatedBy$relCol" )
             #set ( $pCollNameNoS = "${className}RelatedBy$relCol" )
         #end

Index: src/templates/om/Peer.vm
===================================================================
RCS file: /home/cvspublic/jakarta-turbine-torque/src/templates/om/Peer.vm,v
retrieving revision 1.26
diff -u -b -r1.26 Peer.vm
--- src/templates/om/Peer.vm 29 Apr 2002 19:47:47 -0000 1.26
+++ src/templates/om/Peer.vm 4 May 2002 11:38:56 -0000
@@ -1032,6 +1032,7 @@
  ## setup joins
  ##
  #set ( $className = $table.JavaName )
+ #set ( $classPlural = $table.PluralName )
  #set ( $countFK = 0 )
  #foreach ($dummyFK in $table.ForeignKeys)
       #set ( $countFK = $countFK + 1 )
@@ -1060,12 +1061,12 @@
      #if ($partJoinName == "")
         #set ( $joinColumnId = $joinClassName )
         #set ( $joinInterface = $interfaceName )
-        #set ( $collThisTable = "${className}s" )
+        #set ( $collThisTable = "${classPlural}" )
         #set ( $collThisTableMs = $className )
      #else
         #set ( $joinColumnId= "${joinClassName}RelatedBy$partJoinName" )
         #set ( $joinInterface= "${interfaceName}RelatedBy$partJoinName" )
-        #set ( $collThisTable="${className}sRelatedBy$partJoinName" )
+        #set ( $collThisTable="${classPlural}RelatedBy$partJoinName" )
         #set ( $collThisTableMs="${className}RelatedBy$partJoinName" )
      #end

@@ -1223,11 +1224,11 @@

      #if ($relatedByCol == "")
         #set ( $excludeString = $excludeClassName )
-        #set ( $collThisTable = "${className}s" )
+        #set ( $collThisTable = "${classPlural}" )
         #set ( $collThisTableMs = $className )
      #else
         #set ( $excludeString="${excludeClassName}RelatedBy$relatedByCol" )
-        #set ( $collThisTable="${className}sRelatedBy$relatedByCol" )
+        #set ( $collThisTable="${classPlural}RelatedBy$relatedByCol" )
         #set ( $collThisTableMs="${className}RelatedBy$relatedByCol" )
      #end

@@ -1353,11 +1354,11 @@

             #if ($partJoinName == "")
                 #set ( $joinString = $interfaceName )
-                #set ( $collThisTable = "${className}s" )
+                #set ( $collThisTable = "${classPlural}" )
                 #set ( $collThisTableMs = $className )
             #else
                 #set (
$joinString="${interfaceName}RelatedBy$partJoinName" )
-                #set (
$collThisTable="${className}sRelatedBy$partJoinName" )
+                #set (
$collThisTable="${classPlural}RelatedBy$partJoinName" )
                 #set (
$collThisTableMs="${className}RelatedBy$partJoinName" )
             #end



--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to