package org.jerlang.stdlib.beam_lib; import java.io.DataInputStream; import org.jerlang.type.Term; /** * A chunk reader is invoked after the chunk identifier and the length have been read. */ public abstract class AbstractChunkReader<T extends Chunk> extends AbstractReader { private final Chunk chunk; protected AbstractChunkReader(Chunk chunk, DataInputStream inputStream) { super(inputStream); this.chunk = chunk; } protected Chunk chunk() { return chunk; } public abstract T read() throws Throwable; protected Term readTerm() throws Throwable { return new ExternalTermReader(inputStream()).read(); } }