public <T> T shallowClone(final T o) {
        if (o == null) {
            return null;
        }
        if (!this.cloningEnabled) {
            return o;
        }
        try {
            return cloneInternal(o, null);
        } catch (final IllegalAccessException e) {
            throw new RuntimeException("error during cloning of " + o, e);
        }
    }
public < T > T shallowClone ( final T o ) { if ( o == null ) { return null ; } if ( ! this . cloningEnabled ) { return o ; } try { return cloneInternal ( o , null ) ; } catch ( final IllegalAccessException e ) { throw new RuntimeException ( "error during cloning of " + o , e ) ; } }
shallow clones "o". This means that if c=shallowClone(o) then c!=o. Any change to c won't affect o.

@param <T>
the type of o
@param o
the object to be shallow-cloned
@return a shallow clone of "o"