package de.flower.common.ui.serialize;
import org.apache.wicket.serialize.ISerializer;
import java.util.ArrayList;
import java.util.List;
/**
* @author flowerrrr
*/
public class SerializerWrapper implements ISerializer {
private ISerializer serializer;
private List<ISerializerListener> listeners = new ArrayList();
public SerializerWrapper(ISerializer serializer) {
this.serializer = serializer;
}
@Override
public byte[] serialize(Object object) {
byte[] data = serializer.serialize(object);
notify(object, data);
return data;
}
private void notify(Object object, byte[] data) {
for (ISerializerListener listener : listeners) {
listener.notify(object, data);
}
}
@Override
public Object deserialize(byte[] data) {
return serializer.deserialize(data);
}
public void addListener(ISerializerListener listener) {
listeners.add(listener);
}
}