package org.infinispan.commons.configuration.attributes;
/**
* IdentityAttributeCopier. This {@link AttributeCopier} does not copy the source attribute, but
* returns it, so that the same instance can be shared across multiple configurations. Since this
* can only be safely done with threadsafe objects which store no state, be very careful when using
* it.
*
* @author Tristan Tarrant
* @since 7.2
*/
public class IdentityAttributeCopier<T> implements AttributeCopier<T> {
public static final AttributeCopier<Object> INSTANCE = new IdentityAttributeCopier<>();
private IdentityAttributeCopier() {
// Singleton constructor
}
@Override
public T copyAttribute(T attribute) {
return attribute;
}
}