Example usage for org.apache.commons.compress.archivers ArchiveStreamProvider createArchiveInputStream

List of usage examples for org.apache.commons.compress.archivers ArchiveStreamProvider createArchiveInputStream

Introduction

In this page you can find the example usage for org.apache.commons.compress.archivers ArchiveStreamProvider createArchiveInputStream.

Prototype

ArchiveInputStream createArchiveInputStream(final String name, final InputStream in, final String encoding)
        throws ArchiveException;

Source Link

Document

Creates an archive input stream from an archiver name and an input stream.

Usage

From source file:org.apache.tika.parser.pkg.TikaArchiveStreamFactory.java

@Override
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.");
    }//from  w  w w  .ja  v  a2  s.c o m

    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)) {
        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.");
}