package io.github.lucaseasedup.logit.util;
import io.github.lucaseasedup.logit.LogItCore;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.logging.Level;
import java.util.regex.Pattern;
public final class Utils
{
private Utils()
{
}
public static String[] getWords(String string)
{
String trim = string.trim();
if (trim.isEmpty())
return ArrayUtils.NO_STRINGS;
return WORD_SPACE_PATTERN.split(trim);
}
@SuppressWarnings("unchecked")
public static <T> T deepCopy(T obj)
{
if (obj == null)
throw new IllegalArgumentException();
try
{
try (
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
)
{
oos.writeObject(obj);
oos.flush();
try (
ByteArrayInputStream bain =
new ByteArrayInputStream(baos.toByteArray());
ObjectInputStream ois = new ObjectInputStream(bain);
)
{
return (T) ois.readObject();
}
}
}
catch (IOException | ClassNotFoundException ex)
{
LogItCore.getInstance().log(Level.WARNING, ex);
return null;
}
}
private static final Pattern WORD_SPACE_PATTERN =
Pattern.compile("\\s+");
}