/*
* Created on 13 Apr 2008
*
*/
package fr.chantier.tools;
import org.apache.tapestry5.ValueEncoder;
import org.apache.tapestry5.internal.util.Base64ObjectInputStream;
import org.apache.tapestry5.internal.util.Base64ObjectOutputStream;
import org.apache.tapestry5.ioc.internal.util.InternalUtils;
import java.io.ObjectInputStream;
public class EncoderBase64 implements ValueEncoder<Object> {
public Object toValue(String clientValue) {
Object value = null;
ObjectInputStream in = null;
try {
in = new Base64ObjectInputStream(clientValue);
value = in.readObject();
} catch (Exception e) {
throw new RuntimeException("client state corrupted", e);
} finally {
InternalUtils.close(in);
}
return value;
}
public String toClient(Object value) {
Base64ObjectOutputStream os = null;
try {
os = new Base64ObjectOutputStream();
os.writeObject(value);
} catch (Exception ex) {
throw new RuntimeException(ex.getMessage(), ex);
} finally {
InternalUtils.close(os);
}
return os.toBase64();
}
}