edu.northwestern.at.utils

## Class Cloner

- java.lang.Object
- - edu.northwestern.at.utils.Cloner

-     public class Cloner
      extends java.lang.Object

  Cloner -- Clones an object using serialization/deserialization.

  Usage:

  T clonedObject = (T)Cloner.deepClone( sourceObject );

  "sourceObject" must implement serializable or externalizable.

- - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `Cloner()` Allow overrides but not instantiation.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static java.lang.Object` | `deepClone(java.lang.Object sourceObject)` Deep clones an object using serialization/deserialization.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### Cloner

          protected Cloner()

      Allow overrides but not instantiation.

  - ### Method Detail

    - #### deepClone

          public static java.lang.Object deepClone(java.lang.Object sourceObject)
                                            throws java.lang.Exception

      Deep clones an object using serialization/deserialization.
      Parameters:
        `sourceObject` - The object to be cloned. Must implement serializable or externalizable.
      Returns:
        Clone of the source object.
      Throws:
        `java.lang.Exception` - if the clone process fails.