On Thu, 9 Jan 2003, Carsten Ziegeler wrote:

>
> Stephan Michels wrote:
> > Carsten Ziegeler wrote:
> > >
> > > Now, think if an implementation for copy(). Each Source implementation
> > > must test if the destination is the same source implementation or not.
> > > If not use IS/OS if yes use optimized etc.
> >
> > agreed.
> >
> > > So, if we are using these "marker" interfaces for all other parts, I
> > > really think we should add a "MoveableSource" (substitute the
> > name if you
> > > like)
> >
> > I thought these operations are a kind of writing operations.
> >
> > > and have an utility class check if:
> > > a) both sources have the same implementation and
> > > b) implement MoveableSource
> > > If both is answered with yes, this can be used - if not the
> > utility class
> > > uses IS/OS copying.
> >
> > I like code sippets ;-)
>
> sippets? :) (ok, just kidding)

okay okay 'snippet' ;-)

> >
> > class MySource implements MoveableSource
> > {
> >  void copy(Source source)
> >  {
> >    // impementation depending copy
> >  }
> > }
> >
> > class SourceCopyUtil<whatever>
> > {
> >  void copy(Source from, Source to)
> >  {
> >    If ((from instanceof MoveableSource) &&
> >        (from.getClass().equals(to.getClass()))
> >     // impementation depending copy
> >     ((MoveableSource)from).copy(to);
> >    else
> >     IS/OS copy
> >  }
> > }
> >
> > Something like that?
> >
> Exactly.
>
> Would you suggest to have two interfaces, one for copying
> and one for moving?

No, I think if we have a source, which we can copy, we
will always have a source, which we can also move.

So can we use org/apache/cocoon/components/source/SourceUtil
for the external copy? I think so.

> Or is it ok, to implement a move as a copy/delete?

Not really.

Stephan Michels.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to