public object DeepClone(object param) { Config4Impl ret = new Config4Impl(); Config4Impl.ConfigDeepCloneContext context = new Config4Impl.ConfigDeepCloneContext (this, ret); ret._config = (KeySpecHashtable4)_config.DeepClone(context); ret._internStrings = _internStrings; ret._messageLevel = _messageLevel; ret._readOnly = _readOnly; if (_registeredTypeHandlers != null) { ret._registeredTypeHandlers = (Collection4)_registeredTypeHandlers.DeepClone(context ); } return(ret); }
/// <summary>Creates a clone of provided object</summary> /// <param name="obj">object to copy</param> /// <returns>copy of the submitted object</returns> public virtual object DeepClone(object obj) { Db4objects.Db4o.Reflect.Generic.GenericReflector myClone = new Db4objects.Db4o.Reflect.Generic.GenericReflector (null, (IReflector)_delegate.DeepClone(this)); myClone._collectionPredicates = (Collection4)_collectionPredicates.DeepClone(myClone ); // Interesting, adding the following messes things up. // Keep the code, since it may make sense to carry the // global reflectors into a running db4o session. // Iterator4 i = _classes.iterator(); // while(i.hasNext()){ // GenericClass clazz = (GenericClass)i.next(); // clazz = (GenericClass)clazz.deepClone(myClone); // myClone._classByName.put(clazz.getName(), clazz); // myClone._classes.add(clazz); // } return(myClone); }