package fr.openwide.core.wicket.more.model; import org.apache.wicket.core.util.lang.WicketObjects; import org.apache.wicket.model.LoadableDetachableModel; /** * Seems to be the "clean" Wicket way to serialize a class object. See BookmarkablePageLink. * @deprecated Do not use this. This model useless and potentially harmful in a multithreaded context. Use Model.of() instead. */ @Deprecated public class ClassModel<T> extends LoadableDetachableModel<Class<T>> { private static final long serialVersionUID = 1L; private String className; /** * @deprecated Do not use this. This model is useless and potentially harmful in a multithreaded context. Use Model.of() instead. */ @Deprecated public static <T> ClassModel<T> of(Class<T> clazz) { return new ClassModel<T>(clazz); } public ClassModel() { } public ClassModel(Class<T> clazz) { super(clazz); } @Override protected Class<T> load() { return className == null ? null : WicketObjects.<T>resolveClass(className); } @Override public void onDetach() { Class<? extends T> clazz = getObject(); className = (clazz == null) ? null : clazz.getName(); super.onDetach(); } }