package org.kvj.vimtouch.ext.impl.write;
import java.util.List;
import org.kvj.vimtouch.ext.FieldWriter;
import org.kvj.vimtouch.ext.OutgoingTransfer;
import org.kvj.vimtouch.ext.Transferable.FieldType;
public class ListFieldWriter<T> implements FieldWriter<List<T>> {
private FieldWriter<T> itemWriter;
public ListFieldWriter(FieldWriter<T> itemWriter) {
this.itemWriter = itemWriter;
}
@Override
public FieldType getType() {
return FieldType.List;
}
@Override
public void write(OutgoingTransfer t, List<T> value) {
t.writeInt(value.size());
for (T item : value) {
t.writeField(null, item, itemWriter);
}
}
}