in src/main/java/org/apache/commons/compress/archivers/ArchiveStreamFactory.java [430:490]
public ArchiveInputStream createArchiveInputStream(final String archiverName, final InputStream in,
final String actualEncoding) throws ArchiveException {
if (archiverName == null) {
throw new IllegalArgumentException("Archivername must not be null.");
}
if (in == null) {
throw new IllegalArgumentException("InputStream must not be null.");
}
if (AR.equalsIgnoreCase(archiverName)) {
return new ArArchiveInputStream(in);
}
if (ARJ.equalsIgnoreCase(archiverName)) {
if (actualEncoding != null) {
return new ArjArchiveInputStream(in, actualEncoding);
}
return new ArjArchiveInputStream(in);
}
if (ZIP.equalsIgnoreCase(archiverName)) {
if (actualEncoding != null) {
return new ZipArchiveInputStream(in, actualEncoding);
}
return new ZipArchiveInputStream(in);
}
if (TAR.equalsIgnoreCase(archiverName)) {
if (actualEncoding != null) {
return new TarArchiveInputStream(in, actualEncoding);
}
return new TarArchiveInputStream(in);
}
if (JAR.equalsIgnoreCase(archiverName) || APK.equalsIgnoreCase(archiverName)) {
if (actualEncoding != null) {
return new JarArchiveInputStream(in, actualEncoding);
}
return new JarArchiveInputStream(in);
}
if (CPIO.equalsIgnoreCase(archiverName)) {
if (actualEncoding != null) {
return new CpioArchiveInputStream(in, actualEncoding);
}
return new CpioArchiveInputStream(in);
}
if (DUMP.equalsIgnoreCase(archiverName)) {
if (actualEncoding != null) {
return new DumpArchiveInputStream(in, actualEncoding);
}
return new DumpArchiveInputStream(in);
}
if (SEVEN_Z.equalsIgnoreCase(archiverName)) {
throw new StreamingNotSupportedException(SEVEN_Z);
}
final ArchiveStreamProvider archiveStreamProvider = getArchiveInputStreamProviders().get(toKey(archiverName));
if (archiveStreamProvider != null) {
return archiveStreamProvider.createArchiveInputStream(archiverName, in, actualEncoding);
}
throw new ArchiveException("Archiver: " + archiverName + " not found.");
}