I would think that cloning would go into BeanUtils,
which already has some cloning methods. If BeanUtils
already has cloning code, and so does
SerializationUtils, why would write yet another class?
--- Stephen Colebourne <[EMAIL PROTECTED]>
wrote:
> Have a look in SerializationUtils. IIRC this code is
> already there.
>
> CloneUtils can wrap the code in SerializationUtils
> to
> achieve its aims, although I'd probably prefer to
> just
> add a method to ObjectUtils rather than creating a
> new
> class for one method.
>
> Stephen
>
>
> --- Shaun Kalley <[EMAIL PROTECTED]> wrote:
>
> > I've included my code below. I have another if
> > you're able to answer
> > it: why is the lang subproject home to classes
> > dealing with
> > serialization? Shouldn't they be part of the IO
> > subproject?
> >
> > Thanks,
> > Shaun
> >
> > /**
> > * <p>Clones a serializable object by
> > serializing and deserializing
> > it.</p>
> > *
> > * @param obj the object to clone.
> > * @return a clone of the object, or null if
> the
> > object is null.
> > * @throws SerializationException if the
> > serialization process fails.
> > */
> > public static Object
> > cloneSerializable(Serializable obj) throws
> > SerializationException {
> > if (obj == null) {
> > return null;
> > }
> > ObjectOutputStream oos = null;
> > ObjectInputStream ois = null;
> > try {
> > ByteArrayOutputStream baos = new
> > ByteArrayOutputStream(512);
> > oos = new ObjectOutputStream(baos);
> > oos.writeObject(obj);
> > oos.flush();
> > ois = new ObjectInputStream(new
> > ByteArrayInputStream(baos.toByteArray()));
> > return ois.readObject();
> > } catch (Exception e) {
> > throw new
> SerializationException("Failed
> > to clone
> > serializable object.", e);
> > } finally {
> > if (ois != null) {
> > try {
> > ois.close();
> > } catch (IOException ignored) {
> > }
> > }
> > if (oos != null) {
> > try {
> > oos.close();
> > } catch (IOException ignored) {
> > }
> > }
> > }
> > }
> >
> >
> >
> > Kevin Gessner wrote:
> >
> > >Thanks Shaun - I'd be happy to have the code if
> > you'll send it along.
> > >
> > >Kevin
> > >
> > >On 6/4/05, Shaun Kalley <[EMAIL PROTECTED]>
> > wrote:
> > >
> > >
> > >>The only substantial difference in my code is a
> > shortcut to return null
> > >>if the object is null. (Sorry to send two
> > replies!)
> > >>
> > >>Shaun
> > >>
> > >>
> > >>James Carman wrote:
> > >>
> > >>
> > >>
> > >>>SerializationUtils already has a clone()
> method.
> > Is your code different
> > >>>
> > >>>
> > >>>from that?
> > >>
> > >>
> > >>>-----Original Message-----
> > >>>From: Shaun Kalley
> > [mailto:[EMAIL PROTECTED]
> > >>>Sent: Saturday, June 04, 2005 4:31 PM
> > >>>To: Jakarta Commons Developers List
> > >>>Subject: Re: [lang] CloneUtils
> > >>>
> > >>>Hi, Kevin and everyone,
> > >>>
> > >>>I've got code for cloning serializable objects
> > that I'd be happy to
> > >>>contribute to the project. Let me know if
> you'd
> > like it as a starting
> > >>>point.
> > >>>
> > >>>Thanks,
> > >>>Shaun Kalley
> > >>>
> > >>>
> > >>>Kevin Gessner wrote:
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>>Hello all,
> > >>>>
> > >>>>In the interest of jumping feet first into
> > commons-lang, I'm hoping to
> > >>>>start work on CloneUtils (from the tasks
> list).
> > Before I start any
> > >>>>serious design/coding, I'd like to ask for any
> > suggestions as to
> > >>>>features of the class (assuming, of course,
> that
> > no one has anything
> > >>>>completed already). I was planning on
> > implementing serialization
> > >>>>cloning, and maybe super-simple public fields
> > cloning if it's worth
> > >>>>it. I would appreciate any
> > suggestions/tips/etc. anyone has to offer.
> > >>>>
> > >>>>Thanks,
> > >>>>Kevin Gessner
> > >>>>
> >
>
>>>>---------------------------------------------------------------------
> > >>>>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]
> > >>>
> > >>>
> >
>
>>>---------------------------------------------------------------------
> > >>>To unsubscribe, e-mail:
> > [EMAIL PROTECTED]
> > >>>For additional commands, e-mail:
> > [EMAIL PROTECTED]
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>
> > >>
> > >>
> > >
> >
>
>---------------------------------------------------------------------
> > >To unsubscribe, e-mail:
>
=== message truncated ===
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]