} else if (in instanceof FormatIdInputStream) {
// 2) Add a push back stream on top of the underlying
// source, and unread the surplus bytes we read. Set the
// push back stream to be the source of the data input obj.
final int surplus = read - hdrInfo.headerLength();
FormatIdInputStream formatIn = (FormatIdInputStream)in;
PushbackInputStream pushbackIn = new PushbackInputStream(
formatIn.getInputStream(), surplus);
pushbackIn.unread(header, hdrInfo.headerLength(), surplus);
formatIn.setInput(pushbackIn);
} else {
// 3) Assume we have a store stream.
rewindStream(srcIn, hdrInfo.headerLength());
}
}