package com.smartandroid.sa.zip;
import java.io.IOException;
import java.io.InputStream;
import java.util.zip.ZipEntry;
class ZipEntryOrInfoAdapter implements ZipEntryCallback, ZipInfoCallback {
private final ZipEntryCallback entryCallback;
private final ZipInfoCallback infoCallback;
public ZipEntryOrInfoAdapter(ZipEntryCallback entryCallback,
ZipInfoCallback infoCallback) {
if (entryCallback != null && infoCallback != null
|| entryCallback == null && infoCallback == null) {
throw new IllegalArgumentException(
"Only one of ZipEntryCallback and ZipInfoCallback must be specified together");
}
this.entryCallback = entryCallback;
this.infoCallback = infoCallback;
}
public void process(ZipEntry zipEntry) throws IOException {
infoCallback.process(zipEntry);
}
public void process(InputStream in, ZipEntry zipEntry) throws IOException {
if (entryCallback != null) {
entryCallback.process(in, zipEntry);
} else {
process(zipEntry);
}
}
}