Hi everybody,<br><br>Thanks for all the great replies. You have really shed some light on this. <br><br>What I&#39;ll end up doing is probably writing a wrapper class for the remote object: <br><br>(pseudo code)<br><br>class RemoteObjectWrapper {<br>
&nbsp; private RemoteObject remoteObject;<br>&nbsp; public int doStuff( BigComplexNestedDataStructure arg ) {<br>&nbsp;&nbsp;&nbsp; remoteObject.doStuff( convert( arg ) );<br>&nbsp; }<br>&nbsp; private SpeciallyAdaptedArgType convert( BigComplexNestedDataStructure arg ) {<br>
&nbsp;&nbsp;&nbsp; ...<br>&nbsp; }<br>}<br><br>class RemoteObject {<br>&nbsp; private ActualRemoteObject actualObject;<br>&nbsp; public int doStuff( SpeciallyAdaptedArgType arg ) {<br>&nbsp;&nbsp;&nbsp; actualObject.doStuff( convert( arg ) );<br>&nbsp; }<br>&nbsp; private BigComplexNestedDataStructure convert( SpeciallyAdaptedArgType arg ) {<br>
&nbsp;&nbsp;&nbsp; ...<br>&nbsp; }<br>}<br><br>class ActualRemoteObject {<br>&nbsp; public int doStuff( BigComplexNestedDataStructure arg ) {<br>&nbsp;&nbsp;&nbsp; ... actual code ...<br>&nbsp; }<br>}<br><br>This way I&#39;ll end up having to change the existing codebase as little as possible, thus minimizing the risk of breaking something, as it&#39;s a fairly big system I&#39;m changing. <br>
<br>Thanks again for all the advice.<br><br>/David<br><br>