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 2006/05/31 23:13:55 UTC
svn commit: r410671 - in /db/torque: site/trunk/xdocs/changes.xml
templates/trunk/src/templates/om/Object.vm
templates/trunk/src/templates/om/ObjectWithManager.vm
Author: tfischer
Date: Wed May 31 14:13:55 2006
New Revision: 410671
URL: http://svn.apache.org/viewvc?rev=410671&view=rev
Log:
Added methods for shallow copies into Object.vm and ObjectWithManager.vm
Implements TORQUE-23
Thanks to Thoralf Rickert for an early version of the patch.
Modified:
db/torque/site/trunk/xdocs/changes.xml
db/torque/templates/trunk/src/templates/om/Object.vm
db/torque/templates/trunk/src/templates/om/ObjectWithManager.vm
Modified: db/torque/site/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/db/torque/site/trunk/xdocs/changes.xml?rev=410671&r1=410670&r2=410671&view=diff
==============================================================================
--- db/torque/site/trunk/xdocs/changes.xml (original)
+++ db/torque/site/trunk/xdocs/changes.xml Wed May 31 14:13:55 2006
@@ -29,6 +29,9 @@
<release version="3.2.1-dev" date="in SVN">
+ <action type="add" dev="tfischer" issue="TORQUE-23" due-to="Thoralf Rickert">
+ Added methods for shallow copies into the generated objects.
+ </action>
<action type="fix" dev="tfischer" issue="TORQUE-6" due-to="Joerg Friedrich">
Fixed foreign key constraint generation for Firebird.
</action>
Modified: db/torque/templates/trunk/src/templates/om/Object.vm
URL: http://svn.apache.org/viewvc/db/torque/templates/trunk/src/templates/om/Object.vm?rev=410671&r1=410670&r2=410671&view=diff
==============================================================================
--- db/torque/templates/trunk/src/templates/om/Object.vm (original)
+++ db/torque/templates/trunk/src/templates/om/Object.vm Wed May 31 14:13:55 2006
@@ -1592,11 +1592,60 @@
#else
public $table.JavaName copy() throws TorqueException
{
+ #if ($complexObjectModel)
+ return copy(true);
+ #else
return copyInto(new ${table.JavaName}());
+ #end
}
#end
+ #if ($complexObjectModel)
+ #if (!$table.isAbstract())
+ /**
+ * Makes a copy of this object.
+ * It creates a new object filling in the simple attributes.
+ * If the parameter deepcopy is true, it then fills all the
+ * association collections and sets the related objects to
+ * isNew=true.
+ *
+ * @param deepcopy whether to copy the associated objects.
+ */
+ public $table.JavaName copy(boolean deepcopy) throws TorqueException
+ {
+ return copyInto(new ${table.JavaName}(), deepcopy);
+ }
+ #end
+ #end
+
+ #if ($complexObjectModel)
+ /**
+ * Fills the copyObj with the contents of this object.
+ * The associated objects are also copied and treated as new objects.
+ * @param copyObj the object to fill.
+ */
+ protected $table.JavaName copyInto($table.JavaName copyObj) throws TorqueException
+ {
+ return copyInto(copyObj, true);
+ }
+ #end
+
+ /**
+ * Fills the copyObj with the contents of this object.
+ #if ($complexObjectModel)
+ * If deepcopy is true, The associated objects are also copied
+ * and treated as new objects.
+ #end
+ * @param copyObj the object to fill.
+ #if ($complexObjectModel)
+ * @param deepcopy whether the associated objects should be copied.
+ #end
+ */
+ #if ($complexObjectModel)
+ protected $table.JavaName copyInto($table.JavaName copyObj, boolean deepcopy) throws TorqueException
+ #else
protected $table.JavaName copyInto($table.JavaName copyObj) throws TorqueException
+ #end
{
#foreach ($col in $table.Columns)
copyObj.${col.SetterName}($col.UncapitalisedJavaName);
@@ -1624,6 +1673,8 @@
#end
#if ($complexObjectModel)
+ if (deepcopy)
+ {
#foreach ($fk in $table.Referrers)
#set ( $tblFK = $fk.Table )
#if ( !($tblFK.Name.equals($table.Name)) )
@@ -1645,24 +1696,25 @@
#set ( $pCollNameNoS = "${className}RelatedBy$relCol" )
#end
- List#if($enableJava5Features)<$className>#end v${pCollName} = get${pCollName}();
- ## v can be null if the generator property
- ## torque.silentDbFetch is set to false
- if (v${pCollName} != null)
- {
- for (int i = 0; i < v${pCollName}.size(); i++)
+ List#if($enableJava5Features)<$className>#end v${pCollName} = get${pCollName}();
+ ## v can be null if the generator property
+ ## torque.silentDbFetch is set to false
+ if (v${pCollName} != null)
{
- ${className} obj = #if(!$enableJava5Features)($className)#end v${pCollName}.get(i);
- copyObj.add$pCollNameNoS(obj.copy());
+ for (int i = 0; i < v${pCollName}.size(); i++)
+ {
+ ${className} obj = #if(!$enableJava5Features)($className)#end v${pCollName}.get(i);
+ copyObj.add$pCollNameNoS(obj.copy());
+ }
+ }
+ else
+ {
+ copyObj.coll${pCollName} = null;
}
- }
- else
- {
- copyObj.coll${pCollName} = null;
- }
#end
#end
#end
+ }
#end
return copyObj;
}
Modified: db/torque/templates/trunk/src/templates/om/ObjectWithManager.vm
URL: http://svn.apache.org/viewvc/db/torque/templates/trunk/src/templates/om/ObjectWithManager.vm?rev=410671&r1=410670&r2=410671&view=diff
==============================================================================
--- db/torque/templates/trunk/src/templates/om/ObjectWithManager.vm (original)
+++ db/torque/templates/trunk/src/templates/om/ObjectWithManager.vm Wed May 31 14:13:55 2006
@@ -1610,11 +1610,60 @@
#else
public $table.JavaName copy() throws TorqueException
{
+ #if ($complexObjectModel)
+ return copy(true);
+ #else
return copyInto(new ${table.JavaName}());
+ #end
}
#end
+ #if ($complexObjectModel)
+ #if (!$table.isAbstract())
+ /**
+ * Makes a copy of this object.
+ * It creates a new object filling in the simple attributes.
+ * If the parameter deepcopy is true, it then fills all the
+ * association collections and sets the related objects to
+ * isNew=true.
+ *
+ * @param deepcopy whether to copy the associated objects.
+ */
+ public $table.JavaName copy(boolean deepcopy) throws TorqueException
+ {
+ return copyInto(new ${table.JavaName}(), deepcopy);
+ }
+ #end
+ #end
+
+ #if ($complexObjectModel)
+ /**
+ * Fills the copyObj with the contents of this object.
+ * The associated objects are also copied and treated as new objects.
+ * @param copyObj the object to fill.
+ */
+ protected $table.JavaName copyInto($table.JavaName copyObj) throws TorqueException
+ {
+ return copyInto(copyObj, true);
+ }
+ #end
+
+ /**
+ * Fills the copyObj with the contents of this object.
+ #if ($complexObjectModel)
+ * If deepcopy is true, The associated objects are also copied
+ * and treated as new objects.
+ #end
+ * @param copyObj the object to fill.
+ #if ($complexObjectModel)
+ * @param deepcopy whether the associated objects should be copied.
+ #end
+ */
+ #if ($complexObjectModel)
+ protected $table.JavaName copyInto($table.JavaName copyObj, boolean deepcopy) throws TorqueException
+ #else
protected $table.JavaName copyInto($table.JavaName copyObj) throws TorqueException
+ #end
{
#foreach ($col in $table.Columns)
copyObj.${col.SetterName}($col.UncapitalisedJavaName);
@@ -1623,8 +1672,8 @@
#foreach ($col in $table.Columns)
#if ($col.isPrimaryKey())
#if($col.Primitive)
- #set ($fktype = $col.JavaNative)
- #set ($casttype = "")
+ #set ($fktype = $col.JavaNative)
+ #set ($casttype = "")
#if ($fktype == "short")
#set ($casttype = "(short)")
#elseif($fktype == "byte")
@@ -1642,6 +1691,8 @@
#end
#if ($complexObjectModel)
+ if (deepcopy)
+ {
#foreach ($fk in $table.Referrers)
#set ( $tblFK = $fk.Table )
#if ( !($tblFK.Name.equals($table.Name)) )
@@ -1663,24 +1714,25 @@
#set ( $pCollNameNoS = "${className}RelatedBy$relCol" )
#end
- List#if($enableJava5Features)<$className>#end v${pCollName} = get${pCollName}();
- ## v can be null if the generator property
- ## torque.silentDbFetch is set to false
- if (v${pCollName} != null)
- {
- for (int i = 0; i < v${pCollName}.size(); i++)
+ List#if($enableJava5Features)<$className>#end v${pCollName} = get${pCollName}();
+ ## v can be null if the generator property
+ ## torque.silentDbFetch is set to false
+ if (v${pCollName} != null)
{
- ${className} obj = #if(!$enableJava5Features)($className)#end v${pCollName}.get(i);
- copyObj.add$pCollNameNoS(obj.copy());
+ for (int i = 0; i < v${pCollName}.size(); i++)
+ {
+ ${className} obj = #if(!$enableJava5Features)($className)#end v${pCollName}.get(i);
+ copyObj.add$pCollNameNoS(obj.copy());
+ }
+ }
+ else
+ {
+ copyObj.coll${pCollName} = null;
}
- }
- else
- {
- copyObj.coll${pCollName} = null;
- }
#end
#end
#end
+ }
#end
return copyObj;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: torque-dev-unsubscribe@db.apache.org
For additional commands, e-mail: torque-dev-help@db.apache.org