Rafael,
 It worked ok and it's very much simpler.

Thanks
Edgar

Rafael U. C. Afonso wrote:
Hello:

It could be done simply using
InvokerTransformer
(http://jakarta.apache.org/commons/collections/apidocs-COLLECTIONS_3_1/org/apache/commons/collections/functors/InvokerTransformer.html)
and CollectionUtils.collect()
(http://jakarta.apache.org/commons/collections/apidocs-COLLECTIONS_3_1/org/apache/commons/collections/CollectionUtils.html#collect(java.util.Collection,%20org.apache.commons.collections.Transformer)):

Collection clonedCollection =
CollectionUtils.collect(originalCollection,
new
InvokerTransformer.getInstance("clone"));


Thanks,


---------- In�cio da mensagem original -----------

De: "Edgar Poce"
[EMAIL PROTECTED]
Para: "Jakarta Commons Users List"
[EMAIL PROTECTED]
Cc: Data: Wed, 01 Dec 2004 20:35:36 -0300
Assunto: Re: [Collections] deep cloning



But the goal of the Collections

component is to extend the JDK


framework, right?.
I think it would be useful to have a

deepClone utility under


CollectionUtils.

something like

        /**
         * Deep clone.
         * It creates a new Collection wich

contains a clone of

* each element found in the

original Collection.

* All the elements in the original

Collection must support

* clone() method invocation. If

not CloneNotSupportedException

         * is thrown
         *
         * @param collection
         * @return
         * @throws CloneNotSupportedException
         */
    private static Collection

deepClone(Collection collection) throws


CloneNotSupportedException {
        ArrayList retu = new

ArrayList();

Iterator iter =

collection.iterator() ;

        while (iter.hasNext()) {
            Object o = (Object)

iter.next() ;

            try {
                Method method =

o.getClass().getDeclaredMethod("clone",


new Class[]{});
                Object clone =

method.invoke(o, new Object[]{} );

                retu.add(clone);
            } catch (Exception e) {
                throw new

CloneNotSupportedException("Unable to
clone


element " + o + ". Exception=" +

e.getClass().getName() + ". Message= "


+ e.getMessage() );
            }
        }
        return retu ;
    }   

----- Original Message -----
From: Stephen Colebourne
> No, because the JDK collections

API doesn't feature cloning as part


of > its
> standard  functions.
>
> You could try commons-lang

SerializationUtils clone. That will do


what > you
> want, just a little slowly.
>
> Stephen
>
> ----- Original Message -----
> From: "Edgar Poce"
> > hi
> >   is there any method in the

package that clones a Collection and

> > returns a new Collection wich

contains a clone of each element?.

> >
> > Thanks in advance
> > Edgar
> >
> >
---------------------------------------------------------------------




---------------------------------------------------------------------

To unsubscribe, e-mail:

[EMAIL PROTECTED]

For additional commands, e-mail:

[EMAIL PROTECTED]



Rafael Ubiratam Clemente Afonso
[EMAIL PROTECTED]
---------------------------------
Where is Debug?
Debug is on the Table!
__________________________________________________________________________
Acabe com aquelas janelinhas que pulam na sua tela.
AntiPop-up UOL - � gr�tis!
http://antipopup.uol.com.br/




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



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



Reply via email to