package org.zstack.utils;
import org.zstack.utils.gson.JSONObjectUtil;
import java.io.Serializable;
public class JsonWrapper<T> implements Serializable {
private String content;
private String className;
public JsonWrapper(T obj) {
content = JSONObjectUtil.toJsonString(obj);
className = obj.getClass().getName();
}
public T get() {
Class<T> clazz;
try {
clazz = (Class<T>) Class.forName(className);
return JSONObjectUtil.toObject(content, clazz);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
public static <T> JsonWrapper<T> wrap(T obj) {
return new JsonWrapper<T>(obj);
}
}