From: Kal A. <ka...@te...> - 2001-09-28 12:42:34
|
Hi, At 11:18 28/09/2001 +0200, Norbert Hartl wrote: >this is a strange email. From whom are those interim quotes? >I can only recognize quotes to my mail and then on top >there are kals quotes. Who is this in between? :)) Thats Gerd Mueller, developer of the Ozone back-end > >> > >> Maybe I missed some point in this discussion, but why not having > >> a copy() method at the factory interface ? Then I would write: > >> > >> Topic t = factory.copy( topic, true ); > >> > >> Then it would be clear in which topicmap the copy resists and it > >> doesn't matter where the source comes from. > > > > > > That's another good idea - after all, it may be possible for different > > implementations to optimize the copy operation if they are all held in a > > single base class. Of course, that makes a clone() operation more > > difficult to implement, but only slightly so. If we implemented the > > TopicMap back-pointer in TopicMapObject, then an object could do clone > > by calling getTopicMap().getFactory().copy(...) > > > > >Ok, now I'm just not sure if everybody talks about the same issue. >Let's fix this: > >- which interfaces would be changed? >- where is the copy implementation? OK. This is where I think we are. There are thre approaches to copying currenlty on the table 1) The back-end independent copier object method - as represented by TopicMapCopier 2) Norbert's suggestion that copy() functions be implemented as part of the interfaces of TopicMapObject and derived classes 3) Gerd's suggestion that copy() functions be implemented as part of the interface of TopicMapFactory Then there are extra ideas flying round related to each of (2) and (3). As far as I can tell, (2) and (3) are equivalent in terms of functionality. (3) has the advantage that the factory being used for making the copy is clear. Lets try and resolve the issue of which approach to take first and then analyze that approach in more detail. If we find problems, we can always return to the "choosing an approach" step again! Lets move discussion of changes to the back-end into a separate thread. Cheers, Kal |