[ http://issues.apache.org/jira/browse/TORQUE-23?page=all ]
Thoralf Rickert updated TORQUE-23:
----------------------------------
Attachment: patch.txt
Okay, this is a patch for the Object.vm generated with Eclipse. It creates a
strange (localized) path to the Object.vm resource. I've changed this in the
patchfile and hope that is correct.
Additionally I didn't add a "public abstract copy(boolean)" method, because
this could generate some errors with existing projects because it changes the
API.
> DeepCopy
> --------
>
> Key: TORQUE-23
> URL: http://issues.apache.org/jira/browse/TORQUE-23
> Project: Torque
> Type: New Feature
> Components: Generator
> Reporter: Thoralf Rickert
> Priority: Minor
> Attachments: patch.txt
>
> I've a small problem with the copy() and copyInto() methods in the generated
> Torque objects. I've tables with dependencies from other tables (for example
> a table "login" which has a foreign key to a table "address"). I want to use
> the BaseAddress.copy() method to copy the address object and save it. If I
> use this method, it also loads and copies internally all logins which are
> linked to the source address to the new address. So, it makes a deep copy.
> If the object "Address" has many hundreds related objects of "Login" this
> deep copy makes a lot that is sometimes not necessary. So, it's better to let
> the user/programmer decide if there program should do a deep copy or not.
> The best way would be, that there is a copy(boolean) method that should be
> added during BaseAddress generation. I think, it's not very complicated to
> add this "feature". Here is my proposal:
> 1. add in Object.vm a new boolean parameter to copy() like this
> public $table.JavaName copy(boolean deepcopy) throws TorqueException
> {
> return copyInto(new ${table.JavaName}(),deepcopy);
> }
> 2. create two new downwards compatible methods copy() and copyInto()
> public $table.JavaName copy() throws TorqueException
> {
> return copy(true);
> }
> protected $table.JavaName copyInto($table.JavaName copyObj) throws
> TorqueException
> {
> return copyInto(copyObject, true);
> }
> 3. add a new parameter deepcopy to the old copyInto() method and check that
> variable before making the
> deepcopy. I think, it's not necessary to submit that value recursivly to
> the referers.
> protected $table.JavaName copyInto($table.JavaName copyObj, boolean)
> throws TorqueException
> {
> ....
> #if ($complexObjectModel)
> if (deepcopy) {
> #foreach ($fk in $table.Referrers)
> ...
> #end
> }
> #end
> }
> Maybe I can create a patch for you.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]