code: public static <T> T copy(final T object, final DataTypeDescriptor<T> descriptor) {
  		if (descriptor == null) {
  			throw new NullPointerException("descriptor");
  		}
  
  		return copy(object, descriptor.getType());
  	}
docs: Returns a deep copy of an object.