public < T > T deepClone ( final T o ) { if ( o == null ) { return null ; } if ( ! this . cloningEnabled ) { return o ; } if ( this . dumpClonedClasses ) { System . out . println ( "start>" + o . getClass ( ) ) ; } final Map < Object , Object > clones = new IdentityHashMap < Object , Object > ( 16 ) ; try { return cloneInternal ( o , clones ) ; } catch ( final IllegalAccessException e ) { throw new RuntimeException ( "error during cloning of " + o , e ) ; } }
deep clones o .