26 lines
610 B
Java
26 lines
610 B
Java
package com.rits.cloning;
|
|
|
|
import java.util.Collection;
|
|
import java.util.Map;
|
|
|
|
/**
|
|
* @author kostantinos.kougios
|
|
*
|
|
* 21 May 2009
|
|
*/
|
|
@SuppressWarnings({ "unchecked", "rawtypes" })
|
|
public abstract class FastClonerCustomCollection<T extends Collection> implements IFastCloner {
|
|
public abstract T getInstance(T o);
|
|
|
|
@Override
|
|
public Object clone(final Object t, final IDeepCloner cloner, final Map<Object, Object> clones) {
|
|
final T c = getInstance((T) t);
|
|
final T l = (T) t;
|
|
for (final Object o : l) {
|
|
final Object clone = cloner.deepClone(o, clones);
|
|
c.add(clone);
|
|
}
|
|
return c;
|
|
}
|
|
}
|