CloneHelper.javaPaquete: org.projectforge.framework.utils
Clases: CloneHelper
Importaciones: 1 paquete
package org.projectforge.framework.utils;
import java.io.*;
/**
* Para clonar un objeto incluyendo todos los campos (recursivo).
*
* @author Kai Reinhard (k.reinhard@micromata.de)
*
*/
public class CloneHelper
{
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(CloneHelper.class);
/**
* Serializa el objeto dado como ByteArray y lo deserializa.
* @param origin
* @return
*/
@SuppressWarnings("unchecked")
public static <T> T cloneBySerialization(final T origin)
{
final ByteArrayOutputStream bos = new ByteArrayOutputStream();
try {
final ObjectOutputStream
oos = new ObjectOutputStream(bos);
oos.writeObject(origin);
oos.flush();
oos.close();
bos.close();
} catch (final IOException ex) {
log.error("Excepción encontrada al clonar el objeto '" + origin + "': " + ex, ex);
return null;
}
final byte[] byteData = bos.toByteArray();
final ByteArrayInputStream bais = new ByteArrayInputStream(byteData);
T object;
try {
object = (T) new ObjectInputStream(bais).readObject();
return object;
} catch (final ClassNotFoundException | IOException ex) {
log.error("Excepción encontrada al clonar el objeto '" + origin + "': " + ex, ex);
return null;
}
}
}
868d6abb7 2025 -> 2026 63081666f Encabezados de archivos fuente: 2024-> 2025. 5f9bbfbd3 Corrección de errores tipográficos en el directorio projectforge-business b6092df09 Copyright 2023 -> 2024 ab45d51fa Copyright 2001-2022 -> 2001-2023.