package yuku.alkitab.yes2.section;
import yuku.alkitab.yes2.io.RandomInputStream;
import yuku.alkitab.yes2.io.RandomOutputStream;
import yuku.alkitab.yes2.model.Yes2Book;
import yuku.alkitab.yes2.section.base.SectionContent;
import yuku.bintex.BintexReader;
import yuku.bintex.BintexWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class BooksInfoSection extends SectionContent implements SectionContent.Writer {
public static final String SECTION_NAME = "booksInfo";
public List<Yes2Book> yes2Books;
public BooksInfoSection() {
super(SECTION_NAME);
}
@Override public void write(RandomOutputStream output) throws IOException {
BintexWriter bw = new BintexWriter(output);
// int book_count
bw.writeInt(yes2Books.size());
// Book[book_count]
for (Yes2Book yes2Book: yes2Books) {
yes2Book.toBytes(bw);
}
}
public static class Reader implements SectionContent.Reader<BooksInfoSection> {
@Override public BooksInfoSection read(RandomInputStream input) throws Exception {
BintexReader br = new BintexReader(input);
BooksInfoSection res = new BooksInfoSection();
int book_count = br.readInt();
res.yes2Books = new ArrayList<>(book_count);
for (int i = 0; i < book_count; i++) {
res.yes2Books.add(Yes2Book.fromBytes(br));
}
return res;
}
}
}