/**
*
*/
package org.minnal.utils.serializer;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.util.Collection;
import com.google.common.base.Charsets;
import com.google.common.io.CharStreams;
/**
* @author ganeshs
*
*/
public class DefaultTextSerializer extends Serializer {
public DefaultTextSerializer() {
}
public <T> T deserialize(InputStream stream, Class<T> targetClass) {
if (! targetClass.equals(String.class)) {
throw new IllegalArgumentException("Target class is not string");
}
try {
InputStreamReader reader = new InputStreamReader(stream, Charsets.UTF_8);
return (T) CharStreams.toString(reader);
} catch (Exception e) {
throw new SerializationException("Failed while deserializing the buffer to type - " + targetClass, e);
}
}
@Override
public <T extends Collection<E>, E> T deserializeCollection(InputStream buffer, Class<T> collectionType, Class<E> elementType) {
throw new UnsupportedOperationException("Not yet implemented");
}
@Override
public void serialize(Object object, OutputStream stream) {
try {
stream.write(object.toString().getBytes(Charsets.UTF_8));
} catch (Exception e) {
throw new SerializationException("Failed while serializing the object", e);
} finally {
closeStream(stream);
}
}
}