Overriding method names is one way to deal with it. When I made the patch
originally, I was thinking, if there's a javaName attribute to set the
class/method names in Java, a pluralName element also made sense.
(Although, you can always add methods to call other methods; making aliases
for classes isn't as easy.)
Even without the DTD change, having a getPluralName() method in the Table
class (defaulting to getName() + "s") would still seem to be an improvement
over having plural names be hard-coded to "${name}s" in multiple places in
the om/ templates. That would factor the append-'s' logic to a single place
in the code and make the templates more readable.
-- Bill
----- Original Message -----
From: "John McNally" <[EMAIL PROTECTED]>
To: "Turbine Torque Developers List" <[EMAIL PROTECTED]>
Sent: Monday, May 06, 2002 12:28 PM
Subject: Re: [PATCH] pretty plural names
> I am -0 on this patch. It seems like clutter to the dtd. In cases
> where I do not like the name of a torque generated method, I usually
> define a method with the name I want and note in the javadoc that the
> better named method exists. It would be better in these cases that the
> torque generated method have protected access, but I have been able to
> live with it being public.
>
> john mcnally
>
> On Mon, 2002-05-06 at 08:52, Bill Schneider wrote:
> > 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]>
> >
> >
>
>
>
> --
> To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>
>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>