Ce code est diffusé selon les termes de la licence GNU GPL dans sa version 3

/**Duplication d'une collection.
 * Plus précisément, c'est l'état de la collection fournie qui est dupliqué.
 * Les éléments référencée par la collection ne sont pas dupliqués.
 *
 * (c)David SPORN
 * Ce code est diffusé selon les terme de la licence GPL version 3
 * @param collection la collection à dupliquer
 * @return une collection de même type, référençant les mêmes élements
 * @throws CloneNotSupportedException en cas de problème.
 */
public Collection clone(Collection collection) throws CloneNotSupportedException
{
	try {
		Collection collection_result = null ;
		Class collection_class = collection.getClass() ;
		Constructor collection_constructor = collection_class.getConstructor(null) ;
		collection_result = (Collection) collection_constructor.newInstance(null) ;
		collection_result.addAll(collection) ;
		return collection_result ;
	} catch (Exception e) {
		CloneNotSupportedException exception_to_throw = new CloneNotSupportedException("An exception was raised :"+e.getClass().getName()+":"+e.getLocalizedMessage()) ;
		exception_to_throw.initCause(e) ;
		throw exception_to_throw ;
	} 
}