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 2012/11/27 21:02:37 UTC
svn commit: r1414363 [1/2] - in /db/torque/torque4/trunk:
torque-templates/src/main/java/org/apache/torque/templates/
torque-templates/src/main/java/org/apache/torque/templates/transformer/om/
torque-templates/src/main/resources/org/apache/torque/templ...
Author: tfischer
Date: Tue Nov 27 20:02:32 2012
New Revision: 1414363
URL: http://svn.apache.org/viewvc?rev=1414363&view=rev
Log:
TORQUE-182 Additional methods for handling associated objects
TORQUE-249 add valueEquals method
Added:
db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/base/valueEquals.vm
db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/setAndSaveReferencing.vm
db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/setAndSaveReferencing.vm
db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/generated/dataobject/ValueEqualsTest.java (with props)
db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/generated/peer/SetAndSaveTest.java (with props)
Modified:
db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/TemplateOptionName.java
db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/FieldHelper.java
db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/OMForeignKeyTransformer.java
db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/conf/options.properties
db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/outlets/basePeer.xml
db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/outlets/dbObject.xml
db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/outlets/peerImpl.xml
db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/base/baseDbObject.vm
db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/base/baseDbObjectForView.vm
db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/base/copyMethods.vm
db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/base/initializerReferencingObject.vm
db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/basePeer.vm
db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/basePeerImpl.vm
db/torque/torque4/trunk/torque-test/src/main/schema/foreign-key-schema.xml
db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/ForeignKeySchemaData.java
db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/generated/peer/DeleteTest.java
db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/generated/peer/FillerTest.java
Modified: db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/TemplateOptionName.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/TemplateOptionName.java?rev=1414363&r1=1414362&r2=1414363&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/TemplateOptionName.java (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/TemplateOptionName.java Tue Nov 27 20:02:32 2012
@@ -108,6 +108,12 @@ public enum TemplateOptionName implement
/** The name of the option for the suffix of the filler methods. */
OM_FILLER_SUFFIX("torque.om.complexObjectModel.fillerSuffix"),
+ /** The name of the option for the prefix of the setAndSave methods. */
+ OM_SET_AND_SAVE_PREFIX("torque.om.complexObjectModel.setAndSavePrefix"),
+
+ /** The name of the option for the suffix of the setAndSave methods. */
+ OM_SET_AND_SAVE_SUFFIX("torque.om.complexObjectModel.setAndSaveSuffix"),
+
/**
* The name of the option for the part added to the referencing
* direction if naming conflicts occur.
Modified: db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/FieldHelper.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/FieldHelper.java?rev=1414363&r1=1414362&r2=1414363&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/FieldHelper.java (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/FieldHelper.java Tue Nov 27 20:02:32 2012
@@ -176,7 +176,7 @@ final class FieldHelper
* naming conflicts, not null.
* @param controllerState the current controller state, not null.
*
- * @return the initializer method name, not null.
+ * @return the filler method name, not null.
*/
public static String getFillerName(
String fieldName,
@@ -192,4 +192,29 @@ final class FieldHelper
TemplateOptionName.OM_FILLER_SUFFIX);
return fillerName;
}
+
+ /**
+ * Returns the name of the setAndSave method for a field.
+ *
+ * @param fieldName the name of the field, not null.
+ * @param distinctionPart a possible distinction addition for resolving
+ * naming conflicts, not null.
+ * @param controllerState the current controller state, not null.
+ *
+ * @return the setAndSave method name, not null.
+ */
+ public static String getSetAndSaveMethodName(
+ String fieldName,
+ String distinctionPart,
+ ControllerState controllerState)
+ {
+ String fillerName
+ = controllerState.getOption(
+ TemplateOptionName.OM_SET_AND_SAVE_PREFIX)
+ + distinctionPart
+ + StringUtils.capitalize(fieldName)
+ + controllerState.getOption(
+ TemplateOptionName.OM_SET_AND_SAVE_SUFFIX);
+ return fillerName;
+ }
}
Modified: db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/OMForeignKeyTransformer.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/OMForeignKeyTransformer.java?rev=1414363&r1=1414362&r2=1414363&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/OMForeignKeyTransformer.java (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/OMForeignKeyTransformer.java Tue Nov 27 20:02:32 2012
@@ -264,6 +264,16 @@ public class OMForeignKeyTransformer
fillerName);
}
{
+ String setAndSaveMethodName
+ = FieldHelper.getSetAndSaveMethodName(
+ getterSetterFieldName,
+ "",
+ controllerState);
+ foreignFieldElement.setAttribute(
+ "setAndSaveMethodName",
+ setAndSaveMethodName);
+ }
+ {
// Name for a getter in the foreign table to
// retrieve entries in the foreign table plus the joined
// entries in the local table.
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=1414363&r1=1414362&r2=1414363&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 Tue Nov 27 20:02:32 2012
@@ -185,6 +185,11 @@ torque.om.complexObjectModel.fillerSuffi
# filler methods for referencing and referenced objects have the same name
torque.om.complexObjectModel.fillerReferencingDistinction = Referencing
+# The prefix of the setAndSave methods.
+torque.om.complexObjectModel.setAndSavePrefix = setAndSave
+# The suffix of the setAndSave methods. */
+torque.om.complexObjectModel.setAndSaveSuffix = s
+
# The default chunk size for the filler methods.
torque.om.complexObjectModel.defaultFillerChunkSize=999
Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/outlets/basePeer.xml
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/outlets/basePeer.xml?rev=1414363&r1=1414362&r2=1414363&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/outlets/basePeer.xml (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/outlets/basePeer.xml Tue Nov 27 20:02:32 2012
@@ -128,6 +128,11 @@
element="referencing-foreign-keys/foreign-key/foreign-field"
outlet="torque.om.peer.base.fillReferencingObjects"/>
</mergepoint>
+ <mergepoint name="setAndSaveReferencing">
+ <action xsi:type="traverseAllAction"
+ element="referencing-foreign-keys/foreign-key/foreign-field"
+ outlet="torque.om.peer.base.setAndSaveReferencing"/>
+ </mergepoint>
<mergepoint name="getTableMap">
<action xsi:type="applyAction" outlet="torque.om.peer.base.getTableMap"/>
</mergepoint>
@@ -413,6 +418,11 @@
path="peer/base/fillReferencingObjects.vm">
</outlet>
+ <outlet name="torque.om.peer.base.setAndSaveReferencing"
+ xsi:type="velocityOutlet"
+ path="peer/base/setAndSaveReferencing.vm">
+ </outlet>
+
<outlet name="torque.om.peer.base.getTableMap"
xsi:type="velocityOutlet"
path="peer/base/getTableMap.vm">
Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/outlets/dbObject.xml
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/outlets/dbObject.xml?rev=1414363&r1=1414362&r2=1414363&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/outlets/dbObject.xml (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/outlets/dbObject.xml Tue Nov 27 20:02:32 2012
@@ -166,6 +166,10 @@
<action xsi:type="applyAction"
outlet="torque.om.dbObject.base.equalsHashCode"/>
</mergepoint>
+ <mergepoint name="valueEquals">
+ <action xsi:type="applyAction"
+ outlet="torque.om.dbObject.base.valueEquals"/>
+ </mergepoint>
<mergepoint name="toString">
<action xsi:type="applyAction"
outlet="torque.om.dbObject.base.toString"/>
@@ -240,6 +244,10 @@
<action xsi:type="applyAction"
outlet="torque.om.dbObject.base.equalsHashCode"/>
</mergepoint>
+ <mergepoint name="valueEquals">
+ <action xsi:type="applyAction"
+ outlet="torque.om.dbObject.base.valueEquals"/>
+ </mergepoint>
<mergepoint name="toString">
<action xsi:type="applyAction"
outlet="torque.om.dbObject.base.toString"/>
@@ -445,6 +453,11 @@
path="dbObject/base/equalsHashCode.vm">
</outlet>
+ <outlet name="torque.om.dbObject.base.valueEquals"
+ xsi:type="velocityOutlet"
+ path="dbObject/base/valueEquals.vm">
+ </outlet>
+
<outlet name="torque.om.dbObject.base.toString"
xsi:type="velocityOutlet"
path="dbObject/base/toString.vm">
Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/outlets/peerImpl.xml
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/outlets/peerImpl.xml?rev=1414363&r1=1414362&r2=1414363&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/outlets/peerImpl.xml (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/outlets/peerImpl.xml Tue Nov 27 20:02:32 2012
@@ -107,6 +107,11 @@
element="referencing-foreign-keys/foreign-key/foreign-field"
outlet="torque.om.peer.impl.base.fillReferencingObjects"/>
</mergepoint>
+ <mergepoint name="setAndSaveReferencing">
+ <action xsi:type="traverseAllAction"
+ element="referencing-foreign-keys/foreign-key/foreign-field"
+ outlet="torque.om.peer.impl.base.setAndSaveReferencing"/>
+ </mergepoint>
<mergepoint name="extensions" />
</outlet>
@@ -239,4 +244,8 @@
path="peer/impl/base/fillReferencingObjects.vm">
</outlet>
+ <outlet name="torque.om.peer.impl.base.setAndSaveReferencing"
+ xsi:type="velocityOutlet"
+ path="peer/impl/base/setAndSaveReferencing.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/dbObject/base/baseDbObject.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/base/baseDbObject.vm?rev=1414363&r1=1414362&r2=1414363&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/base/baseDbObject.vm (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/base/baseDbObject.vm Tue Nov 27 20:02:32 2012
@@ -116,5 +116,6 @@ $torqueGen.mergepoint("getCurrentTimesta
$torqueGen.mergepoint("toString")
$torqueGen.mergepoint("equalsHashCode")
+$torqueGen.mergepoint("valueEquals")
$torqueGen.mergepoint("extensions")
}
Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/base/baseDbObjectForView.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/base/baseDbObjectForView.vm?rev=1414363&r1=1414362&r2=1414363&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/base/baseDbObjectForView.vm (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/base/baseDbObjectForView.vm Tue Nov 27 20:02:32 2012
@@ -129,5 +129,6 @@ $torqueGen.mergepoint("objectBeanMethods
$torqueGen.mergepoint("toString")
$torqueGen.mergepoint("equalsHashCode")
+$torqueGen.mergepoint("valueEquals")
$torqueGen.mergepoint("extensions")
}
Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/base/copyMethods.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/base/copyMethods.vm?rev=1414363&r1=1414362&r2=1414363&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/base/copyMethods.vm (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/base/copyMethods.vm Tue Nov 27 20:02:32 2012
@@ -94,7 +94,7 @@ $torqueGen.mergepoint("createObjectInsta
*
* @param copyObj the object to fill.
*/
- protected $dbObjectClassName copyInto($dbObjectClassName copyObj) throws TorqueException
+ public $dbObjectClassName copyInto($dbObjectClassName copyObj) throws TorqueException
{
return copyInto(copyObj, true);
}
@@ -106,7 +106,7 @@ $torqueGen.mergepoint("createObjectInsta
* @param copyObj the object to fill.
* @param con the database connection to read associated objects.
*/
- protected $dbObjectClassName copyInto($dbObjectClassName copyObj, Connection con) throws TorqueException
+ public $dbObjectClassName copyInto($dbObjectClassName copyObj, Connection con) throws TorqueException
{
return copyInto(copyObj, true, con);
}
@@ -199,7 +199,7 @@ $torqueGen.mergepoint("createObjectInsta
* @param deepcopy whether the associated objects should be copied.
* @param con the database connection to read associated objects.
*/
- protected $dbObjectClassName copyInto($dbObjectClassName copyObj, boolean deepcopy, Connection con) throws TorqueException
+ public $dbObjectClassName copyInto($dbObjectClassName copyObj, boolean deepcopy, Connection con) throws TorqueException
{
#set ( $columnElements = $torqueGen.getChildren("column") )
#foreach ($columnElement in $columnElements)
Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/base/initializerReferencingObject.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/base/initializerReferencingObject.vm?rev=1414363&r1=1414362&r2=1414363&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/base/initializerReferencingObject.vm (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/base/initializerReferencingObject.vm Tue Nov 27 20:02:32 2012
@@ -27,12 +27,17 @@
## by the OMTransformer.
##
/**
- * Initializes the cache $field for referenced objects.
+ * Initializes the cache $field for referenced objects.
+ * This, means, if $field is null when this operation is called, it is
+ * initialized with an empty collection, otherwise it remains unchanged.
+ *
+ * @return the (possibly new) content of the field $field, not null.
*/
- public void ${initializer}()
+ public ${fieldType} ${initializer}()
{
- if ($field == null)
+ if (${field} == null)
{
- $field = new ${initializerType}();
+ ${field} = new ${initializerType}();
}
+ return ${field};
}
Added: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/base/valueEquals.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/base/valueEquals.vm?rev=1414363&view=auto
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/base/valueEquals.vm (added)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/base/valueEquals.vm Tue Nov 27 20:02:32 2012
@@ -0,0 +1,59 @@
+## 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: equalsHashCode.vm 1331196 2012-04-27 02:56:12Z tfischer $
+##
+## Creates the vLUWequals and hashCode methods.
+## This template expects as input a "table" element from the torque schema,
+## processed by the OM transformer
+##
+ /**
+ * Compares the content of this object to another object
+ *
+ * @param toCompare The object to compare to.
+ * @return true if all of the columns in the other object have
+ * the same value as the objects in this class.
+ */
+ public boolean valueEquals(${dbObjectClassName} toCompare)
+ {
+ if (toCompare == null)
+ {
+ return false;
+ }
+ if (this == toCompare)
+ {
+ return true;
+ }
+#set ( $columnElements = $torqueGen.getChildren("column") )
+#foreach ($columnElement in $columnElements)
+ #set ( $columnField = $columnElement.getAttribute("field") )
+ #set ( $getter = $columnElement.getAttribute("getter") )
+ #set ( $primitive = $columnElement.getAttribute("primitive") )
+ #if ($primitive == "true")
+ if (this.${columnField} != toCompare.${getter}())
+ #else
+ if (!ObjectUtils.equals(this.${columnField}, toCompare.${getter}()))
+ #end
+ {
+ return false;
+ }
+#end
+ return true;
+ }
+
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=1414363&r1=1414362&r2=1414363&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 Tue Nov 27 20:02:32 2012
@@ -76,6 +76,7 @@ $torqueGen.mergepoint("doSelectJoinAllEx
$torqueGen.mergepoint("fillReferencedObjects")
$torqueGen.mergepoint("fillReferencingObjects")
#end
+$torqueGen.mergepoint("setAndSaveReferencing")
#end
$torqueGen.mergepoint("getTableMap")
$torqueGen.mergepoint("initDatabaseMap")
Added: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/setAndSaveReferencing.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/setAndSaveReferencing.vm?rev=1414363&view=auto
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/setAndSaveReferencing.vm (added)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/setAndSaveReferencing.vm Tue Nov 27 20:02:32 2012
@@ -0,0 +1,105 @@
+## 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: saveMethods.vm 1377465 2012-08-26 17:25:38Z tv $
+##
+## This template expects the current source element to be a "foreign-field"
+## element from the schema, processed by the OMTransformer.
+## The options and the attributes of the current source element must be set
+## as velocity variables.
+##
+#set ( $foreignKeyElement = $torqueGen.getParent() )
+#set ( $localTableElement = $foreignKeyElement.getChild("table") )
+#set ( $peerImplGetter = $localTableElement.getAttribute("peerImplGetter") )
+#set ( $localDbObjectClassName = $localTableElement.getAttribute("dbObjectClassName") )
+#set ( $foreignTableElement = $foreignKeyElement.getParent() )
+#set ( $foreignDbObjectClassName = $foreignTableElement.getAttribute("dbObjectClassName") )
+#if ($foreignTableElement.getChild("primary-keys").getChildren().size() > 0)
+ /**
+ * Saves the passed collection as linked objects.
+ * This means the following is done:
+ * <ul>
+ * <li>
+ * The current collection of linked objects with the same primary keys as
+ * in toSave are read from the database into the list intersection.
+ * </li>
+ * <li>
+ * All objects in toSave which are not in intersection are inserted.
+ * </li>
+ * <li>
+ * All objects in intersection are updated with the corresponding values
+ * in toSave and saved.
+ * </li>
+ * <li>
+ * All objects in the database which are not in toSave are deleted.
+ * </li>
+ *
+ * @param toLinkTo the object which collections should be set with the
+ * values in toSave.
+ * @param toSave Contains the objects to save, not null,
+ * may not contain null.
+ *
+ * @throws TorqueException if an error accessing the database occurs.
+ * @throws NullPointerException if toFill is null or contains null elements.
+ */
+ public static void ${setAndSaveMethodName}(
+ ${localDbObjectClassName} toLinkTo,
+ Collection<${foreignDbObjectClassName}> toSave)
+ throws TorqueException
+ {
+ ${peerImplGetter}().${setAndSaveMethodName}(toLinkTo, toSave);
+ }
+
+ /**
+ * Saves the passed collection as linked objects.
+ * This means the following is done:
+ * <ul>
+ * <li>
+ * The current collection of linked objects with the same primary keys as
+ * in toSave are read from the database into the list intersection.
+ * </li>
+ * <li>
+ * All objects in toSave which are not in intersection are inserted.
+ * </li>
+ * <li>
+ * All objects in intersection are updated with the corresponding values
+ * in toSave and saved.
+ * </li>
+ * <li>
+ * All objects in the database which are not in toSave are deleted.
+ * </li>
+ *
+ * @param toLinkTo the object which collections should be set with the
+ * values in toSave.
+ * @param toSave Contains the objects to save, not null,
+ * may not contain null.
+ * @param connection the database connection to use.
+ *
+ * @throws TorqueException if an error accessing the database occurs.
+ * @throws NullPointerException if toFill is null or contains null elements.
+ */
+ public void ${setAndSaveMethodName}(
+ ${localDbObjectClassName} toLinkTo,
+ Collection<${foreignDbObjectClassName}> toSave,
+ Connection connection)
+ throws TorqueException
+ {
+ ${peerImplGetter}().${setAndSaveMethodName}(toLinkTo, toSave);
+ }
+#end
Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/basePeerImpl.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/basePeerImpl.vm?rev=1414363&r1=1414362&r2=1414363&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/basePeerImpl.vm (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/basePeerImpl.vm Tue Nov 27 20:02:32 2012
@@ -64,6 +64,7 @@ $torqueGen.mergepoint("doSelectJoinAllEx
$torqueGen.mergepoint("fillReferencedObjects")
$torqueGen.mergepoint("fillReferencingObjects")
#end
+$torqueGen.mergepoint("setAndSaveReferencing")
#end
$torqueGen.mergepoint("extensions")
}
Added: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/setAndSaveReferencing.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/setAndSaveReferencing.vm?rev=1414363&view=auto
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/setAndSaveReferencing.vm (added)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/setAndSaveReferencing.vm Tue Nov 27 20:02:32 2012
@@ -0,0 +1,291 @@
+## 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: saveMethods.vm 1377465 2012-08-26 17:25:38Z tv $
+##
+## This template expects the current source element to be a "foreign-field"
+## element from the schema, processed by the OMTransformer.
+## The options and the attributes of the current source element must be set
+## as velocity variables.
+##
+#set ( $foreignKeyElement = $torqueGen.getParent() )
+#set ( $foreignKeyGetter = $foreignKeyElement.getAttribute("foreignKeyGetter") )
+#set ( $referencesPrimaryKey = $foreignKeyElement.getAttribute("referencesPrimaryKey") )
+#set ( $foreignKeyReferences = $foreignKeyElement.getChildren("reference") )
+#set ( $localTableElement = $foreignKeyElement.getChild("table") )
+#set ( $localTableField = $localTableElement.getAttribute("field") )
+#set ( $localDbObjectClassName = $localTableElement.getAttribute("dbObjectClassName") )
+#set ( $localPeerClassName = $localTableElement.getAttribute("peerClassName") )
+#set ( $foreignTableElement = $foreignKeyElement.getParent() )
+#set ( $foreignTablePeerClassName = $foreignTableElement.getAttribute("peerClassName") )
+#set ( $foreignDbObjectClassName = $foreignTableElement.getAttribute("dbObjectClassName") )
+#set ( $foreignPrimaryKeyColumnElements = $foreignTableElement.getChild("primary-keys").getChildren("column"))
+#set ( $saveMethodsInDbObjects = $foreignTableElement.getAttribute("saveMethodsInDbObjects") )
+#if ($foreignTableElement.getChild("primary-keys").getChildren().size() > 0)
+ /**
+ * Saves the passed collection as linked objects.
+ * This means the following is done:
+ * <ul>
+ * <li>
+ * The current collection of linked objects with the same primary keys as
+ * in toSave are read from the database into the list intersection.
+ * </li>
+ * <li>
+ * All objects in toSave which are not in intersection are inserted.
+ * </li>
+ * <li>
+ * All objects in intersection are updated with the corresponding values
+ * in toSave and saved.
+ * </li>
+ * <li>
+ * All objects in the database which are not in toSave are deleted.
+ * </li>
+ *
+ * @param toLinkTo the object which collections should be set with the
+ * values in toSave.
+ * @param toSave Contains the objects to save, not null,
+ * may not contain null.
+ *
+ * @throws TorqueException if an error accessing the database occurs.
+ * @throws NullPointerException if toFill is null or contains null elements.
+ */
+ public void ${setAndSaveMethodName}(
+ ${localDbObjectClassName} toLinkTo,
+ Collection<${foreignDbObjectClassName}> toSave)
+ throws TorqueException
+ {
+ Connection connection = null;
+ try
+ {
+ connection = Transaction.begin(
+ ${localPeerClassName}.DATABASE_NAME);
+ ${setAndSaveMethodName}(toLinkTo, toSave, connection);
+ Transaction.commit(connection);
+ connection = null;
+ }
+ finally
+ {
+ if (connection != null)
+ {
+ Transaction.safeRollback(connection);
+ }
+ }
+ }
+
+ /**
+ * Saves the passed collection as linked objects.
+ * This means the following is done:
+ * <ul>
+ * <li>
+ * The current collection of linked objects with the same primary keys as
+ * in toSave are read from the database into the list intersection.
+ * </li>
+ * <li>
+ * All objects in toSave which are not in intersection are inserted.
+ * </li>
+ * <li>
+ * All objects in intersection are updated with the corresponding values
+ * in toSave and saved.
+ * </li>
+ * <li>
+ * All objects in the database which are not in toSave are deleted.
+ * </li>
+ *
+ * @param toLinkTo the object which collections should be set with the
+ * values in toSave.
+ * @param toSave Contains the objects to save, not null,
+ * may not contain null.
+ * @param connection the database connection to use.
+ *
+ * @throws TorqueException if an error accessing the database occurs.
+ * @throws NullPointerException if toFill is null or contains null elements.
+ */
+ public void ${setAndSaveMethodName}(
+ ${localDbObjectClassName} toLinkTo,
+ Collection<${foreignDbObjectClassName}> toSave,
+ Connection connection)
+ throws TorqueException
+ {
+#if ($referencesPrimaryKey)
+ ObjectKey localKey = toLinkTo.getPrimaryKey();
+#else
+ #if ($foreignKeyReferences.size() == 1)
+ #set ( $localReferenceColumnElement = $foreignKeyReferences.get(0).getChild("foreign-column").getChild("column") )
+ #set ( $localFieldGetter = $localReferenceColumnElement.getAttribute("getter") )
+ ObjectKey localKey = SimpleKey.keyFor(toLinkTo.${localFieldGetter}());
+ #else
+ SimpleKey[] keyElementArray = new SimpleKey[$foreignKeyReferences.size()];
+ #set ($i = 0)
+ #foreach ($referenceElement in $foreignKeyReferences)
+ #set ( $localReferenceColumnElement = $referenceElement.getChild("foreign-column").getChild("column") )
+ #set ( $localFieldGetter = $localReferenceColumnElement.getAttribute("getter") )
+ keyElementArray[$i] = SimpleKey.keyFor(
+ toLinkTo.${localFieldGetter}());
+ #set ($i = $i + 1)
+ #end
+ ObjectKey localKey = new ComboKey(keyElementArray);
+ #end
+#end
+
+ Criteria criteria = new Criteria();
+#if ($foreignKeyReferences.size() == 1)
+ #set ( $columnElement = $foreignKeyReferences.get(0).getChild("local-column").getChild("column") )
+ #set ( $peerColumnName = $columnElement.getAttribute("peerColumnName"))
+ Criterion onlyReferencingCriterion = new Criterion(
+ ${foreignTablePeerClassName}.${peerColumnName},
+ localKey);
+#else
+ SimpleKey[] keys = (SimpleKey[]) localKey.getValue();
+ #set ( $i = 0 )
+ #foreach ($referenceElement in $foreignKeyReferences)
+ #set ( $columnElement = $referenceElement.getChild("local-column").getChild("column") )
+ #set ( $peerColumnName = $columnElement.getAttribute("peerColumnName"))
+ Criterion c$i = new Criterion(
+ ${foreignTablePeerClassName}.${peerColumnName}, keys[$i]);
+ #set ( $j = $i - 1 )
+ #if ($i > 0)
+ c${j}.and(c${i});
+ #end
+ #set ( $i = $i + 1 )
+ #end
+ Criterion onlyReferencingCriterion = c0;
+#end
+ criteria.where(onlyReferencingCriterion);
+ Set<ObjectKey> toSaveKeys = new HashSet<ObjectKey>();
+ for (${foreignDbObjectClassName} toSaveElement : toSave)
+ {
+ ObjectKey toSaveKey = toSaveElement.getPrimaryKey();
+ if (toSaveKey.getValue() != null)
+ {
+ toSaveKeys.add(toSaveKey);
+ }
+ }
+#if ($foreignPrimaryKeyColumnElements.size() == 1)
+ #set ( $columnElement = $foreignPrimaryKeyColumnElements.get(0) )
+ #set ( $peerColumnName = $columnElement.getAttribute("peerColumnName"))
+ criteria.and(${foreignTablePeerClassName}.${peerColumnName}, toSaveKeys, Criteria.IN);
+#else
+ Criterion toSaveKeyCriterion = null;
+ for (ObjectKey toSaveKey : toSaveKeys)
+ {
+ SimpleKey[] toSavePrimaryKeys = (SimpleKey[]) toSaveKey.getValue();
+ #set ( $i = 0 )
+ #foreach ($columnElement in $foreignPrimaryKeyColumnElements)
+ #set ( $columnElement = $referenceElement.getChild("local-column").getChild("column") )
+ #set ( $peerColumnName = $columnElement.getAttribute("peerColumnName"))
+ Criterion p$i = new Criterion(
+ ${foreignTablePeerClassName}.${peerColumnName},
+ toSavePrimaryKeys[$i]);
+ #set ( $j = $i - 1 )
+ #if ($i > 0)
+ p${j}.and(p${i});
+ #end
+ #set ( $i = $i + 1 )
+ #end
+ if (toSaveKeyCriterion == null)
+ {
+ toSaveKeyCriterion = p0;
+ }
+ else
+ {
+ toSaveKeyCriterion.or(p0);
+ }
+ }
+ criteria.and(toSaveKeyCriterion);
+#end
+ List<${foreignDbObjectClassName}> intersection
+ = ${foreignTablePeerClassName}.doSelect(criteria, connection);
+ $fieldType linkedCache;
+ if (toLinkTo.${isInitialized}()) {
+ linkedCache = toLinkTo.${getter}();
+ linkedCache.clear();
+ }
+ else
+ {
+ linkedCache = toLinkTo.${initializer}();
+ }
+ for (${foreignDbObjectClassName} toSaveElement : toSave)
+ {
+ int listIndex = intersection.indexOf(toSaveElement);
+ if (listIndex == -1)
+ {
+ toLinkTo.${adder}(toSaveElement);
+#if ($saveMethodsInDbObjects != "true")
+ ${foreignTablePeerClassName}.save(toSaveElement, connection);
+#else
+ toSaveElement.save(connection);
+#end
+ }
+ else
+ {
+ toLinkTo.${adder}(toSaveElement);
+ if (!toSaveElement.valueEquals(intersection.get(listIndex)))
+ {
+ //force saving if content differs
+ toSaveElement.setModified(true);
+ }
+#if ($saveMethodsInDbObjects != "true")
+ ${foreignTablePeerClassName}.save(toSaveElement, connection);
+#else
+ toSaveElement.save(connection);
+#end
+ }
+ toSaveKeys.add(toSaveElement.getPrimaryKey());
+ }
+
+ // delete elements not in intersection
+ Criteria deleteCriteria = new Criteria();
+ deleteCriteria.where(onlyReferencingCriterion);
+#if ($foreignPrimaryKeyColumnElements.size() == 1)
+ #set ( $columnElement = $foreignPrimaryKeyColumnElements.get(0) )
+ #set ( $peerColumnName = $columnElement.getAttribute("peerColumnName"))
+ deleteCriteria.and(${foreignTablePeerClassName}.${peerColumnName}, toSaveKeys, Criteria.NOT_IN);
+#else
+ toSaveKeyCriterion = null;
+ for (ObjectKey toSaveKey : toSaveKeys)
+ {
+ SimpleKey[] toSavePrimaryKeys = (SimpleKey[]) toSaveKey.getValue();
+ #set ( $i = 0 )
+ #foreach ($columnElement in $foreignPrimaryKeyColumnElements)
+ #set ( $columnElement = $referenceElement.getChild("local-column").getChild("column") )
+ #set ( $peerColumnName = $columnElement.getAttribute("peerColumnName"))
+ Criterion p$i = new Criterion(
+ ${foreignTablePeerClassName}.${peerColumnName},
+ toSavePrimaryKeys[$i],
+ Criteria.NOT_EQUAL);
+ #set ( $j = $i - 1 )
+ #if ($i > 0)
+ p${j}.or(p${i});
+ #end
+ #set ( $i = $i + 1 )
+ #end
+ if (toSaveKeyCriterion == null)
+ {
+ toSaveKeyCriterion = p0;
+ }
+ else
+ {
+ toSaveKeyCriterion.and(p0);
+ }
+ }
+ deleteCriteria.and(toSaveKeyCriterion);
+#end
+ ${foreignTablePeerClassName}.doDelete(deleteCriteria, connection);
+ }
+#end
Modified: db/torque/torque4/trunk/torque-test/src/main/schema/foreign-key-schema.xml
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-test/src/main/schema/foreign-key-schema.xml?rev=1414363&r1=1414362&r2=1414363&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-test/src/main/schema/foreign-key-schema.xml (original)
+++ db/torque/torque4/trunk/torque-test/src/main/schema/foreign-key-schema.xml Tue Nov 27 20:02:32 2012
@@ -155,6 +155,31 @@
</foreign-key>
</table>
+ <table name="COMP_PK_OTHER_FK" idMethod="none"
+ description="table with a composite primary key which does not contain
+ the foreign key column which references the non-composite
+ primary key of another table">
+ <column name="ID1" primaryKey="true" type="INTEGER" javaType="object"/>
+ <column name="ID2" primaryKey="true" type="VARCHAR" size="50"/>
+ <column name="FK" type="INTEGER" javaType="object"/>
+ <column name="NAME" type="VARCHAR" size="100"/>
+ <foreign-key foreignTable="O_INTEGER_PK">
+ <reference local="FK" foreign="ID"/>
+ </foreign-key>
+ </table>
+
+ <table name="COMP_PK_CONTAINS_FK" idMethod="none"
+ description="table with a composite primary key a part of which
+ is a foreign key column which references the non-composite
+ primary key of another table">
+ <column name="ID1" primaryKey="true" type="INTEGER" javaType="object"/>
+ <column name="ID2" primaryKey="true" type="VARCHAR" size="50"/>
+ <column name="NAME" type="VARCHAR" size="100"/>
+ <foreign-key foreignTable="O_INTEGER_PK">
+ <reference local="ID1" foreign="ID"/>
+ </foreign-key>
+ </table>
+
<table name="COMP_INTEGER_VARCHAR_PK" idMethod="none"
description="table with a composite primary key consisting of an integer
and a varchar column">
Modified: db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/ForeignKeySchemaData.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/ForeignKeySchemaData.java?rev=1414363&r1=1414362&r2=1414363&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/ForeignKeySchemaData.java (original)
+++ db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/ForeignKeySchemaData.java Tue Nov 27 20:02:32 2012
@@ -22,10 +22,15 @@ package org.apache.torque;
import java.util.ArrayList;
import java.util.List;
+import junit.framework.Assert;
+
import org.apache.torque.criteria.Criteria;
+import org.apache.torque.om.mapper.IntegerMapper;
import org.apache.torque.test.dbobject.CompIntegerVarcharFk;
import org.apache.torque.test.dbobject.CompIntegerVarcharPk;
import org.apache.torque.test.dbobject.CompNonpkFk;
+import org.apache.torque.test.dbobject.CompPkContainsFk;
+import org.apache.torque.test.dbobject.CompPkOtherFk;
import org.apache.torque.test.dbobject.NonPkOIntegerFk;
import org.apache.torque.test.dbobject.NonPkPIntegerFk;
import org.apache.torque.test.dbobject.NullableOIntegerFk;
@@ -37,6 +42,8 @@ import org.apache.torque.test.dbobject.R
import org.apache.torque.test.peer.CompIntegerVarcharFkPeer;
import org.apache.torque.test.peer.CompIntegerVarcharPkPeer;
import org.apache.torque.test.peer.CompNonpkFkPeer;
+import org.apache.torque.test.peer.CompPkContainsFkPeer;
+import org.apache.torque.test.peer.CompPkOtherFkPeer;
import org.apache.torque.test.peer.NonPkOIntegerFkPeer;
import org.apache.torque.test.peer.NonPkPIntegerFkPeer;
import org.apache.torque.test.peer.NullableOIntegerFkPeer;
@@ -45,6 +52,7 @@ import org.apache.torque.test.peer.OInte
import org.apache.torque.test.peer.PIntegerPkPeer;
import org.apache.torque.test.peer.RequiredOIntegerFkPeer;
import org.apache.torque.test.peer.RequiredPIntegerFkPeer;
+import org.apache.torque.util.functions.Count;
/**
* Contains data (i.e. table records) for the tables in the foreign key schema.
@@ -53,37 +61,43 @@ import org.apache.torque.test.peer.Requi
*/
public class ForeignKeySchemaData
{
- private List<PIntegerPk> pIntegerPkList
+ private final List<PIntegerPk> pIntegerPkList
= new ArrayList<PIntegerPk>();
- private List<NullablePIntegerFk> nullablePIntegerFkList
+ private final List<NullablePIntegerFk> nullablePIntegerFkList
= new ArrayList<NullablePIntegerFk>();
- private List<RequiredPIntegerFk> requiredPIntegerFkList
+ private final List<RequiredPIntegerFk> requiredPIntegerFkList
= new ArrayList<RequiredPIntegerFk>();
- private List<NonPkPIntegerFk> nonPkPIntegerFkList
+ private final List<NonPkPIntegerFk> nonPkPIntegerFkList
= new ArrayList<NonPkPIntegerFk>();
- private List<OIntegerPk> oIntegerPkList
+ private final List<OIntegerPk> oIntegerPkList
= new ArrayList<OIntegerPk>();
- private List<NullableOIntegerFk> nullableOIntegerFkList
+ private final List<NullableOIntegerFk> nullableOIntegerFkList
= new ArrayList<NullableOIntegerFk>();
- private List<RequiredOIntegerFk> requiredOIntegerFkList
+ private final List<RequiredOIntegerFk> requiredOIntegerFkList
= new ArrayList<RequiredOIntegerFk>();
- private List<NonPkOIntegerFk> nonPkOIntegerFkList
+ private final List<NonPkOIntegerFk> nonPkOIntegerFkList
= new ArrayList<NonPkOIntegerFk>();
- private List<CompIntegerVarcharPk> compositeIntegerVarcharPkList
+ private final List<CompPkOtherFk> compositePkOtherFkList
+ = new ArrayList<CompPkOtherFk>();
+
+ private final List<CompPkContainsFk> compositePkContainsFkList
+ = new ArrayList<CompPkContainsFk>();
+
+ private final List<CompIntegerVarcharPk> compositeIntegerVarcharPkList
= new ArrayList<CompIntegerVarcharPk>();
- private List<CompIntegerVarcharFk> compositeIntegerVarcharFkList
+ private final List<CompIntegerVarcharFk> compositeIntegerVarcharFkList
= new ArrayList<CompIntegerVarcharFk>();
- private List<CompNonpkFk> compositeNonpkFkList
+ private final List<CompNonpkFk> compositeNonpkFkList
= new ArrayList<CompNonpkFk>();
/**
@@ -108,11 +122,14 @@ public class ForeignKeySchemaData
* oIntegerPk1
* - nonPkOIntegerFk1a
* - nonPkOIntegerFk1b
+ * - compositePkOtherFk1a
+ * - compositePkOtherFk1b
*
* oIntegerPk2
* - nullableOIntegerFk2
* - requiredOIntegerFk2
* - nonPkOIntegerFk2
+ * - compositePkOtherFk2
*
* oIntegerPk3
* - nullableOIntegerFk3a
@@ -122,18 +139,22 @@ public class ForeignKeySchemaData
*
* null
* - nullableOIntegerFk4
+ * - nonPkOIntegerFk4
*
* compositeIntegerVarcharPk1
* - compositeNonpkFk1a
* - compositeNonpkFk1b
*
* compositeIntegerVarcharPk2
- * - compositeIntegerVarcharPk2
+ * - compositeIntegerVarcharFk2
* - compositeNonpkFk2
*
* compositeIntegerVarcharPk3
- * - compositeIntegerVarcharPk3a
- * - compositeIntegerVarcharPk3b
+ * - compositeIntegerVarcharFk3a
+ * - compositeIntegerVarcharFk3b
+ *
+ * null
+ * - compositeIntegerVarcharFk4
*
* @return a new instance filled with the default test data.
*
@@ -153,6 +174,8 @@ public class ForeignKeySchemaData
fillNullableOIntegerFks(result);
fillRequiredOIntegerFks(result);
fillNonPkOIntegerFks(result);
+ fillCompositePkOtherFks(result);
+ fillCompositePkContainsFks(result);
fillCompositeIntegerVarcharPks(result);
fillCompositeIntegerVarcharFks(result);
@@ -388,6 +411,85 @@ public class ForeignKeySchemaData
nonPkOIntegerFk2);
result.getNonPkOIntegerFkList().add(
nonPkOIntegerFk2);
+
+ NonPkOIntegerFk nonPkOIntegerFk4
+ = new NonPkOIntegerFk();
+ nonPkOIntegerFk4.setName(
+ "nonPkOIntegerFk4");
+ result.getNonPkOIntegerFkList().add(
+ nonPkOIntegerFk4);
+ }
+
+ private static void fillCompositePkOtherFks(ForeignKeySchemaData result)
+ throws TorqueException
+ {
+ CompPkOtherFk compositePkOtherFk1a
+ = new CompPkOtherFk();
+ compositePkOtherFk1a.setName(
+ "compositePkOtherFk1a");
+ compositePkOtherFk1a.setId1(1);
+ compositePkOtherFk1a.setId2("1a");
+ result.getOIntegerPkList().get(0).addCompPkOtherFk(
+ compositePkOtherFk1a);
+ result.getCompositePkOtherFkList().add(
+ compositePkOtherFk1a);
+
+ CompPkOtherFk compositePkOtherFk1b
+ = new CompPkOtherFk();
+ compositePkOtherFk1b.setName(
+ "compositePkOtherFk1b");
+ compositePkOtherFk1b.setId1(1);
+ compositePkOtherFk1b.setId2("1b");
+ result.getOIntegerPkList().get(0).addCompPkOtherFk(
+ compositePkOtherFk1b);
+ result.getCompositePkOtherFkList().add(
+ compositePkOtherFk1b);
+
+ CompPkOtherFk compositePkOtherFk2
+ = new CompPkOtherFk();
+ compositePkOtherFk2.setName(
+ "compositePkOtherFk22");
+ compositePkOtherFk2.setId1(2);
+ compositePkOtherFk2.setId2("2");
+ result.getOIntegerPkList().get(1).addCompPkOtherFk(
+ compositePkOtherFk2);
+ result.getCompositePkOtherFkList().add(
+ compositePkOtherFk2);
+ }
+
+ private static void fillCompositePkContainsFks(ForeignKeySchemaData result)
+ throws TorqueException
+ {
+ CompPkContainsFk compositePkContainsFk1a
+ = new CompPkContainsFk();
+ compositePkContainsFk1a.setName(
+ "compositePkContainsFk1a");
+ compositePkContainsFk1a.setId2("1a");
+ result.getOIntegerPkList().get(0).addCompPkContainsFk(
+ compositePkContainsFk1a);
+ result.getCompositePkContainsFkList().add(
+ compositePkContainsFk1a);
+
+ CompPkContainsFk compositePkContainsFk1b
+ = new CompPkContainsFk();
+ compositePkContainsFk1b.setName(
+ "compositePkOtherFk1b");
+ compositePkContainsFk1b.setId2("1b");
+ result.getOIntegerPkList().get(0).addCompPkContainsFk(
+ compositePkContainsFk1b);
+ result.getCompositePkContainsFkList().add(
+ compositePkContainsFk1b);
+
+ CompPkContainsFk compositePkContainsFk2
+ = new CompPkContainsFk();
+ compositePkContainsFk2.setName(
+ "compositePkOtherFk22");
+ compositePkContainsFk2.setId1(2);
+ compositePkContainsFk2.setId2("2");
+ result.getOIntegerPkList().get(1).addCompPkContainsFk(
+ compositePkContainsFk2);
+ result.getCompositePkContainsFkList().add(
+ compositePkContainsFk2);
}
private static void fillCompositeIntegerVarcharPks(
@@ -457,6 +559,13 @@ public class ForeignKeySchemaData
compositeIntegerVarcharFk3b);
result.getCompositeIntegerVarcharFkList().add(
compositeIntegerVarcharFk3b);
+
+ CompIntegerVarcharFk compositeIntegerVarcharFk4
+ = new CompIntegerVarcharFk();
+ compositeIntegerVarcharFk4.setName(
+ "compositeIntegerVarcharFk4");
+ result.getCompositeIntegerVarcharFkList().add(
+ compositeIntegerVarcharFk4);
}
private static void fillCompositeNonpkFks(
@@ -529,6 +638,16 @@ public class ForeignKeySchemaData
return nonPkOIntegerFkList;
}
+ public List<CompPkOtherFk> getCompositePkOtherFkList()
+ {
+ return compositePkOtherFkList;
+ }
+
+ public List<CompPkContainsFk> getCompositePkContainsFkList()
+ {
+ return compositePkContainsFkList;
+ }
+
public List<CompIntegerVarcharPk> getCompositeIntegerVarcharPkList()
{
return compositeIntegerVarcharPkList;
@@ -556,15 +675,32 @@ public class ForeignKeySchemaData
{
pIntegerPk.save();
}
+ for (NullablePIntegerFk nullablePIntegerFk : nullablePIntegerFkList)
+ {
+ nullablePIntegerFk.save();
+ }
for (OIntegerPk oIntegerPk : oIntegerPkList)
{
oIntegerPk.save();
}
+ for (NullableOIntegerFk nullableOIntegerFk : nullableOIntegerFkList)
+ {
+ nullableOIntegerFk.save();
+ }
+ for (NonPkOIntegerFk nonPkOIntegerFk : nonPkOIntegerFkList)
+ {
+ nonPkOIntegerFk.save();
+ }
for (CompIntegerVarcharPk compositeIntegerVarcharPk
: compositeIntegerVarcharPkList)
{
compositeIntegerVarcharPk.save();
}
+ for (CompIntegerVarcharFk compositeIntegerVarcharFk
+ : compositeIntegerVarcharFkList)
+ {
+ compositeIntegerVarcharFk.save();
+ }
}
/**
@@ -574,38 +710,21 @@ public class ForeignKeySchemaData
*/
public static void clearTablesInDatabase() throws TorqueException
{
- Criteria criteria = new Criteria();
- NullablePIntegerFkPeer.doDelete(criteria);
-
- criteria = new Criteria();
- RequiredPIntegerFkPeer.doDelete(criteria);
-
- criteria = new Criteria();
- NonPkPIntegerFkPeer.doDelete(criteria);
-
- criteria = new Criteria();
- NullableOIntegerFkPeer.doDelete(criteria);
-
- criteria = new Criteria();
- RequiredOIntegerFkPeer.doDelete(criteria);
-
- criteria = new Criteria();
- NonPkOIntegerFkPeer.doDelete(criteria);
-
- criteria = new Criteria();
- PIntegerPkPeer.doDelete(criteria);
-
- criteria = new Criteria();
- OIntegerPkPeer.doDelete(criteria);
-
- criteria = new Criteria();
- CompIntegerVarcharFkPeer.doDelete(criteria);
-
- criteria = new Criteria();
- CompNonpkFkPeer.doDelete(criteria);
-
- criteria = new Criteria();
- CompIntegerVarcharPkPeer.doDelete(criteria);
+ NullablePIntegerFkPeer.doDelete(new Criteria());
+ RequiredPIntegerFkPeer.doDelete(new Criteria());
+ NonPkPIntegerFkPeer.doDelete(new Criteria());
+ NullableOIntegerFkPeer.doDelete(new Criteria());
+ RequiredOIntegerFkPeer.doDelete(new Criteria());
+ NonPkOIntegerFkPeer.doDelete(new Criteria());
+ CompPkOtherFkPeer.doDelete(new Criteria());
+ CompPkContainsFkPeer.doDelete(new Criteria());
+
+ PIntegerPkPeer.doDelete(new Criteria());
+ OIntegerPkPeer.doDelete(new Criteria());
+
+ CompIntegerVarcharFkPeer.doDelete(new Criteria());
+ CompNonpkFkPeer.doDelete(new Criteria());
+ CompIntegerVarcharPkPeer.doDelete(new Criteria());
}
/**
@@ -714,4 +833,145 @@ public class ForeignKeySchemaData
System.out.println(nullablePIntegerFks);
}
}
+
+ /**
+ * Checks that the table Non_Pk_O_Integer_Fk in the database
+ * contains only the passed objects.
+ *
+ * @param expected the expected content of the table, not null.
+ *
+ * * @throws TorqueException if accessing the database fails.
+ */
+ public static void assertNonPkOIntegerFksInDatabaseEquals(
+ List<NonPkOIntegerFk> expected)
+ throws TorqueException
+ {
+ Criteria criteria = new Criteria().addSelectColumn(new Count("*"));
+ Assert.assertEquals(new Integer(expected.size()),
+ NonPkOIntegerFkPeer.doSelectSingleRecord(
+ criteria, new IntegerMapper()));
+ for (NonPkOIntegerFk nonPkOIntegerFk : expected)
+ {
+ criteria = NonPkOIntegerFkPeer.buildCriteria(nonPkOIntegerFk);
+ criteria.addSelectColumn(new Count("*"));
+ Assert.assertEquals(
+ "Expected but not found : " + nonPkOIntegerFk,
+ new Integer(1),
+ NonPkOIntegerFkPeer.doSelectSingleRecord(
+ criteria, new IntegerMapper()));
+ }
+ }
+
+ /**
+ * Checks that the table Comp_O_Integer_Fk in the database
+ * contains only the passed objects.
+ *
+ * @param expected the expected content of the table, not null.
+ *
+ * * @throws TorqueException if accessing the database fails.
+ */
+ public static void assertCompositeIntegerVarcharFksInDatabaseEquals(
+ List<CompIntegerVarcharFk> expected)
+ throws TorqueException
+ {
+ Criteria criteria = new Criteria().addSelectColumn(new Count("*"));
+ Assert.assertEquals(new Integer(expected.size()),
+ CompIntegerVarcharFkPeer.doSelectSingleRecord(
+ criteria, new IntegerMapper()));
+ for (CompIntegerVarcharFk compIntegerVarcharFk : expected)
+ {
+ criteria = CompIntegerVarcharFkPeer.buildCriteria(
+ compIntegerVarcharFk);
+ criteria.addSelectColumn(new Count("*"));
+ Assert.assertEquals(
+ "Expected but not found : " + compIntegerVarcharFk,
+ new Integer(1),
+ CompIntegerVarcharFkPeer.doSelectSingleRecord(
+ criteria, new IntegerMapper()));
+ }
+ }
+
+ /**
+ * Checks that the table Nullable_O_Integer_Fk in the database
+ * contains only the passed objects.
+ *
+ * @param expected the expected content of the table, not null.
+ *
+ * * @throws TorqueException if accessing the database fails.
+ */
+ public static void assertNullableOIntegerFksInDatabaseEquals(
+ List<NullableOIntegerFk> expected)
+ throws TorqueException
+ {
+ Criteria criteria = new Criteria().addSelectColumn(new Count("*"));
+ Assert.assertEquals(new Integer(expected.size()),
+ NullableOIntegerFkPeer.doSelectSingleRecord(
+ criteria, new IntegerMapper()));
+ for (NullableOIntegerFk nullableOIntegerFk : expected)
+ {
+ criteria = NullableOIntegerFkPeer.buildCriteria(nullableOIntegerFk);
+ criteria.addSelectColumn(new Count("*"));
+ Assert.assertEquals(
+ "Expected but not found : " + nullableOIntegerFk,
+ new Integer(1),
+ NullableOIntegerFkPeer.doSelectSingleRecord(
+ criteria, new IntegerMapper()));
+ }
+ }
+
+ /**
+ * Checks that the table Comp_Pk_Other_Fk in the database
+ * contains only the passed objects.
+ *
+ * @param expected the expected content of the table, not null.
+ *
+ * * @throws TorqueException if accessing the database fails.
+ */
+ public static void assertCompositePkOtherFksInDatabaseEquals(
+ List<CompPkOtherFk> expected)
+ throws TorqueException
+ {
+ Criteria criteria = new Criteria().addSelectColumn(new Count("*"));
+ Assert.assertEquals(new Integer(expected.size()),
+ CompPkOtherFkPeer.doSelectSingleRecord(
+ criteria, new IntegerMapper()));
+ for (CompPkOtherFk compPkOtherFk : expected)
+ {
+ criteria = CompPkOtherFkPeer.buildCriteria(compPkOtherFk);
+ criteria.addSelectColumn(new Count("*"));
+ Assert.assertEquals(
+ "Expected but not found : " + compPkOtherFk,
+ new Integer(1),
+ CompPkOtherFkPeer.doSelectSingleRecord(
+ criteria, new IntegerMapper()));
+ }
+ }
+
+ /**
+ * Checks that the table Comp_Pk_Contains_Fk in the database
+ * contains only the passed objects.
+ *
+ * @param expected the expected content of the table, not null.
+ *
+ * * @throws TorqueException if accessing the database fails.
+ */
+ public static void assertCompositePkContainsFksInDatabaseEquals(
+ List<CompPkContainsFk> expected)
+ throws TorqueException
+ {
+ Criteria criteria = new Criteria().addSelectColumn(new Count("*"));
+ Assert.assertEquals(new Integer(expected.size()),
+ CompPkContainsFkPeer.doSelectSingleRecord(
+ criteria, new IntegerMapper()));
+ for (CompPkContainsFk compPkContainsFk : expected)
+ {
+ criteria = CompPkContainsFkPeer.buildCriteria(compPkContainsFk);
+ criteria.addSelectColumn(new Count("*"));
+ Assert.assertEquals(
+ "Expected but not found : " + compPkContainsFk,
+ new Integer(1),
+ CompPkContainsFkPeer.doSelectSingleRecord(
+ criteria, new IntegerMapper()));
+ }
+ }
}
Added: db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/generated/dataobject/ValueEqualsTest.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/generated/dataobject/ValueEqualsTest.java?rev=1414363&view=auto
==============================================================================
--- db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/generated/dataobject/ValueEqualsTest.java (added)
+++ db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/generated/dataobject/ValueEqualsTest.java Tue Nov 27 20:02:32 2012
@@ -0,0 +1,146 @@
+package org.apache.torque.generated.dataobject;
+
+/*
+ * 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.
+ */
+
+import org.apache.torque.BaseDatabaseTestCase;
+import org.apache.torque.test.dbobject.Book;
+
+/**
+ * Tests the valueEquals method in the data object classes.
+ *
+ * @version $Id$
+ */
+public class ValueEqualsTest extends BaseDatabaseTestCase
+{
+ /**
+ * Checks the valueEquals method outcome if all colums are not-null
+ * and equal in the two objects.
+ */
+ public void testAllSetAndEqual()
+ {
+ Book book1 = new Book();
+ book1.setAuthorId(1);
+ book1.setBookId(5);
+ book1.setIsbn("abc");
+ book1.setTitle("title");
+ Book book2 = new Book();
+ book2.setAuthorId(1);
+ book2.setBookId(5);
+ book2.setIsbn("abc");
+ book2.setTitle("title");
+ assertTrue(book1.valueEquals(book2));
+ }
+
+ /**
+ * Checks the valueEquals method outcome if all colums are not-null
+ * and equal in the two objects except the primary key column.
+ */
+ public void testAllSetDifferentPk()
+ {
+ Book book1 = new Book();
+ book1.setAuthorId(1);
+ book1.setBookId(5);
+ book1.setIsbn("abc");
+ book1.setTitle("title");
+ Book book2 = new Book();
+ book2.setAuthorId(1);
+ book2.setBookId(7);
+ book2.setIsbn("abc");
+ book2.setTitle("title");
+ assertFalse(book1.valueEquals(book2));
+ }
+
+ /**
+ * Checks the valueEquals method outcome if all colums are not-null
+ * and equal in the two objects except a non-primary key column.
+ */
+ public void testAllSetDifferentNonPk()
+ {
+ Book book1 = new Book();
+ book1.setAuthorId(1);
+ book1.setBookId(5);
+ book1.setIsbn("abc");
+ book1.setTitle("title");
+ Book book2 = new Book();
+ book2.setAuthorId(1);
+ book2.setBookId(5);
+ book2.setIsbn("abc");
+ book2.setTitle("otherTitle");
+ assertFalse(book1.valueEquals(book2));
+ }
+
+ /**
+ * Checks the valueEquals method outcome if all colums are not-null
+ * and equal in the two objects except a non-primary-key foreign-key column.
+ */
+ public void testAllSetDifferentNonPkFk()
+ {
+ Book book1 = new Book();
+ book1.setAuthorId(3);
+ book1.setBookId(5);
+ book1.setIsbn("abc");
+ book1.setTitle("title");
+ Book book2 = new Book();
+ book2.setAuthorId(1);
+ book2.setBookId(5);
+ book2.setIsbn("abc");
+ book2.setTitle("title");
+ assertFalse(book1.valueEquals(book2));
+ }
+
+ /**
+ * Checks the valueEquals method outcome if a column is null
+ * in the two objects and all other fields are set and equal.
+ */
+ public void testFieldNotSetBothNull()
+ {
+ Book book1 = new Book();
+ book1.setAuthorId(1);
+ book1.setBookId(5);
+ book1.setIsbn(null);
+ book1.setTitle("title");
+ Book book2 = new Book();
+ book2.setAuthorId(1);
+ book2.setBookId(5);
+ book2.setIsbn(null);
+ book2.setTitle("title");
+ assertTrue(book1.valueEquals(book2));
+ }
+
+
+ /**
+ * Checks the valueEquals method outcome if a column is null
+ * in only one the two objects and all other fields are set and equal.
+ */
+ public void testFieldNotSetOneNull()
+ {
+ Book book1 = new Book();
+ book1.setAuthorId(1);
+ book1.setBookId(5);
+ book1.setIsbn(null);
+ book1.setTitle("title");
+ Book book2 = new Book();
+ book2.setAuthorId(1);
+ book2.setBookId(5);
+ book2.setIsbn("abc");
+ book2.setTitle("Title");
+ assertFalse(book1.valueEquals(book2));
+ }
+}
Propchange: db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/generated/dataobject/ValueEqualsTest.java
------------------------------------------------------------------------------
svn:keywords = Id
Modified: db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/generated/peer/DeleteTest.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/generated/peer/DeleteTest.java?rev=1414363&r1=1414362&r2=1414363&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/generated/peer/DeleteTest.java (original)
+++ db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/generated/peer/DeleteTest.java Tue Nov 27 20:02:32 2012
@@ -65,10 +65,10 @@ public class DeleteTest extends BaseData
= testData.getNullableOIntegerFkList().get(0);
int preDeleteId = toDelete.getId();
- // check that three entries are in the NullableOIntegerFk table
+ // check that four entries are in the NullableOIntegerFk table
List<NullableOIntegerFk> nullableOIntegerFkList
= getNullableOIntegerFkList();
- assertEquals(3, nullableOIntegerFkList.size());
+ assertEquals(4, nullableOIntegerFkList.size());
assertTrue(nullableOIntegerFkList.contains(toDelete));
// call delete method and check result.
@@ -76,10 +76,10 @@ public class DeleteTest extends BaseData
assertEquals(1, deleted);
assertEquals(preDeleteId, toDelete.getId().intValue());
- // check that there are two entries remaining in the database
+ // check that there are three entries remaining in the database
// and the toDelete object was deleted
nullableOIntegerFkList = getNullableOIntegerFkList();
- assertEquals(2, nullableOIntegerFkList.size());
+ assertEquals(3, nullableOIntegerFkList.size());
assertFalse(nullableOIntegerFkList.contains(toDelete));
// check that no associated object has been deleted
@@ -106,10 +106,10 @@ public class DeleteTest extends BaseData
toDelete.setId(toDelete.getId() - 1);
int preDeleteId = toDelete.getId();
- // check that three entries are in the NullableOIntegerFk table
+ // check that four entries are in the NullableOIntegerFk table
List<NullableOIntegerFk> nullableOIntegerFkList
= getNullableOIntegerFkList();
- assertEquals(3, nullableOIntegerFkList.size());
+ assertEquals(4, nullableOIntegerFkList.size());
assertFalse(nullableOIntegerFkList.contains(toDelete));
// call delete method and check result.
@@ -119,7 +119,7 @@ public class DeleteTest extends BaseData
// check that all entries remain in the database
nullableOIntegerFkList = getNullableOIntegerFkList();
- assertEquals(3, nullableOIntegerFkList.size());
+ assertEquals(4, nullableOIntegerFkList.size());
}
/**
@@ -143,10 +143,10 @@ public class DeleteTest extends BaseData
// check that isDeleted() is false before deletion
assertFalse(toDelete.isDeleted());
- // check that three entries are in the NullableOIntegerFk table
+ // check that four entries are in the NullableOIntegerFk table
List<NullableOIntegerFk> nullableOIntegerFkList
= getNullableOIntegerFkList();
- assertEquals(3, nullableOIntegerFkList.size());
+ assertEquals(4, nullableOIntegerFkList.size());
assertTrue(nullableOIntegerFkList.contains(toDelete));
// call delete method and check result.
@@ -155,10 +155,10 @@ public class DeleteTest extends BaseData
assertEquals(preDeleteId, toDelete.getId().intValue());
assertTrue(toDelete.isDeleted());
- // check that there are two entries remaining in the database
+ // check that there are three entries remaining in the database
// and the toDelete object was deleted
nullableOIntegerFkList = getNullableOIntegerFkList();
- assertEquals(2, nullableOIntegerFkList.size());
+ assertEquals(3, nullableOIntegerFkList.size());
assertFalse(nullableOIntegerFkList.contains(toDelete));
}
@@ -259,10 +259,10 @@ public class DeleteTest extends BaseData
// check that isDeleted() is false before deletion
assertFalse(toDelete.get(0).isDeleted());
assertFalse(toDelete.get(1).isDeleted());
- // check that three entries are in the NullableOIntegerFk table
+ // check that four entries are in the NullableOIntegerFk table
List<NullableOIntegerFk> nullableOIntegerFkList
= getNullableOIntegerFkList();
- assertEquals(3, nullableOIntegerFkList.size());
+ assertEquals(4, nullableOIntegerFkList.size());
assertTrue(nullableOIntegerFkList.contains(toDelete.get(0)));
assertTrue(nullableOIntegerFkList.contains(toDelete.get(1)));
@@ -275,10 +275,10 @@ public class DeleteTest extends BaseData
assertTrue(toDelete.get(0).isDeleted());
assertTrue(toDelete.get(1).isDeleted());
- // check that there is one entries remaining in the database
+ // check that there are two entries remaining in the database
// and the objects contained in toDelete object were deleted
nullableOIntegerFkList = getNullableOIntegerFkList();
- assertEquals(1, nullableOIntegerFkList.size());
+ assertEquals(2, nullableOIntegerFkList.size());
assertFalse(nullableOIntegerFkList.contains(toDelete.get(0)));
assertFalse(nullableOIntegerFkList.contains(toDelete.get(1)));
@@ -311,11 +311,11 @@ public class DeleteTest extends BaseData
// check that isDeleted() is false before deletion
assertFalse(toDelete.get(0).isDeleted());
assertFalse(toDelete.get(1).isDeleted());
- // check that three entries are in the NullableOIntegerFk table
+ // check that four entries are in the NullableOIntegerFk table
// prior to deletion
List<NullableOIntegerFk> nullableOIntegerFkList
= getNullableOIntegerFkList();
- assertEquals(3, nullableOIntegerFkList.size());
+ assertEquals(4, nullableOIntegerFkList.size());
assertFalse(nullableOIntegerFkList.contains(toDelete.get(0)));
assertTrue(nullableOIntegerFkList.contains(toDelete.get(1)));
@@ -327,9 +327,9 @@ public class DeleteTest extends BaseData
assertTrue(toDelete.get(0).isDeleted());
assertTrue(toDelete.get(1).isDeleted());
- // check that two entries remain in the database
+ // check that three entries remain in the database
nullableOIntegerFkList = getNullableOIntegerFkList();
- assertEquals(2, nullableOIntegerFkList.size());
+ assertEquals(3, nullableOIntegerFkList.size());
assertFalse(nullableOIntegerFkList.contains(toDelete.get(1)));
}
@@ -349,10 +349,10 @@ public class DeleteTest extends BaseData
= testData.getNullableOIntegerFkList().get(0);
int preDeleteId = toDelete.getId();
- // check that three entries are in the NullableOIntegerFk table
+ // check that four entries are in the NullableOIntegerFk table
List<NullableOIntegerFk> nullableOIntegerFkList
= getNullableOIntegerFkList();
- assertEquals(3, nullableOIntegerFkList.size());
+ assertEquals(4, nullableOIntegerFkList.size());
assertTrue(nullableOIntegerFkList.contains(toDelete));
// calculate and check primary key
@@ -365,10 +365,10 @@ public class DeleteTest extends BaseData
assertEquals(1, deleted);
assertEquals(preDeleteId, toDelete.getId().intValue());
- // check that there are two entries remaining in the database
+ // check that there are three entries remaining in the database
// and the toDelete object was deleted
nullableOIntegerFkList = getNullableOIntegerFkList();
- assertEquals(2, nullableOIntegerFkList.size());
+ assertEquals(3, nullableOIntegerFkList.size());
assertFalse(nullableOIntegerFkList.contains(toDelete));
// check that no associated object has been deleted
@@ -396,10 +396,10 @@ public class DeleteTest extends BaseData
toDelete.setId(toDelete.getId() - 1);
int preDeleteId = toDelete.getId();
- // check that three entries are in the NullableOIntegerFk table
+ // check that four entries are in the NullableOIntegerFk table
List<NullableOIntegerFk> nullableOIntegerFkList
= getNullableOIntegerFkList();
- assertEquals(3, nullableOIntegerFkList.size());
+ assertEquals(4, nullableOIntegerFkList.size());
assertFalse(nullableOIntegerFkList.contains(toDelete));
// calculate and check primary key
@@ -414,7 +414,7 @@ public class DeleteTest extends BaseData
// check that all entries remain in the database
nullableOIntegerFkList = getNullableOIntegerFkList();
- assertEquals(3, nullableOIntegerFkList.size());
+ assertEquals(4, nullableOIntegerFkList.size());
}
/**
@@ -438,11 +438,11 @@ public class DeleteTest extends BaseData
int deletedCount = NullableOIntegerFkPeer.doDelete(criteria);
assertEquals(2, deletedCount);
- // check that only the last entry remains in the NullableOIntegerFk
- // table
+ // check that only the last two entries remains
+ // in the NullableOIntegerFk table
List<NullableOIntegerFk> nullableOIntegerFkList
= getNullableOIntegerFkList();
- assertEquals(1, nullableOIntegerFkList.size());
+ assertEquals(2, nullableOIntegerFkList.size());
assertEquals(
testData.getNullableOIntegerFkList().get(2).getId(),
nullableOIntegerFkList.get(0).getId());
@@ -474,7 +474,7 @@ public class DeleteTest extends BaseData
// check that three entries remain in the NullableOIntegerFk table
List<NullableOIntegerFk> nullableOIntegerFkList
= getNullableOIntegerFkList();
- assertEquals(3, nullableOIntegerFkList.size());
+ assertEquals(4, nullableOIntegerFkList.size());
}
/**
Modified: db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/generated/peer/FillerTest.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/generated/peer/FillerTest.java?rev=1414363&r1=1414362&r2=1414363&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/generated/peer/FillerTest.java (original)
+++ db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/generated/peer/FillerTest.java Tue Nov 27 20:02:32 2012
@@ -54,7 +54,7 @@ import org.apache.torque.test.peer.Requi
public class FillerTest extends BaseDatabaseTestCase
{
/** How many records are many records. */
- private int MANY = 1256;
+ private final int MANY = 1256;
/**
* Tests the functionality for the fillers for referenced Objects.
@@ -151,7 +151,7 @@ public class FillerTest extends BaseData
NullableOIntegerFkPeer.ID);
List<NullableOIntegerFk> fkList
= NullableOIntegerFkPeer.doSelect(criteria);
- assertEquals(3, fkList.size());
+ assertEquals(4, fkList.size());
assertEquals(
testData.getNullableOIntegerFkList().get(0).getId(),
fkList.get(0).getId());
@@ -225,7 +225,7 @@ public class FillerTest extends BaseData
NonPkOIntegerFkPeer.ID);
List<NonPkOIntegerFk> fkList
= NonPkOIntegerFkPeer.doSelect(criteria);
- assertEquals(3, fkList.size());
+ assertEquals(4, fkList.size());
assertEquals(
testData.getNonPkOIntegerFkList().get(0).getId(),
fkList.get(0).getId());
@@ -394,7 +394,7 @@ public class FillerTest extends BaseData
CompIntegerVarcharFkPeer.ID);
List<CompIntegerVarcharFk> fkList
= CompIntegerVarcharFkPeer.doSelect(criteria);
- assertEquals(3, fkList.size());
+ assertEquals(4, fkList.size());
assertEquals(
testData.getCompositeIntegerVarcharFkList().get(0).getId(),
fkList.get(0).getId());
---------------------------------------------------------------------
To unsubscribe, e-mail: torque-dev-unsubscribe@db.apache.org
For additional commands, e-mail: torque-dev-help@db.apache.org