You are viewing a plain text version of this content. The canonical link for it is here.
Posted to torque-dev@db.apache.org by tf...@apache.org on 2011/05/14 19:34:25 UTC

svn commit: r1103171 [2/4] - in /db/torque/torque4/trunk: torque-runtime/src/main/java/org/apache/torque/util/ torque-runtime/src/test/java/org/apache/torque/sql/ torque-runtime/src/test/java/org/apache/torque/util/ torque-templates/src/main/java/org/a...

Modified: db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/sql/SqlBuilderTest.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/sql/SqlBuilderTest.java?rev=1103171&r1=1103170&r2=1103171&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/sql/SqlBuilderTest.java (original)
+++ db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/sql/SqlBuilderTest.java Sat May 14 17:34:23 2011
@@ -22,8 +22,7 @@ package org.apache.torque.sql;
 import java.lang.reflect.Array;
 import java.util.List;
 
-import junit.framework.TestCase;
-
+import org.apache.torque.BaseTestCase;
 import org.apache.torque.TorqueException;
 import org.apache.torque.adapter.DB;
 import org.apache.torque.adapter.DBFactory;
@@ -36,7 +35,7 @@ import org.apache.torque.util.SqlEnum;
  * @author <a href="mailto:seade@backstagetech.com.au">Scott Eade</a>
  * @version $Id$
  */
-public class SqlBuilderTest extends TestCase
+public class SqlBuilderTest extends BaseTestCase
 {
     private DB db = null;
 
@@ -52,8 +51,9 @@ public class SqlBuilderTest extends Test
     /**
      * set up environment
      */
-    public void setUp()
+    public void setUp() throws TorqueException
     {
+        super.setUp();
         try
         {
             db = DBFactory.create("mysql");

Modified: db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/util/CriteriaTest.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/util/CriteriaTest.java?rev=1103171&r1=1103170&r2=1103171&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/util/CriteriaTest.java (original)
+++ db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/util/CriteriaTest.java Sat May 14 17:34:23 2011
@@ -33,6 +33,7 @@ import org.apache.torque.map.ColumnMap;
 import org.apache.torque.map.DatabaseMap;
 import org.apache.torque.map.TableMap;
 import org.apache.torque.sql.Query;
+import org.apache.torque.sql.SqlBuilder;
 import org.apache.torque.util.Criteria.Criterion;
 import org.apache.torque.util.Criteria.Join;
 
@@ -155,7 +156,7 @@ public class CriteriaTest extends BaseTe
                 + "AND myTable3.myColumn3=?) "
             + "OR (myTable4.myColumn4=? "
                 + "AND myTable5.myColumn5=?))";
-        Query result = BasePeer.createQuery(c);
+        Query result = SqlBuilder.buildQuery(c);
         assertEquals(expect, result.toString());
         List<Object> preparedStatementReplacements
             = result.getPreparedStatementReplacements();
@@ -196,7 +197,7 @@ public class CriteriaTest extends BaseTe
                     + "AND myTable3.myColumn3<=?) "
                 + "OR myTable4.myColumn4>?) "
                     + "AND myTable5.myColumn5>=?)";
-        result = BasePeer.createQuery(c);
+        result = SqlBuilder.buildQuery(c);
         assertEquals(expect, result.toString());
         preparedStatementReplacements
             = result.getPreparedStatementReplacements();
@@ -235,7 +236,7 @@ public class CriteriaTest extends BaseTe
         String expect =
             "SELECT  FROM INVOICE WHERE "
             + "(INVOICE.COST>=? AND INVOICE.COST<=?)";
-        Query result = BasePeer.createQuery(c);
+        Query result = SqlBuilder.buildQuery(c);
 
         assertEquals(expect, result.toString());
         assertEquals(2, result.getPreparedStatementReplacements().size());
@@ -264,7 +265,7 @@ public class CriteriaTest extends BaseTe
         c.add(criterion1.and(criterion2).and(criterion3).and(criterion4));
         c.addSelectColumn("*");
         c.setDbName("postgresql");
-        Query result = BasePeer.createQuery(c);
+        Query result = SqlBuilder.buildQuery(c);
 
         String expect = "SELECT * FROM TABLE WHERE "
             + "(((UPPER(TABLE.COLUMN1)=UPPER(?)"
@@ -286,7 +287,7 @@ public class CriteriaTest extends BaseTe
     {
         c.add("TABLE.COLUMN", true);
 
-        Query result = BasePeer.createQuery(c);
+        Query result = SqlBuilder.buildQuery(c);
 
         assertEquals(
                 "SELECT  FROM TABLE WHERE TABLE.COLUMN=?",
@@ -301,7 +302,7 @@ public class CriteriaTest extends BaseTe
         c.add("TABLE.COLUMN", true);
         c.setDbName("postgresql");
 
-        result = BasePeer.createQuery(c);
+        result = SqlBuilder.buildQuery(c);
 
         assertEquals(
                 "SELECT  FROM TABLE WHERE TABLE.COLUMN=?",
@@ -319,7 +320,7 @@ public class CriteriaTest extends BaseTe
     {
          c.addDate("TABLE.DATE_COLUMN", 2003, 0, 22);
 
-        Query result = BasePeer.createQuery(c);
+        Query result = SqlBuilder.buildQuery(c);
 
         assertEquals(
                 "SELECT  FROM TABLE WHERE TABLE.DATE_COLUMN=?",
@@ -341,7 +342,7 @@ public class CriteriaTest extends BaseTe
         c.addDate("TABLE.DATE_COLUMN", 2003, 0, 22, Criteria.GREATER_THAN);
         c.andDate("TABLE.DATE_COLUMN", 2004, 2, 24, Criteria.LESS_THAN);
 
-        Query result = BasePeer.createQuery(c);
+        Query result = SqlBuilder.buildQuery(c);
         assertEquals(
                 "SELECT  FROM TABLE WHERE "
                     + "(TABLE.DATE_COLUMN>? AND TABLE.DATE_COLUMN<?)",
@@ -366,7 +367,7 @@ public class CriteriaTest extends BaseTe
         Date date = cal.getTime();
         c.add("TABLE.DATE_COLUMN", date);
 
-        Query result = BasePeer.createQuery(c);
+        Query result = SqlBuilder.buildQuery(c);
         assertEquals(
                 "SELECT  FROM TABLE WHERE "
                     + "TABLE.DATE_COLUMN=?",
@@ -386,7 +387,7 @@ public class CriteriaTest extends BaseTe
                 .add("TABLE.TIME_COLUMN", Criteria.CURRENT_TIME);
         c.addSelectColumn("COUNT(*)");
 
-        Query result = BasePeer.createQuery(c);
+        Query result = SqlBuilder.buildQuery(c);
         assertEquals(
                 "SELECT COUNT(*) FROM TABLE WHERE "
                     + "TABLE.TIME_COLUMN=CURRENT_TIME "
@@ -404,7 +405,7 @@ public class CriteriaTest extends BaseTe
         c.setOffset(3).setLimit(5);
         c.addSelectColumn("COUNT(*)");
 
-        Query result = BasePeer.createQuery(c);
+        Query result = SqlBuilder.buildQuery(c);
         String expect
             = "SELECT COUNT(*) FROM TABLE WHERE TABLE.DATE_COLUMN=?"
                 + " LIMIT 5 OFFSET 3";
@@ -420,7 +421,7 @@ public class CriteriaTest extends BaseTe
         c.setOffset(3);
         c.addSelectColumn("COUNT(*)");
 
-        Query result = BasePeer.createQuery(c);
+        Query result = SqlBuilder.buildQuery(c);
         String expect
             = "SELECT COUNT(*) FROM TABLE WHERE TABLE.DATE_COLUMN=?"
                 + " LIMIT 18446744073709551615 OFFSET 3";
@@ -433,7 +434,7 @@ public class CriteriaTest extends BaseTe
         c.setLimit(5);
         c.addSelectColumn("COUNT(*)");
 
-        Query result = BasePeer.createQuery(c);
+        Query result = SqlBuilder.buildQuery(c);
         String expect
             = "SELECT COUNT(*) FROM TABLE WHERE TABLE.DATE_COLUMN=?"
                 + " LIMIT 5";
@@ -449,7 +450,7 @@ public class CriteriaTest extends BaseTe
     {
         c.add("TABLE.COLUMN", (Object) "no wildcards", Criteria.LIKE);
 
-        Query result = BasePeer.createQuery(c);
+        Query result = SqlBuilder.buildQuery(c);
         assertEquals(
                 "SELECT  FROM TABLE WHERE "
                     + "TABLE.COLUMN=?",
@@ -478,7 +479,7 @@ public class CriteriaTest extends BaseTe
         Query result = null;
         try
         {
-            result = BasePeer.createQuery(c);
+            result = SqlBuilder.buildQuery(c);
         }
         catch (TorqueException e)
         {
@@ -626,7 +627,7 @@ public class CriteriaTest extends BaseTe
         c.addAscendingOrderByColumn(
                 "a.NAME");
 
-        Query result = BasePeer.createQuery(c);
+        Query result = SqlBuilder.buildQuery(c);
         assertEquals("SELECT AUTHOR.NAME, a.NAME "
                     + "FROM AUTHOR, AUTHOR a "
                     + "WHERE AUTHOR.AUTHOR_ID=a.AUTHOR_ID "

Modified: db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/OMTableTransformer.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/OMTableTransformer.java?rev=1103171&r1=1103170&r2=1103171&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/OMTableTransformer.java (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/OMTableTransformer.java Sat May 14 17:34:23 2011
@@ -85,6 +85,9 @@ public class OMTableTransformer extends 
         super.transform(tableElement, controllerState);
 
         setManagerClassNameAttributes(tableElement, controllerState);
+        setPeerImplFieldNameAttribute(tableElement);
+        setPeerImplGetterAttribute(tableElement);
+        setPeerImplSetterAttribute(tableElement);
 
         createInheritanceColumnChildIfNecessary(tableElement);
         primaryKeyTransformer.transform(tableElement, controllerState,
@@ -379,4 +382,77 @@ public class OMTableTransformer extends 
                 JavaFieldAttributeName.FIELD_NAME,
                 fieldName);
     }
+
+    /**
+     * Sets the peerImplFieldName attribute of the table element if it is not
+     * already set. The field name can be used to contain a peer object
+     * corresponding to the table.
+     * The peerImplClassName attribute of the column must be already set
+     * when this method is called.
+     *
+     * @param tableElement the table element, not null.
+     */
+    protected void setPeerImplFieldNameAttribute(SourceElement tableElement)
+    {
+        if (tableElement.getAttribute(TableAttributeName.PEER_IMPL_FIELD_NAME)
+                != null)
+        {
+            return;
+        }
+        String peerImplClassName = (String) tableElement.getAttribute(
+                TableAttributeName.PEER_IMPL_CLASS_NAME);
+        String fieldName = StringUtils.uncapitalize(peerImplClassName);
+        fieldName = reservedJavaWordsWrapper.process(fieldName);
+        tableElement.setAttribute(
+                TableAttributeName.PEER_IMPL_FIELD_NAME,
+                fieldName);
+    }
+
+    /**
+     * Sets the peerImplGetter attribute of the table element if it is not
+     * already set.
+     * The peerImplClassName attribute of the column must be already set
+     * when this method is called.
+     *
+     * @param tableElement the table element, not null.
+     */
+    protected void setPeerImplGetterAttribute(SourceElement tableElement)
+    {
+        if (tableElement.getAttribute(TableAttributeName.PEER_IMPL_GETTER)
+                != null)
+        {
+            return;
+        }
+        String peerImplClassName = (String) tableElement.getAttribute(
+                TableAttributeName.PEER_IMPL_CLASS_NAME);
+        String getter = "get" + peerImplClassName;
+        getter = reservedJavaWordsWrapper.process(getter);
+        tableElement.setAttribute(
+                TableAttributeName.PEER_IMPL_GETTER,
+                getter);
+    }
+
+    /**
+     * Sets the peerImplSetter attribute of the table element if it is not
+     * already set.
+     * The peerImplClassName attribute of the column must be already set
+     * when this method is called.
+     *
+     * @param tableElement the table element, not null.
+     */
+    protected void setPeerImplSetterAttribute(SourceElement tableElement)
+    {
+        if (tableElement.getAttribute(TableAttributeName.PEER_IMPL_SETTER)
+                != null)
+        {
+            return;
+        }
+        String peerImplClassName = (String) tableElement.getAttribute(
+                TableAttributeName.PEER_IMPL_CLASS_NAME);
+        String setter = "set" + peerImplClassName;
+        setter = reservedJavaWordsWrapper.process(setter);
+        tableElement.setAttribute(
+                TableAttributeName.PEER_IMPL_SETTER,
+                setter);
+    }
 }

Modified: db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/TableAttributeName.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/TableAttributeName.java?rev=1103171&r1=1103170&r2=1103171&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/TableAttributeName.java (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/TableAttributeName.java Sat May 14 17:34:23 2011
@@ -60,7 +60,27 @@ public enum TableAttributeName implement
     /**
      * The package name of the bean class.
      */
-    BEAN_PACKAGE("beanPackage");
+    BEAN_PACKAGE("beanPackage"),
+
+    /**
+     * The name of the field holding the peer implementation class.
+     */
+    PEER_IMPL_FIELD_NAME("peerImplFieldName"),
+
+    /**
+     * The name of the peer implementation class.
+     */
+    PEER_IMPL_CLASS_NAME("peerImplClassName"),
+
+    /**
+     * The name of the getter for the peer implementation class.
+     */
+    PEER_IMPL_GETTER("peerImplGetter"),
+
+    /**
+     * The name of the setter for the peer implementation class.
+     */
+    PEER_IMPL_SETTER("peerImplSetter");
 
     /** The name of the source element attribute, not null. */
     private String name;

Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/conf/control.xml
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/conf/control.xml?rev=1103171&r1=1103170&r2=1103171&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/conf/control.xml (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/conf/control.xml Sat May 14 17:34:23 2011
@@ -167,6 +167,33 @@
     <outlet name="torque.om.peer"/>
   </output>
 
+  <output name="torque.om.peer.impl" skipIfExists="true">
+    <filenameOutlet
+        xsi:type="javaOutlet"
+        class="org.apache.torque.generator.outlet.java.JavaFilenameOutlet">
+      <mergepoint name="package">
+        <action
+            xsi:type="sourceElementAttributeAction"
+            element="."
+            attribute="peerPackage"
+            acceptNotSet="false"/>
+      </mergepoint>
+      <mergepoint name="classname">
+        <action
+            xsi:type="sourceElementAttributeAction"
+            element="."
+            attribute="peerImplClassName"
+            acceptNotSet="false"/>
+      </mergepoint>
+    </filenameOutlet>
+    <source xsi:type="fileSource" elements="database/all-tables/table">
+      <transformer class="org.apache.torque.templates.transformer.om.OMTransformer"/>
+      <include>*schema.xml</include>
+      <exclude>id-table-schema.xml</exclude>
+    </source>
+    <outlet name="torque.om.peer.impl"/>
+  </output>
+
   <output name="torque.om.basePeer">
     <filenameOutlet
         xsi:type="javaOutlet"
@@ -194,6 +221,33 @@
     <outlet name="torque.om.basePeer"/>
   </output>
 
+  <output name="torque.om.basePeer.impl">
+    <filenameOutlet
+        xsi:type="javaOutlet"
+        class="org.apache.torque.generator.outlet.java.JavaFilenameOutlet">
+      <mergepoint name="package">
+        <action
+            xsi:type="sourceElementAttributeAction"
+            element="."
+            attribute="basePeerPackage"
+            acceptNotSet="false"/>
+      </mergepoint>
+      <mergepoint name="classname">
+        <action
+            xsi:type="sourceElementAttributeAction"
+            element="."
+            attribute="basePeerImplClassName"
+            acceptNotSet="false"/>
+      </mergepoint>
+    </filenameOutlet>
+    <source xsi:type="fileSource" elements="database/all-tables/table">
+      <transformer class="org.apache.torque.templates.transformer.om.OMTransformer"/>
+      <include>*schema.xml</include>
+      <exclude>id-table-schema.xml</exclude>
+    </source>
+    <outlet name="torque.om.basePeer.impl"/>
+  </output>
+
   <output name="torque.om.mapBuilder">
     <filenameOutlet
         xsi:type="javaOutlet"
@@ -221,6 +275,60 @@
     <outlet name="torque.om.mapBuilder"/>
   </output>
 
+  <output name="torque.om.recordMapper" skipIfExists="true">
+    <filenameOutlet
+        xsi:type="javaOutlet"
+        class="org.apache.torque.generator.outlet.java.JavaFilenameOutlet">
+      <mergepoint name="package">
+        <action
+            xsi:type="sourceElementAttributeAction"
+            element="."
+            attribute="recordMapperPackage"
+            acceptNotSet="false"/>
+      </mergepoint>
+      <mergepoint name="classname">
+        <action
+            xsi:type="sourceElementAttributeAction"
+            element="."
+            attribute="recordMapperClassName"
+            acceptNotSet="false"/>
+      </mergepoint>
+    </filenameOutlet>
+    <source xsi:type="fileSource" elements="database/all-tables/table">
+      <transformer class="org.apache.torque.templates.transformer.om.OMTransformer"/>
+      <include>*schema.xml</include>
+      <exclude>id-table-schema.xml</exclude>
+    </source>
+    <outlet name="torque.om.recordmapper.recordMapper"/>
+  </output>
+
+  <output name="torque.om.baseRecordMapper">
+    <filenameOutlet
+        xsi:type="javaOutlet"
+        class="org.apache.torque.generator.outlet.java.JavaFilenameOutlet">
+      <mergepoint name="package">
+        <action
+            xsi:type="sourceElementAttributeAction"
+            element="."
+            attribute="baseRecordMapperPackage"
+            acceptNotSet="false"/>
+      </mergepoint>
+      <mergepoint name="classname">
+        <action
+            xsi:type="sourceElementAttributeAction"
+            element="."
+            attribute="baseRecordMapperClassName"
+            acceptNotSet="false"/>
+      </mergepoint>
+    </filenameOutlet>
+    <source xsi:type="fileSource" elements="database/all-tables/table">
+      <transformer class="org.apache.torque.templates.transformer.om.OMTransformer"/>
+      <include>*schema.xml</include>
+      <exclude>id-table-schema.xml</exclude>
+    </source>
+    <outlet name="torque.om.recordmapper.base.recordMapperBase"/>
+  </output>
+
   <output name="torque.om.bean" skipIfExists="true">
     <filenameOutlet
         xsi:type="javaOutlet"

Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/conf/options.properties
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/conf/options.properties?rev=1103171&r1=1103170&r2=1103171&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/conf/options.properties (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/conf/options.properties Sat May 14 17:34:23 2011
@@ -73,13 +73,18 @@ torque.om.complexObjectModel.foreignFiel
 # new options
 torque.om.dbObjectDefaultBaseClass = org.apache.torque.om.BaseObject
 torque.om.basePeerBaseClass = org.apache.torque.util.BasePeer
+torque.om.basePeerImplBaseClass = org.apache.torque.util.BasePeerImpl
 
 torque.om.className.baseDbObjectClassNamePrefix = Base
 torque.om.className.baseDbObjectClassNameSuffix =
 torque.om.className.peerClassNamePrefix =
 torque.om.className.peerClassNameSuffix = Peer
+torque.om.className.peerImplClassNamePrefix = 
+torque.om.className.peerImplClassNameSuffix = PeerImpl
 torque.om.className.basePeerClassNamePrefix = Base
 torque.om.className.basePeerClassNameSuffix = Peer
+torque.om.className.basePeerImplClassNamePrefix = Base
+torque.om.className.basePeerImplClassNameSuffix = PeerImpl
 torque.om.className.managerClassNamePrefix =
 torque.om.className.managerClassNameSuffix = Manager
 torque.om.className.baseManagerClassNamePrefix = Base
@@ -92,11 +97,15 @@ torque.om.className.mapBuilderClassNameP
 torque.om.className.mapBuilderClassNameSuffix = MapBuilder
 torque.om.className.recordMapperClassNamePrefix =
 torque.om.className.recordMapperClassNameSuffix = RecordMapper
+torque.om.className.baseRecordMapperClassNamePrefix = Base
+torque.om.className.baseRecordMapperClassNameSuffix = RecordMapper
 
 torque.om.package.dbObjectPackageSuffix =
 torque.om.package.baseDbObjectPackageSuffix =
 torque.om.package.peerPackageSuffix =
 torque.om.package.basePeerPackageSuffix =
+torque.om.package.recordMapperPackageSuffix =
+torque.om.package.baseRecordMapperPackageSuffix =
 torque.om.package.managerPackageSuffix = .manager
 torque.om.package.baseManagerPackageSuffix = .manager.base
 torque.om.package.beanPackageSuffix = .bean

Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/outlets/peer.xml
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/outlets/peer.xml?rev=1103171&r1=1103170&r2=1103171&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/outlets/peer.xml (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/outlets/peer.xml Sat May 14 17:34:23 2011
@@ -38,6 +38,200 @@
       path="peer/classJavadoc.vm">
   </outlet>
 
+  <outlet name="torque.om.peer.impl"
+      xsi:type="velocityOutlet"
+      path="peer/impl/peerImpl.vm">
+    <mergepoint name="classJavadoc">
+      <action xsi:type="applyAction" outlet="torque.om.peer.impl.classJavadoc"/>
+    </mergepoint>
+    <mergepoint name="serialVersionUid">
+      <action xsi:type="applyAction" outlet="torque.om.serialVersionUid"/>
+    </mergepoint>
+    <mergepoint name="extensions"/>
+  </outlet>
+
+  <outlet name="torque.om.peer.impl.classJavadoc"
+      xsi:type="velocityOutlet"
+      path="peer/impl/classJavadoc.vm">
+  </outlet>
+
+  <outlet name="torque.om.basePeer.impl"
+      xsi:type="velocityOutlet"
+      path="peer/impl/base/basePeerImpl.vm">
+    <mergepoint name="imports">
+      <action xsi:type="applyAction" outlet="torque.om.peer.impl.base.imports"/>
+    </mergepoint>
+    <mergepoint name="classJavadoc">
+      <action xsi:type="applyAction" outlet="torque.om.peer.impl.base.classJavadoc"/>
+    </mergepoint>
+    <mergepoint name="log">
+      <action xsi:type="applyAction" outlet="torque.om.peer.impl.base.log"/>
+    </mergepoint>
+    <mergepoint name="serialVersionUid">
+      <action xsi:type="applyAction" outlet="torque.om.serialVersionUid"/>
+    </mergepoint>
+    <mergepoint name="mapBuilderGetter">
+      <action xsi:type="applyAction" outlet="torque.om.peer.impl.base.mapBuilderGetter"/>
+    </mergepoint>
+    <mergepoint name="resultSet2Objects">
+      <action xsi:type="applyAction" outlet="torque.om.peer.impl.base.resultSet2Objects"/>
+    </mergepoint>
+    <mergepoint name="doInsert">
+      <action xsi:type="applyAction" outlet="torque.om.peer.impl.base.doInsert"/>
+    </mergepoint>
+    <mergepoint name="addSelectColumns">
+      <action xsi:type="applyAction" outlet="torque.om.peer.impl.base.addSelectColumns"/>
+    </mergepoint>
+    <mergepoint name="correctBooleans">
+      <action xsi:type="applyAction" outlet="torque.om.peer.impl.base.correctBooleans"/>
+    </mergepoint>
+    <mergepoint name="doSelect">
+      <action xsi:type="applyAction" outlet="torque.om.peer.impl.base.doSelect"/>
+    </mergepoint>
+    <mergepoint name="getOMClass">
+      <action xsi:type="applyAction" outlet="torque.om.peer.impl.base.getOMClass"/>
+    </mergepoint>
+    <mergepoint name="doUpdate">
+      <action xsi:type="applyAction" outlet="torque.om.peer.impl.base.doUpdate"/>
+    </mergepoint>
+    <mergepoint name="doDelete">
+      <action xsi:type="applyAction" outlet="torque.om.peer.impl.base.doDelete"/>
+    </mergepoint>
+    <mergepoint name="buildCriteria">
+      <action xsi:type="applyAction" outlet="torque.om.peer.impl.base.buildCriteria"/>
+    </mergepoint>
+    <mergepoint name="buildSelectCriteria">
+      <action xsi:type="applyAction" outlet="torque.om.peer.impl.base.buildSelectCriteria"/>
+    </mergepoint>
+    <mergepoint name="buildColumnValues">
+      <action xsi:type="applyAction" outlet="torque.om.peer.impl.base.buildColumnValues"/>
+    </mergepoint>
+    <mergepoint name="retrieveByPK">
+      <action xsi:type="applyAction" outlet="torque.om.peer.impl.base.retrieveByPK"/>
+    </mergepoint>
+    <mergepoint name="retrieveByPKs">
+      <action xsi:type="applyAction" outlet="torque.om.peer.impl.base.retrieveByPKs"/>
+    </mergepoint>
+    <mergepoint name="doSelectJoin">
+      <action xsi:type="traverseAllAction" element="foreign-key/foreign-field" outlet="torque.om.peer.impl.base.doSelectJoin"/>
+    </mergepoint>
+    <mergepoint name="doSelectJoinAllExcept">
+      <action xsi:type="traverseAllAction" element="foreign-key/foreign-field" outlet="torque.om.peer.impl.base.doSelectJoinAllExcept"/>
+    </mergepoint>
+    <mergepoint name="getTableMap">
+      <action xsi:type="applyAction" outlet="torque.om.peer.impl.base.getTableMap"/>
+    </mergepoint>
+    <mergepoint name="setDbName">
+      <action xsi:type="applyAction" outlet="torque.om.peer.impl.base.setDbName"/>
+    </mergepoint>
+    <mergepoint name="extensions" />
+  </outlet>
+
+  <outlet name="torque.om.peer.impl.base.imports"
+      xsi:type="velocityOutlet"
+      path="peer/impl/base/imports.vm">
+  </outlet>
+
+  <outlet name="torque.om.peer.impl.base.classJavadoc"
+      xsi:type="velocityOutlet"
+      path="peer/impl/base/classJavadoc.vm">
+  </outlet>
+
+  <outlet name="torque.om.peer.impl.base.log"
+      xsi:type="velocityOutlet"
+      path="peer/impl/base/log.vm">
+  </outlet>
+
+  <outlet name="torque.om.peer.impl.base.mapBuilderGetter"
+      xsi:type="velocityOutlet"
+      path="peer/impl/base/mapBuilderGetter.vm">
+  </outlet>
+
+  <outlet name="torque.om.peer.impl.base.resultSet2Objects"
+      xsi:type="velocityOutlet"
+      path="peer/impl/base/resultSet2Objects.vm">
+  </outlet>
+
+  <outlet name="torque.om.peer.impl.base.doInsert"
+      xsi:type="velocityOutlet"
+      path="peer/impl/base/doInsert.vm">
+  </outlet>
+
+  <outlet name="torque.om.peer.impl.base.addSelectColumns"
+      xsi:type="velocityOutlet"
+      path="peer/impl/base/addSelectColumns.vm">
+  </outlet>
+
+  <outlet name="torque.om.peer.impl.base.correctBooleans"
+      xsi:type="velocityOutlet"
+      path="peer/impl/base/correctBooleans.vm">
+  </outlet>
+
+  <outlet name="torque.om.peer.impl.base.doSelect"
+      xsi:type="velocityOutlet"
+      path="peer/impl/base/doSelect.vm">
+  </outlet>
+
+  <outlet name="torque.om.peer.impl.base.getOMClass"
+      xsi:type="velocityOutlet"
+      path="peer/impl/base/getOMClass.vm">
+  </outlet>
+
+  <outlet name="torque.om.peer.impl.base.doUpdate"
+      xsi:type="velocityOutlet"
+      path="peer/impl/base/doUpdate.vm">
+  </outlet>
+
+  <outlet name="torque.om.peer.impl.base.doDelete"
+      xsi:type="velocityOutlet"
+      path="peer/impl/base/doDelete.vm">
+  </outlet>
+
+  <outlet name="torque.om.peer.impl.base.buildCriteria"
+      xsi:type="velocityOutlet"
+      path="peer/impl/base/buildCriteria.vm">
+  </outlet>
+
+  <outlet name="torque.om.peer.impl.base.buildSelectCriteria"
+      xsi:type="velocityOutlet"
+      path="peer/impl/base/buildSelectCriteria.vm">
+  </outlet>
+
+  <outlet name="torque.om.peer.impl.base.buildColumnValues"
+      xsi:type="velocityOutlet"
+      path="peer/impl/base/buildColumnValues.vm">
+  </outlet>
+
+  <outlet name="torque.om.peer.impl.base.retrieveByPK"
+      xsi:type="velocityOutlet"
+      path="peer/impl/base/retrieveByPK.vm">
+  </outlet>
+
+  <outlet name="torque.om.peer.impl.base.retrieveByPKs"
+      xsi:type="velocityOutlet"
+      path="peer/impl/base/retrieveByPKs.vm">
+  </outlet>
+
+  <outlet name="torque.om.peer.impl.base.doSelectJoin"
+      xsi:type="velocityOutlet"
+      path="peer/impl/base/doSelectJoin.vm">
+  </outlet>
+
+  <outlet name="torque.om.peer.impl.base.doSelectJoinAllExcept"
+      xsi:type="velocityOutlet"
+      path="peer/impl/base/doSelectJoinAllExcept.vm">
+  </outlet>
+
+  <outlet name="torque.om.peer.impl.base.getTableMap"
+      xsi:type="velocityOutlet"
+      path="peer/impl/base/getTableMap.vm">
+  </outlet>
+
+  <outlet name="torque.om.peer.impl.base.setDbName"
+      xsi:type="velocityOutlet"
+      path="peer/impl/base/setDbName.vm">
+  </outlet>
+
   <outlet name="torque.om.basePeer"
       xsi:type="velocityOutlet"
       path="peer/base/basePeer.vm">
@@ -47,6 +241,9 @@
     <mergepoint name="classJavadoc">
       <action xsi:type="applyAction" outlet="torque.om.peer.base.classJavadoc"/>
     </mergepoint>
+    <mergepoint name="log">
+      <action xsi:type="applyAction" outlet="torque.om.peer.impl.base.log"/>
+    </mergepoint>
     <mergepoint name="serialVersionUid">
       <action xsi:type="applyAction" outlet="torque.om.serialVersionUid"/>
     </mergepoint>
@@ -58,9 +255,21 @@
           element="column"
           outlet="torque.om.peer.base.columnConstant"/>
     </mergepoint>
+    <mergepoint name="peerImplField">
+      <action xsi:type="applyAction" outlet="torque.om.peer.base.peerImplField"/>
+    </mergepoint>
     <mergepoint name="staticInit">
       <action xsi:type="applyAction" outlet="torque.om.peer.base.staticInit"/>
     </mergepoint>
+    <mergepoint name="peerImplCreator">
+      <action xsi:type="applyAction" outlet="torque.om.peer.base.peerImplCreator"/>
+    </mergepoint>
+    <mergepoint name="peerImplGetter">
+      <action xsi:type="applyAction" outlet="torque.om.peer.base.peerImplGetter"/>
+    </mergepoint>
+    <mergepoint name="peerImplSetter">
+      <action xsi:type="applyAction" outlet="torque.om.peer.base.peerImplSetter"/>
+    </mergepoint>
     <mergepoint name="mapBuilderGetter">
       <action xsi:type="applyAction" outlet="torque.om.peer.base.mapBuilderGetter"/>
     </mergepoint>
@@ -121,12 +330,6 @@
     <mergepoint name="getTableMap">
       <action xsi:type="applyAction" outlet="torque.om.peer.base.getTableMap"/>
     </mergepoint>
-    <mergepoint name="setDbName">
-      <action xsi:type="applyAction" outlet="torque.om.peer.base.setDbName"/>
-    </mergepoint>
-    <mergepoint name="recordMapper">
-      <action xsi:type="applyAction" outlet="torque.om.peer.base.recordmapper.recordMapper"/>
-    </mergepoint>
     <mergepoint name="extensions" />
   </outlet>
 
@@ -140,6 +343,11 @@
       path="peer/base/classJavadoc.vm">
   </outlet>
 
+  <outlet name="torque.om.peer.base.log"
+      xsi:type="velocityOutlet"
+      path="peer/base/log.vm">
+  </outlet>
+
   <outlet name="torque.om.peer.base.tableDatabaseNameConstants"
       xsi:type="velocityOutlet"
       path="peer/base/tableDatabaseNameConstants.vm">
@@ -155,6 +363,11 @@
       path="peer/base/tableDatabaseNameConstantsInit.vm">
   </outlet>
 
+  <outlet name="torque.om.peer.base.peerImplField"
+      xsi:type="velocityOutlet"
+      path="peer/base/peerImplField.vm">
+  </outlet>
+
   <outlet name="torque.om.peer.base.staticInit"
       xsi:type="velocityOutlet"
       path="peer/base/staticInit.vm">
@@ -182,6 +395,21 @@
       path="peer/base/mapBuilderInit.vm">
   </outlet>
 
+  <outlet name="torque.om.peer.base.peerImplCreator"
+      xsi:type="velocityOutlet"
+      path="peer/base/peerImplCreator.vm">
+  </outlet>
+
+  <outlet name="torque.om.peer.base.peerImplGetter"
+      xsi:type="velocityOutlet"
+      path="peer/base/peerImplGetter.vm">
+  </outlet>
+
+  <outlet name="torque.om.peer.base.peerImplSetter"
+      xsi:type="velocityOutlet"
+      path="peer/base/peerImplSetter.vm">
+  </outlet>
+
   <outlet name="torque.om.peer.base.mapBuilderGetter"
       xsi:type="velocityOutlet"
       path="peer/base/mapBuilderGetter.vm">
@@ -282,37 +510,4 @@
       path="peer/base/getTableMap.vm">
   </outlet>
 
-  <outlet name="torque.om.peer.base.setDbName"
-      xsi:type="velocityOutlet"
-      path="peer/base/setDbName.vm">
-  </outlet>
-
-  <outlet name="torque.om.peer.base.recordmapper.recordMapper"
-      xsi:type="velocityOutlet"
-      path="peer/base/recordmapper/recordMapper.vm">
-    <mergepoint name="createDbObjectInstance">
-      <action xsi:type="applyAction"
-          outlet="torque.om.createDbObjectInstance"/>
-    </mergepoint>
-    <mergepoint name="createDbObjectInstanceFromInheritance">
-      <action xsi:type="traverseAllAction"
-          element="inheritance-column"
-          outlet="torque.om.peer.base.recordmapper.createDbObjectInstanceFromInheritance"/>
-    </mergepoint>
-    <mergepoint name="dbObjectFieldGetters">
-      <action xsi:type="traverseAllAction"
-          element="column"
-          outlet="torque.om.peer.base.recordmapper.dbObjectFieldGetter"/>
-    </mergepoint>
-  </outlet>
-
-  <outlet name="torque.om.peer.base.recordmapper.dbObjectFieldGetter"
-      xsi:type="velocityOutlet"
-      path="peer/base/recordmapper/dbObjectFieldGetter.vm">
-  </outlet>
-  <outlet name="torque.om.peer.base.recordmapper.createDbObjectInstanceFromInheritance"
-      xsi:type="velocityOutlet"
-      path="peer/base/recordmapper/createDbObjectInstanceFromInheritance.vm">
-  </outlet>
-
 </outlets>
\ No newline at end of file

Added: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/outlets/recordMapper.xml
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/outlets/recordMapper.xml?rev=1103171&view=auto
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/outlets/recordMapper.xml (added)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/outlets/recordMapper.xml Sat May 14 17:34:23 2011
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+
+<outlets xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://db.apache.org/torque/4.0/generator/configuration http://db.apache.org/torque/4.0/generator/configuration.xsd"
+    xmlns="http://db.apache.org/torque/4.0/generator/configuration">
+
+  <outlet name="torque.om.recordmapper.recordMapper"
+      xsi:type="velocityOutlet"
+      path="recordmapper/recordMapper.vm">
+  </outlet>
+
+  <outlet name="torque.om.recordmapper.base.recordMapperBase"
+      xsi:type="velocityOutlet"
+      path="recordmapper/base/recordMapperBase.vm">
+    <mergepoint name="createDbObjectInstance">
+      <action xsi:type="applyAction"
+          outlet="torque.om.createDbObjectInstance"/>
+    </mergepoint>
+    <mergepoint name="createDbObjectInstanceFromInheritance">
+      <action xsi:type="traverseAllAction"
+          element="inheritance-column"
+          outlet="torque.om.recordmapper.basecreateDbObjectInstanceFromInheritance"/>
+    </mergepoint>
+    <mergepoint name="dbObjectFieldGetters">
+      <action xsi:type="traverseAllAction"
+          element="column"
+          outlet="torque.om.recordmapper.base.dbObjectFieldGetter"/>
+    </mergepoint>
+  </outlet>
+
+  <outlet name="torque.om.recordmapper.base.dbObjectFieldGetter"
+      xsi:type="velocityOutlet"
+      path="recordmapper/base/dbObjectFieldGetter.vm">
+  </outlet>
+
+  <outlet name="torque.om.recordmapper.basecreateDbObjectInstanceFromInheritance"
+      xsi:type="velocityOutlet"
+      path="recordmapper/base/createDbObjectInstanceFromInheritance.vm">
+  </outlet>
+</outlets>
\ No newline at end of file

Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/addSelectColumns.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/addSelectColumns.vm?rev=1103171&r1=1103170&r2=1103171&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/addSelectColumns.vm (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/addSelectColumns.vm Sat May 14 17:34:23 2011
@@ -37,8 +37,5 @@
     public static void addSelectColumns(Criteria criteria)
             throws TorqueException
     {
-#foreach ($columnElement in $torqueGen.getChildren("column"))
-  #set ( $peerColumnName = $columnElement.getAttribute("peerColumnName"))
-        criteria.addSelectColumn(${peerClassName}.$peerColumnName);
-#end
+        ${peerImplGetter}().addSelectColumns(criteria);
     }

Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/basePeer.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/basePeer.vm?rev=1103171&r1=1103170&r2=1103171&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/basePeer.vm (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/basePeer.vm Sat May 14 17:34:23 2011
@@ -33,22 +33,22 @@ $torqueGen.mergepoint("imports")
 
 $torqueGen.mergepoint("classJavadoc")
 public abstract class $basePeerClassName
+#if ( ${basePeerBaseClass} && (${basePeerBaseClass} != "") )
     extends ${basePeerBaseClass}
+#end
 {
+$torqueGen.mergepoint("log")
 $torqueGen.mergepoint("serialVersionUid")
-
 $torqueGen.mergepoint("tableDatabaseNameConstants")
-
 $torqueGen.mergepoint("columnConstants")
-
-$torqueGen.mergepoint("staticInit")
-
-$torqueGen.mergepoint("mapBuilderGetter")
-
 $torqueGen.mergepoint("numColumnConstant")
-
 $torqueGen.mergepoint("dbObjectClassConstants")
-
+$torqueGen.mergepoint("peerImplField")
+$torqueGen.mergepoint("staticInit")
+$torqueGen.mergepoint("peerImplCreator")
+$torqueGen.mergepoint("peerImplGetter")
+$torqueGen.mergepoint("peerImplSetter")
+$torqueGen.mergepoint("mapBuilderGetter")
 $torqueGen.mergepoint("classMethods")
 $torqueGen.mergepoint("resultSet2Objects")
 $torqueGen.mergepoint("addSelectColumns")

Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/buildColumnValues.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/buildColumnValues.vm?rev=1103171&r1=1103170&r2=1103171&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/buildColumnValues.vm (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/buildColumnValues.vm Sat May 14 17:34:23 2011
@@ -33,127 +33,9 @@
      * @throws TorqueException if the table map cannot be retrieved
      *         (should not happen).
      */
-    public static ColumnValues buildColumnValues($dbObjectClassName $field)
+    public static ColumnValues buildColumnValues(${dbObjectClassName} ${field})
             throws TorqueException
     {
-        ColumnValues columnValues = new ColumnValues(getTableMap());
-#foreach ($columnElement in $torqueGen.getChildren("column"))
-  #set ( $peerColumnName = $columnElement.getAttribute("peerColumnName") )
-  #set ( $getter = $columnElement.getAttribute("getter") )
-  #set ( $primaryKey = ($columnElement.getAttribute("primaryKey") == "true") )
-  #set ( $columnType = $columnElement.getAttribute("type") )
-  #set ( $columnSchemaType = $columnElement.getAttribute("schemaType") )
-  #set ( $columnFieldName = $columnElement.getAttribute("field") )
-  #set ( $columnFieldType = $columnElement.getAttribute("fieldType") )
-  #set ( $javaType = $columnElement.getAttribute("javaType") )
-  #if ($primaryKey && !$idMethod.equals("none"))
-    #if ("boolean" == $columnFieldType)
-        if (!${field}.isNew())
-    #elseif ("primitive" == $javaType)
-        if (!${field}.isNew() || ${field}.$getter() != 0)
-    #else
-        if (!${field}.isNew() || ${field}.$getter() != null)
-    #end
-        {
-    #if ($columnType == "DATE" && $columnFieldType == "java.util.Date")
-            java.util.Date $columnFieldName = ${field}.${getter}();
-            if ($columnFieldName != null)
-            {
-                $columnFieldName = new java.sql.Date(${columnFieldName}.getTime());
-            }
-            columnValues.put(
-                    ${peerClassName}.$peerColumnName,
-                    new JdbcTypedValue($columnFieldName, Types.DATE));
-    #elseif ($columnType == "TIME" && $columnFieldType == "java.util.Date")
-            java.util.Date $columnFieldName = ${field}.${getter}();
-            if ($columnFieldName != null)
-            {
-                $columnFieldName = new java.sql.Time(${columnFieldName}.getTime());
-            }
-            columnValues.put(
-                    ${peerClassName}.$peerColumnName,
-                    new JdbcTypedValue($columnFieldName, Types.TIME));
-    #elseif ($columnType == "TIMESTAMP" && $columnFieldType == "java.util.Date")
-            java.util.Date $columnFieldName = ${field}.${getter}();
-            if ($columnFieldName != null)
-            {
-                $columnFieldName = new java.sql.Timestamp(${columnFieldName}.getTime());
-            }
-            columnValues.put(
-                    ${peerClassName}.$peerColumnName,
-                    new JdbcTypedValue($columnFieldName, Types.TIMESTAMP));
-    #elseif ($columnType == "BOOLEANCHAR" && $columnFieldType.equalsIgnoreCase("boolean"))
-            String $columnFieldName = Boolean.TRUE.equals(${field}.${getter}())
-                                        ? "Y"
-                                        : "N";
-            columnValues.put(
-                    ${peerClassName}.$peerColumnName,
-                    new JdbcTypedValue($columnFieldName, Types.CHAR));
-    #elseif ($columnType == "BOOLEANINT" && $columnFieldType.equalsIgnoreCase("boolean"))
-            Integer $columnFieldName = Boolean.TRUE.equals(${field}.${getter}())
-                                        ? new Integer(1)
-                                        : new Integer(0);
-            columnValues.put(
-                    ${peerClassName}.$peerColumnName,
-                    new JdbcTypedValue($columnFieldName, Types.INTEGER));
-    #else
-            columnValues.put(
-                    ${peerClassName}.$peerColumnName,
-                    new JdbcTypedValue(
-                        ${field}.${getter}(),
-                        ${columnSchemaType.getJdbcType()}));
-    #end
-        }
-  #else
-    #if ($columnType == "DATE" && $columnFieldType == "java.util.Date")
-        java.util.Date $columnFieldName = ${field}.${getter}();
-        if ($columnFieldName != null)
-        {
-            $columnFieldName = new java.sql.Date(${columnFieldName}.getTime());
-        }
-        columnValues.put(
-                ${peerClassName}.$peerColumnName,
-                new JdbcTypedValue($columnFieldName, Types.DATE));
-    #elseif ($columnType == "TIME" && $columnFieldType == "java.util.Date")
-        java.util.Date $columnFieldName = ${field}.${getter}();
-        if ($columnFieldName != null)
-        {
-            $columnFieldName = new java.sql.Time(${columnFieldName}.getTime());
-        }
-        columnValues.put(
-                ${peerClassName}.$peerColumnName,
-                new JdbcTypedValue($columnFieldName, Types.TIME));
-    #elseif ($columnType == "TIMESTAMP" && $columnFieldType == "java.util.Date")
-        java.util.Date $columnFieldName = ${field}.${getter}();
-        if ($columnFieldName != null)
-        {
-            $columnFieldName = new java.sql.Timestamp(${columnFieldName}.getTime());
-        }
-        columnValues.put(
-                ${peerClassName}.$peerColumnName,
-                new JdbcTypedValue($columnFieldName, Types.TIMESTAMP));
-    #elseif ($columnType == "BOOLEANCHAR" && $columnFieldType.equalsIgnoreCase("boolean"))
-        String $columnFieldName = Boolean.TRUE.equals(${field}.${getter}())
-                                    ? "Y"
-                                    : "N";
-        columnValues.put(
-                ${peerClassName}.$peerColumnName,
-                new JdbcTypedValue($columnFieldName, Types.CHAR));
-    #elseif ($columnType == "BOOLEANINT" && $columnFieldType.equalsIgnoreCase("boolean"))
-        Integer $columnFieldName = Boolean.TRUE.equals(${field}.${getter}())
-                                    ? new Integer(1)
-                                    : new Integer(0);
-        columnValues.put(
-                ${peerClassName}.$peerColumnName,
-                new JdbcTypedValue($columnFieldName, Types.INTEGER));
-    #else
-        columnValues.put(
-                ${peerClassName}.$peerColumnName,
-                new JdbcTypedValue(
-                    ${field}.${getter}(),
-                    ${columnSchemaType.getJdbcType()}));
-    #end
-  #end
-#end
-        return columnValues;
+        
+        return ${peerImplGetter}().buildColumnValues(${field});
     }

Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/buildCriteria.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/buildCriteria.vm?rev=1103171&r1=1103170&r2=1103171&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/buildCriteria.vm (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/buildCriteria.vm Sat May 14 17:34:23 2011
@@ -35,23 +35,8 @@
      */
     public static Criteria buildCriteria(ObjectKey pk)
     {
-        Criteria criteria = new Criteria();
-#set ( $primaryKeyColumnElements = $torqueGen.getChild("primary-keys").getChildren("column") )
-#if ($primaryKeyColumnElements.size() == 1)
-  #set ( $primaryKeyColumnElement = $primaryKeyColumnElements.get(0) )
-  #set ( $peerColumnName = $primaryKeyColumnElement.getAttribute("peerColumnName") )
-        criteria.add(${peerClassName}.$peerColumnName, pk);
-#else
-        SimpleKey[] keys = (SimpleKey[])pk.getValue();
-  #set ( $i = 0 )
-  #foreach ($primaryKeyColumnElement in $primaryKeyColumnElements)
-    #set ( $peerColumnName = $primaryKeyColumnElement.getAttribute("peerColumnName") )
-        criteria.add(${peerClassName}.$peerColumnName, keys[$i]);
-    #set ( $i = $i + 1 )
-  #end
-#end
-        return criteria;
-     }
+        return ${peerImplGetter}().buildCriteria(pk);
+    }
 
     /** 
      * Build a Criteria object from the data object for this peer.
@@ -64,19 +49,5 @@
      */
     public static Criteria buildCriteria($dbObjectClassName obj)
     {
-        Criteria criteria = new Criteria(DATABASE_NAME);
-#foreach ($columnElement in $torqueGen.getChildren("column"))
-  #set ( $peerColumnName = $columnElement.getAttribute("peerColumnName") )
-  #set ( $getter = $columnElement.getAttribute("getter") )
-  #set ( $primaryKey = ($columnElement.getAttribute("primaryKey") == "true") )
-  #if ($primaryKey && !$idMethod.equals("none"))
-        if (!obj.isNew())
-        {
-            criteria.add(${peerClassName}.$peerColumnName, obj.${getter}());
-        }
-  #else
-        criteria.add(${peerClassName}.$peerColumnName, obj.${getter}());
-  #end
-  #end
-        return criteria;
+        return ${peerImplGetter}().buildCriteria(obj);
     }

Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/buildSelectCriteria.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/buildSelectCriteria.vm?rev=1103171&r1=1103170&r2=1103171&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/buildSelectCriteria.vm (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/buildSelectCriteria.vm Sat May 14 17:34:23 2011
@@ -39,22 +39,5 @@
      */
     public static Criteria buildSelectCriteria($dbObjectClassName obj)
     {
-        Criteria criteria = new Criteria(DATABASE_NAME);
-#foreach ($columnElement in $torqueGen.getChildren("column"))
-  #set ( $peerColumnName = $columnElement.getAttribute("peerColumnName") ) 
-  #set ( $columnFieldType = $columnElement.getAttribute("fieldType") ) 
-  #set ( $getter = $columnElement.getAttribute("getter") ) 
-  #set ( $primaryKey = ($columnElement.getAttribute("primaryKey") == "true") )
-  #if ( $columnFieldType != "byte[]" )
-    #if ($primaryKey && !$idMethod.equals("none"))
-        if (!obj.isNew())
-        {
-            criteria.add(${peerClassName}.$peerColumnName, obj.${getter}());
-        }
-    #else
-        criteria.add(${peerClassName}.$peerColumnName, obj.${getter}());
-    #end
-  #end
-#end
-        return criteria;
+        return ${peerImplGetter}().buildSelectCriteria(obj);
     }

Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/correctBooleans.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/correctBooleans.vm?rev=1103171&r1=1103170&r2=1103171&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/correctBooleans.vm (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/correctBooleans.vm Sat May 14 17:34:23 2011
@@ -31,12 +31,15 @@
      * changes the boolean values in the criteria to the appropriate type,
      * whenever a booleanchar or booleanint column is involved.
      * This enables the user to create criteria using Boolean values
-     * for booleanchar or booleanint columns
-     * @param criteria the criteria in which the boolean values should be corrected
+     * for booleanchar or booleanint columns.
+     *
+     * @param criteria the criteria in which the boolean values
+     *        should be corrected.
+     *
      * @throws TorqueException if the database map for the criteria cannot be 
                obtained.
      */
     public static void correctBooleans(Criteria criteria) throws TorqueException
     {
-        ${peerClassName}.correctBooleans(criteria, getTableMap());
+        ${peerImplGetter}().correctBooleans(criteria);
     }

Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/doDelete.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/doDelete.vm?rev=1103171&r1=1103170&r2=1103171&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/doDelete.vm (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/doDelete.vm Sat May 14 17:34:23 2011
@@ -36,23 +36,7 @@
      */
      public static void doDelete(Criteria criteria) throws TorqueException
      {
-        Connection connection = null;
-        try
-        {
-            connection = Transaction.beginOptional(
-                    DATABASE_NAME,
-                    true);
-            ${peerClassName}.doDelete(criteria, connection);
-            Transaction.commit(connection);
-            connection = null;
-        }
-        finally
-        {
-            if (connection != null)
-            {
-                Transaction.safeRollback(connection);
-            }
-        }
+        ${peerImplGetter}().doDelete(criteria);
      }
 
     /**
@@ -68,23 +52,18 @@
      public static void doDelete(Criteria criteria, Connection con)
         throws TorqueException
      {
-        ${peerClassName}.correctBooleans(criteria);
-
-        setDbName(criteria);
-
-        BasePeer.doDelete(criteria, TABLE_NAME, con);
+        ${peerImplGetter}().doDelete(criteria, con);
      }
 
     /**
+     * Method to delete.
      * @param obj the data object to delete in the database.
      * @throws TorqueException Any exceptions caught during processing will be
      *         rethrown wrapped into a TorqueException.
      */
     public static void doDelete($dbObjectClassName obj) throws TorqueException
     {
-        ## TODO use buildSelectCriteria if no pk is present
-        ${peerClassName}.doDelete(
-            ${peerClassName}.buildCriteria(obj.getPrimaryKey()));
+        ${peerImplGetter}().doDelete(obj);
     }
 
     /**
@@ -101,8 +80,7 @@
         throws TorqueException
     {
         ## TODO use buildSelectCriteria if no pk is present
-        ${peerClassName}.doDelete(
-            ${peerClassName}.buildCriteria(obj.getPrimaryKey()), con);
+        ${peerImplGetter}().doDelete(obj, con);
     }
 
     /**
@@ -114,7 +92,7 @@
      */
     public static void doDelete(ObjectKey pk) throws TorqueException
     {
-        ${peerClassName}.doDelete(pk, (Connection) null);
+        ${peerImplGetter}().doDelete(pk, (Connection) null);
     }
 
     /**
@@ -130,5 +108,5 @@
     public static void doDelete(ObjectKey pk, Connection con)
         throws TorqueException
     {
-        ${peerClassName}.doDelete(${peerClassName}.buildCriteria(pk), con);
+        ${peerImplGetter}().doDelete(pk, con);
     }

Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/doInsert.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/doInsert.vm?rev=1103171&r1=1103170&r2=1103171&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/doInsert.vm (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/doInsert.vm Sat May 14 17:34:23 2011
@@ -35,14 +35,7 @@
      */
     public static void doInsert($dbObjectClassName obj) throws TorqueException
     {
-  #if ($idMethod.equals("none") || $torqueGen.getChild("primary-keys").getChildren("column").isEmpty())
-        ${peerClassName}.doInsert(${peerClassName}.buildColumnValues(obj));
-  #else
-        obj.setPrimaryKey(${peerClassName}.doInsert(
-                ${peerClassName}.buildColumnValues(obj)));
-  #end
-        obj.setNew(false);
-        obj.setModified(false);
+        ${peerImplGetter}().doInsert(obj);
     }
 
     /**
@@ -58,16 +51,5 @@
     public static void doInsert($dbObjectClassName obj, Connection con)
         throws TorqueException
     {
-  #if ($idMethod.equals("none") || $torqueGen.getChild("primary-keys").getChildren("column").isEmpty())
-        ${peerClassName}.doInsert(${peerClassName}.buildColumnValues(obj), con);
-  #else
-        ObjectKey primaryKey = ${peerClassName}.doInsert(
-                ${peerClassName}.buildColumnValues(obj), con);
-        if (primaryKey != null)
-        {
-            obj.setPrimaryKey(primaryKey);
-        }
-  #end
-        obj.setNew(false);
-        obj.setModified(false);
+        ${peerImplGetter}().doInsert(obj, con);
     }

Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/doSelect.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/doSelect.vm?rev=1103171&r1=1103170&r2=1103171&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/doSelect.vm (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/doSelect.vm Sat May 14 17:34:23 2011
@@ -38,16 +38,7 @@
     public static List<${dbObjectClassName}> doSelect(Criteria criteria)
             throws TorqueException
     {
-        if (criteria.getSelectColumns().size() == 0)
-        {
-            ${peerClassName}.addSelectColumns(criteria);
-        }
-        setDbName(criteria);
-
-        return ${peerClassName}.doSelect(
-            criteria, 
-            new $recordMapperClass(),
-            getTableMap());
+        return ${peerImplGetter}().doSelect(criteria);
     }
 
     /**
@@ -65,17 +56,7 @@
                 Connection connection)
             throws TorqueException
     {
-        if (criteria.getSelectColumns().size() == 0)
-        {
-            ${peerClassName}.addSelectColumns(criteria);
-        }
-        setDbName(criteria);
-
-        return ${peerClassName}.doSelect(
-                criteria,
-                new $recordMapperClass(),
-                getTableMap(),
-                connection);
+        return ${peerImplGetter}().doSelect(criteria, connection);
     }
 
     /**
@@ -88,6 +69,5 @@
     public static List<${dbObjectClassName}> doSelect($dbObjectClassName obj)
             throws TorqueException
     {
-        return ${peerClassName}.doSelect(
-            ${peerClassName}.buildSelectCriteria(obj));
+        return ${peerImplGetter}().doSelect(obj);
     }

Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/doSelectJoin.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/doSelectJoin.vm?rev=1103171&r1=1103170&r2=1103171&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/doSelectJoin.vm (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/doSelectJoin.vm Sat May 14 17:34:23 2011
@@ -31,17 +31,7 @@
 #set ( $joinedTableElement = $foreignKeyElement.getChild("table") )
 #set ( $dbObjectClassName = $tableElement.getAttribute("dbObjectClassName") )
 #set ( $joinedDbObjectClassName = $joinedTableElement.getAttribute("dbObjectClassName") )
-#set ( $joinedDbObjectPackage = $joinedTableElement.getAttribute("dbObjectPackage") )
-#set ( $joinedDbObject = "${joinedDbObjectPackage}.$joinedDbObjectClassName" )
-#set ( $peerClassName = $tableElement.getAttribute("peerClassName") )
-#set ( $recordMapperClass = $tableElement.getAttribute("recordMapperClass") )
-#set ( $joinedPeerClassName = $joinedTableElement.getAttribute("peerClassName") )
-#set ( $joinedPeerMapperName = $joinedTableElement.getAttribute("recordMapperClass") )
-#set ( $joinedPeerPackage = $joinedTableElement.getAttribute("peerPackage") )
-#set ( $joinedPeer = "${joinedPeerPackage}.$joinedPeerClassName" )
-#set ( $referenceElements = $foreignKeyElement.getChildren("reference") )
-#set ( $localFieldElement = $foreignKeyElement.getChild("local-field"))
-#set ( $getterForJoinedDbObject = $localFieldElement.getAttribute("getter"))
+#set ( $peerImplGetter = $tableElement.getAttribute("peerImplGetter") )
     /**
      * Selects a collection of dbObjectClassName objects pre-filled with their
      * $joinedDbObjectClassName objects.
@@ -52,25 +42,7 @@
     public static List<${dbObjectClassName}> ${peerJoinSelectMethod}(Criteria criteria)
         throws TorqueException
     {
-        Connection connection = null;
-        try
-        {
-            connection = Transaction.beginOptional(
-                    DATABASE_NAME,
-                    true);
-            List<${dbObjectClassName}> result
-                    = $peerClassName.${peerJoinSelectMethod}(criteria, connection);
-            Transaction.commit(connection);
-            connection = null;
-            return result;
-        }
-        finally
-        {
-            if (connection != null)
-            {
-                Transaction.safeRollback(connection);
-            }
-        }
+        return ${peerImplGetter}().${peerJoinSelectMethod}(criteria);
     }
 
     /**
@@ -84,55 +56,5 @@
             Criteria criteria, Connection conn)
         throws TorqueException
     {
-        setDbName(criteria);
-
-        ${peerClassName}.addSelectColumns(criteria);
-        ${joinedPeer}.addSelectColumns(criteria);
-
-        CompositeMapper compositeMapper = new CompositeMapper();
-        compositeMapper.addMapper(new ${peerClassName}.${recordMapperClass}(), 0);
-        compositeMapper.addMapper(new ${joinedPeer}.$joinedPeerMapperName(), numColumns);
-  #foreach ($referenceElement in $referenceElements)
-    #set ( $joinedColumnElement = $referenceElement.getChild("foreign-column").getChild("column") )
-    #set ( $joinedPeerColumnName = $joinedColumnElement.getAttribute("peerColumnName") )
-    #set ( $columnElement = $referenceElement.getChild("local-column").getChild("column") )
-    #set ( $peerColumnName = $columnElement.getAttribute("peerColumnName") )
-        criteria.addJoin($peerClassName.$peerColumnName,
-            $joinedPeer.$joinedPeerColumnName);
-  #end
-
-        correctBooleans(criteria);
-
-        List<$dbObjectClassName> result = new ArrayList<$dbObjectClassName>();
-        List<List<Object>> rawResult = ${peerClassName}.doSelect(
-                criteria, compositeMapper, ${peerClassName}.getTableMap(), conn);
-        for (List<Object> rawResultRow : rawResult)
-        {
-            $dbObjectClassName obj1 = ($dbObjectClassName) rawResultRow.get(0);
-            $joinedDbObjectClassName obj2 = (${joinedDbObjectClassName}) rawResultRow.get(1);
-
-            boolean newObject = true;
-            for (int j = 0; j < result.size(); j++)
-            {
-                $dbObjectClassName temp_obj1 = result.get(j);
-                $joinedDbObject temp_obj2 = temp_obj1.${getterForJoinedDbObject}();
-                if (temp_obj2.getPrimaryKey().equals(obj2.getPrimaryKey()))
-                {
-                    newObject = false;
-  #if ($objectIsCaching)
-                    temp_obj2.${adder}(obj1);
-  #end
-                    break;
-                }
-            }
-  #if ($objectIsCaching)
-            if (newObject)
-            {
-                obj2.${initializer}();
-                obj2.${adder}(obj1);
-            }
-  #end
-            result.add(obj1);
-        }
-        return result;
+        return ${peerImplGetter}().${peerJoinSelectMethod}(criteria, conn);
     }

Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/doSelectJoinAllExcept.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/doSelectJoinAllExcept.vm?rev=1103171&r1=1103170&r2=1103171&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/doSelectJoinAllExcept.vm (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/doSelectJoinAllExcept.vm Sat May 14 17:34:23 2011
@@ -30,15 +30,9 @@
 #set ( $tableElement = $foreignKeyElement.getParent() )
 #set ( $foreignKeyElements = $tableElement.getChildren("foreign-key"))
 #if ($foreignKeyElements.size() > 2)
-  #set ( $tableName = $tableElement.getAttribute("name") )
-  #set ( $excludeTableElement = $foreignKeyElement.getChild("table") )
   #set ( $peerClassName = $tableElement.getAttribute("peerClassName") )
-  #set ( $tableField = $tableElement.getAttribute("field") )
-  #set ( $peerPackage = $tableElement.getAttribute("peerPackage") )
-  #set ( $recordMapperClass = $tableElement.getAttribute("recordMapperClass") )
+  #set ( $peerImplGetter = $tableElement.getAttribute("peerImplGetter") )
   #set ( $dbObjectClassName = $tableElement.getAttribute("dbObjectClassName") )
-  #set ( $dbObjectPackage = $tableElement.getAttribute("dbObjectPackage") )
-  #set ( $dbObject = "${dbObjectPackage}.$dbObjectClassName" )
     /**
      * selects a collection of $dbObjectClassName objects pre-filled with
      * all related objects.
@@ -53,25 +47,7 @@
     protected static List<${dbObjectClassName}> ${peerJoinAllExceptSelectMethod}(Criteria criteria)
         throws TorqueException
     {
-        Connection connection = null;
-        try
-        {
-            connection = Transaction.beginOptional(
-                    DATABASE_NAME,
-                    true);
-            List<${dbObjectClassName}> result
-                    = $peerClassName.${peerJoinAllExceptSelectMethod}(criteria, connection);
-            Transaction.commit(connection);
-            connection = null;
-            return result;
-        }
-        finally
-        {
-            if (connection != null)
-            {
-                Transaction.safeRollback(connection);
-            }
-        }
+        return ${peerImplGetter}().${peerJoinAllExceptSelectMethod}(criteria);
     }
 
     /**
@@ -88,98 +64,6 @@
     protected static List<${dbObjectClassName}> ${peerJoinAllExceptSelectMethod}(Criteria criteria, Connection conn)
         throws TorqueException
     {
-        setDbName(criteria);
-
-        CompositeMapper compositeMapper = new CompositeMapper();
-        compositeMapper.addMapper(new ${peerClassName}.${recordMapperClass}(), 0);
-        ${peerClassName}.addSelectColumns(criteria);
-        int offset = numColumns;
-  #foreach ($joinedForeignKeyElement in $foreignKeyElements)
-    #if ($joinedForeignKeyElement != $foreignKeyElement)
-      #set ( $joinedTableElement = $joinedForeignKeyElement.getChild("table"))
-      #set ( $joinedTableName = $joinedTableElement.getAttribute("name"))
-      ## want to cover this case, but the code is not there yet.
-      #if ( $joinedTableName != $tableName )
-        #set ( $joinedPeerClassName = $joinedTableElement.getAttribute("peerClassName") )
-        #set ( $joinedPeerPackage = $joinedTableElement.getAttribute("peerPackage") )
-        #set ( $joinedPeer = "${joinedPeerPackage}.${joinedPeerClassName}" )
-        #set ( $joinedPeerMapperName = $joinedTableElement.getAttribute("recordMapperClass") )
-        #set ( $referenceElements = $joinedForeignKeyElement.getChildren("reference") )
- 
-        ${joinedPeer}.addSelectColumns(criteria);
-        #foreach ($referenceElement in $referenceElements)
-          #set ( $columnElement = $referenceElement.getChild("local-column").getChild("column"))
-          #set ( $joinedColumnElement = $referenceElement.getChild("foreign-column").getChild("column"))
-          #set ( $peerColumnName = $columnElement.getAttribute("peerColumnName") )
-          #set ( $joinedPeerColumnName = $joinedColumnElement.getAttribute("peerColumnName") )
-        criteria.addJoin(${peerClassName}.$peerColumnName, ${joinedPeer}.$joinedPeerColumnName);
-        #end
-        compositeMapper.addMapper(new ${joinedPeer}.$joinedPeerMapperName(), offset);
-        offset = offset + ${joinedPeer}.numColumns;
-      #end
-    #end
-  #end
-
-        correctBooleans(criteria);
-
-        List<$dbObjectClassName> result = new ArrayList<$dbObjectClassName>();
-        List<List<Object>> rawResult = ${peerClassName}.doSelect(
-                criteria, compositeMapper, ${peerClassName}.getTableMap(), conn);
-        for (List<Object> rawResultRow : rawResult)
-        {
-            $dbObjectClassName $tableField = ($dbObjectClassName) rawResultRow.get(0);
-  #set ( $index = 0 )
-  #foreach ($joinedForeignKeyElement in $foreignKeyElements)
-    #if ($joinedForeignKeyElement != $foreignKeyElement)
-      #set ( $joinedTableElement = $joinedForeignKeyElement.getChild("table"))
-      #set ( $joinedTableName = $joinedTableElement.getAttribute("name"))
-      ## want to cover this case, but the code is not there yet.
-      #if ( $joinedTableName != $tableName )
-        #set ( $joinedPeerClassName = $joinedTableElement.getAttribute("peerClassName") )
-        #set ( $joinedPeerPackage = $joinedTableElement.getAttribute("peerPackage") )
-        #set ( $joinedPeer = "${joinedPeerPackage}.${joinedPeerClassName}" )
-        #set ( $joinedDbObjectClassName = $joinedTableElement.getAttribute("dbObjectClassName") )
-        #set ( $joinedDbObjectPackage = $joinedTableElement.getAttribute("dbObjectPackage") )
-        #set ( $joinedDbObject = "${joinedDbObjectPackage}.${joinedDbObjectClassName}" )
-        #set ( $foreignField = $joinedForeignKeyElement.getChild("foreign-field") )
-        #set ( $adderInJoinedDbObject = $foreignField.getAttribute("adder") )
-        #set ( $initializerInJoinedDbObject = $foreignField.getAttribute("initializer") )
-        #set ( $localField = $joinedForeignKeyElement.getChild("local-field") )
-        #set ( $getter = $localField.getAttribute("getter") )
-        #set ( $index = $index + 1 )
-
-            $joinedDbObject obj$index = (${joinedDbObject}) rawResultRow.get($index);
-         #if ($index == 1)
-           #set ( $boolean = "boolean " )
-         #else
-           #set ( $boolean = "")
-         #end
-            ${boolean}newObject = true;
-            for (int j = 0; j < result.size(); j++)
-            {
-                $dbObject temp_${tableField} = result.get(j);
-                $joinedDbObject temp_obj$index = temp_${tableField}.${getter}();
-                if (temp_obj${index}.getPrimaryKey().equals(obj${index}.getPrimaryKey()))
-                {
-                    newObject = false;
-                #if ($objectIsCaching)
-                    temp_obj${index}.${adderInJoinedDbObject}($tableField);
-                #end
-                    break;
-                }
-            }
-        #if ($objectIsCaching)
-            if (newObject)
-            {
-                obj${index}.${initializerInJoinedDbObject}();
-                obj${index}.${adderInJoinedDbObject}($tableField);
-            }
-        #end
-      #end
-    #end
-  #end
-            result.add($tableField);
-        }
-        return result;
+        return ${peerImplGetter}().${peerJoinAllExceptSelectMethod}(criteria, conn);
     }
 #end

Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/doUpdate.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/doUpdate.vm?rev=1103171&r1=1103170&r2=1103171&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/doUpdate.vm (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/doUpdate.vm Sat May 14 17:34:23 2011
@@ -37,24 +37,7 @@
      */
     public static int doUpdate(ColumnValues columnValues) throws TorqueException
     {
-        Connection connection = null;
-        try
-        {
-            connection = Transaction.beginOptional(
-                    DATABASE_NAME,
-                    true);
-            int result = ${peerClassName}.doUpdate(columnValues, connection);
-            Transaction.commit(connection);
-            connection = null;
-            return result;
-        }
-        finally
-        {
-            if (connection != null)
-            {
-                Transaction.safeRollback(connection);
-            }
-        }
+        return ${peerImplGetter}().doUpdate(columnValues);
     }
 
     /**
@@ -74,20 +57,7 @@
     public static int doUpdate(ColumnValues columnValues, Connection con)
         throws TorqueException
     {
-        Criteria selectCriteria = new Criteria(DATABASE_NAME, 2);
-        ${peerClassName}.correctBooleans(columnValues);
-
-#foreach ($columnElement in $torqueGen.getChildren("column"))
-
-  #if($columnElement.getAttribute("primaryKey") == "true")
-    #set ( $peerColumnName = $columnElement.getAttribute("peerColumnName") )
-    
-        selectCriteria.put(
-                ${peerClassName}.$peerColumnName,
-                columnValues.remove(${peerClassName}.$peerColumnName).getValue());
-  #end
-#end
-        return BasePeer.doUpdate(selectCriteria, columnValues, con);
+        return ${peerImplGetter}().doUpdate(columnValues, con);
     }
 
     /**
@@ -103,15 +73,7 @@
      */
     public static int doUpdate($dbObjectClassName obj) throws TorqueException
     {
-#if ($torqueGen.getChild("primary-keys").getChildren("column").isEmpty())
-        throw new TorqueException(
-                "doUpdate does not work for objects without primary key");
-#else
-        ColumnValues columnValues = ${peerClassName}.buildColumnValues(obj);
-        int result = ${peerClassName}.doUpdate(columnValues);
-        obj.setModified(false);
-        return result;
-#end
+        return ${peerImplGetter}().doUpdate(obj);
     }
 
     /**
@@ -129,13 +91,5 @@
     public static int doUpdate($dbObjectClassName obj, Connection con)
         throws TorqueException
     {
-  #if ($torqueGen.getChild("primary-keys").getChildren("column").isEmpty())
-        throw new TorqueException(
-                "doUpdate does not work for objects without primary key");
-  #else
-        ColumnValues columnValues = ${peerClassName}.buildColumnValues(obj);
-        int result = ${peerClassName}.doUpdate(columnValues, con);
-        obj.setModified(false);
-        return result;
-  #end
+        return ${peerImplGetter}().doUpdate(obj, con);
     }

Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/getOMClass.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/getOMClass.vm?rev=1103171&r1=1103170&r2=1103171&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/getOMClass.vm (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/getOMClass.vm Sat May 14 17:34:23 2011
@@ -38,14 +38,6 @@
     public static Class<?> getOMClass()
         throws TorqueException
     {
-#if ($abstract == "true")
-        String error = "You must implement the getOMClass method in your";
-               error += " Peer object in order for things to work properly.";
-               error += " This method should return the proper Class that";
-               error += " represents the Peer's Business Object.";
-        throw new TorqueException (error);
-#else
-        return ${peerClassName}.CLASS_DEFAULT;
-#end
+        return ${peerImplGetter}().getOMClass();
     }
 

Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/getTableMap.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/getTableMap.vm?rev=1103171&r1=1103170&r2=1103171&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/getTableMap.vm (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/getTableMap.vm Sat May 14 17:34:23 2011
@@ -31,5 +31,5 @@
     public static TableMap getTableMap()
         throws TorqueException
     {
-        return Torque.getDatabaseMap(DATABASE_NAME).getTable(TABLE_NAME);
+        return ${peerImplGetter}().getTableMap();
     }

Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/imports.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/imports.vm?rev=1103171&r1=1103170&r2=1103171&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/imports.vm (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/imports.vm Sat May 14 17:34:23 2011
@@ -47,6 +47,8 @@ import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.torque.NoRowsException;
 import org.apache.torque.TooManyRowsException;
 import org.apache.torque.Torque;

Added: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/log.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/log.vm?rev=1103171&view=auto
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/log.vm (added)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/log.vm Sat May 14 17:34:23 2011
@@ -0,0 +1,31 @@
+## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements.  See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership.  The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License.  You may obtain a copy of the License at
+##
+##   http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied.  See the License for the
+## specific language governing permissions and limitations
+## under the License.
+##
+######
+##
+## version $Id: MultiExtendBean.vm 240328 2005-08-26 22:02:48 +0200 (Fr, 26 Aug 2005) tfischer $
+##
+## Creates the base peer class.
+## 
+## This template expects the current source element to be a "table" element 
+## from the torque schema.
+## The schema needs to be processed by the OMTransformer.
+## The options and the attributes of the current source element must be set
+## as velocity variables.  
+##
+    /** The class log. */
+    private static Log log = LogFactory.getLog(${basePeerImplClassName}.class);
\ No newline at end of file

Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/mapBuilderGetter.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/mapBuilderGetter.vm?rev=1103171&r1=1103170&r2=1103171&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/mapBuilderGetter.vm (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/mapBuilderGetter.vm Sat May 14 17:34:23 2011
@@ -36,6 +36,5 @@
     public static MapBuilder getMapBuilder()
         throws TorqueException
     {
-        return Torque.getMapBuilder(
-                ${mapBuilderPackage}.${mapBuilderClassName}.CLASS_NAME);
+        return ${peerImplGetter}().getMapBuilder();
     }

Added: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/peerImplCreator.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/peerImplCreator.vm?rev=1103171&view=auto
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/peerImplCreator.vm (added)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/peerImplCreator.vm Sat May 14 17:34:23 2011
@@ -0,0 +1,37 @@
+## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements.  See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership.  The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License.  You may obtain a copy of the License at
+##
+##   http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied.  See the License for the
+## specific language governing permissions and limitations
+## under the License.
+##
+######
+##
+## version $Id: MultiExtendBean.vm 240328 2005-08-26 22:02:48 +0200 (Fr, 26 Aug 2005) tfischer $
+##
+## Creates the creator method for the peer implementation. 
+## 
+## This template expects the current source element to be a "table" element 
+## from the torque schema.
+## The schema needs to be processed by the OMTransformer.
+##
+    /**
+     * Creates a new instance of the  implementation of the peer.
+     *
+     * @return the new instance.
+     */
+    protected static ${peerImplClassName} create${peerImplClassName}()
+    {
+        return new ${peerImplClassName}();
+    }
+

Copied: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/peerImplField.vm (from r1056939, db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/dbObjectClassConstants.vm)
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/peerImplField.vm?p2=db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/peerImplField.vm&p1=db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/dbObjectClassConstants.vm&r1=1056939&r2=1103171&rev=1103171&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/dbObjectClassConstants.vm (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/peerImplField.vm Sat May 14 17:34:23 2011
@@ -19,50 +19,12 @@
 ##
 ## version $Id: MultiExtendBean.vm 240328 2005-08-26 22:02:48 +0200 (Fr, 26 Aug 2005) tfischer $
 ##
-## Creates the constants for the class of the database object. 
+## Creates the field holding the peer implementation. 
 ## 
 ## This template expects the current source element to be a "table" element 
 ## from the torque schema.
 ## The schema needs to be processed by the OMTransformer.
-## The options and the attributes of the current source element must be set
-## as velocity variables.  
 ##
-    /** A class that can be returned by this peer. */
-    protected static final String CLASSNAME_DEFAULT =
-        "${dbObjectPackage}.${dbObjectClassName}";
+    /** The implementation of the peer. */
+    protected static ${peerImplClassName} ${peerImplFieldName};
 
-    /** A class that can be returned by this peer. */
-    protected static final Class<?> CLASS_DEFAULT = initClass(CLASSNAME_DEFAULT);
-
-#set ($inheritanceColumnBaseElement = $torqueGen.getChild("inheritance-column"))
-#if ($inheritanceColumnBaseElement)
-  #set ( $columnElement = $inheritanceColumnBaseElement.getChild("column") )
-  #set ( $inheritanceElements = $columnElement.getChildren("inheritance"))
-  ## NOTE: this hack requires a class type definition column to
-  ## be a primitive type or a String. Should not be a bad assumption
-  #if ($columnElement.getAttribute("primitive") == "true")
-    #set ($quote = "")
-  #else
-    #set ($quote = '"')
-  #end
-  #set ( $columnFieldType = $columnElement.getAttribute("fieldType") )
-  #foreach ($inheritanceElement in $inheritanceElements)
-    #set ( $key = $inheritanceElement.getAttribute("key") )
-    #set ( $class = $inheritanceElement.getAttribute("class") )
-    #set ( $classConstant = $inheritanceElement.getAttribute("classConstant") )
-    #set ( $classkeyConstant = $inheritanceElement.getAttribute("classkeyConstant") )
-    #set ( $classnameConstant = $inheritanceElement.getAttribute("classnameConstant") )
-    /** A key representing a particular subclass */
-    public static final $columnFieldType $classkeyConstant =
-        $quote$key$quote;
-
-    /** A class that can be returned by this peer. */
-    public static final String $classnameConstant =
-        "${dbObjectPackage}.$class";
-
-    /** A class that can be returned by this peer. */
-    public static final Class<?> $classConstant =
-        initClass($classnameConstant);
-
-  #end
-#end



---------------------------------------------------------------------
To unsubscribe, e-mail: torque-dev-unsubscribe@db.apache.org
For additional commands, e-mail: torque-dev-help@db.apache.org