package com.netflix.astyanax.serializers;
import java.nio.ByteBuffer;
import java.util.List;
import org.apache.cassandra.db.marshal.AbstractType;
import org.apache.cassandra.db.marshal.ListType;
import com.netflix.astyanax.serializers.AbstractSerializer;
/**
* Serializer implementation for generic lists.
*
* @author vermes
*
* @param <T>
* element type
*/
public class ListSerializer<T> extends AbstractSerializer<List<T>> {
private final ListType<T> myList;
/**
* @param elements
*/
public ListSerializer(AbstractType<T> elements) {
myList = ListType.getInstance(elements);
}
@Override
public List<T> fromByteBuffer(ByteBuffer arg0) {
if (arg0 == null) return null;
ByteBuffer dup = arg0.duplicate();
return myList.compose(dup);
}
@Override
public ByteBuffer toByteBuffer(List<T> arg0) {
return arg0 == null ? null : myList.decompose(arg0);
}
}