package be.selckin.swu.model;
import com.google.common.base.Preconditions;
import org.apache.wicket.model.IModel;
public class DiscardingModel<T> implements IModel<T> {
private transient T obj;
public DiscardingModel(T obj) {
Preconditions.checkNotNull(obj);
this.obj = obj;
}
@Override
public T getObject() {
Preconditions.checkNotNull(obj, "Attempting to use a detached discarding model");
return obj;
}
@Override
public void setObject(T object) {
this.obj = object;
}
@Override
public void detach() {
obj = null;
}
public static <T> DiscardingModel<T> of(T t) {
return new DiscardingModel<T>(t);
}
}