Example usage for org.apache.commons.compress.archivers.cpio CpioArchiveEntry isDirectory

List of usage examples for org.apache.commons.compress.archivers.cpio CpioArchiveEntry isDirectory

Introduction

In this page you can find the example usage for org.apache.commons.compress.archivers.cpio CpioArchiveEntry isDirectory.

Prototype

public boolean isDirectory() 

Source Link

Document

Check if this entry represents a directory.

Usage

From source file:de.dentrassi.pm.rpm.internal.RpmExtractor.java

private RpmInformation makeInformation(final RpmInputStream in) throws IOException {
    final RpmHeader<RpmTag> header = in.getPayloadHeader();
    final RpmHeader<RpmSignatureTag> signature = in.getSignatureHeader();

    try {//from   w ww.j ava2s.  c om
        final RpmInformation result = new RpmInformation();

        result.setHeaderStart(header.getStart());
        result.setHeaderEnd(header.getStart() + header.getLength());

        result.setName(asString(header.getTag(RpmTag.NAME)));
        result.setArchitecture(asString(header.getTag(RpmTag.ARCH)));
        result.setSummary(asString(header.getTag(RpmTag.SUMMARY)));
        result.setDescription(asString(header.getTag(RpmTag.DESCRIPTION)));
        result.setPackager(asString(header.getTag(RpmTag.PACKAGER)));
        result.setUrl(asString(header.getTag(RpmTag.URL)));
        result.setLicense(asString(header.getTag(RpmTag.LICENSE)));
        result.setVendor(asString(header.getTag(RpmTag.VENDOR)));
        result.setGroup(asString(header.getTag(RpmTag.GROUP)));

        result.setBuildHost(asString(header.getTag(RpmTag.BUILDHOST)));
        result.setBuildTimestamp(asLong(header.getTag(RpmTag.BUILDTIME)));
        result.setSourcePackage(asString(header.getTag(RpmTag.SOURCE_PACKAGE)));

        result.setInstalledSize(asLong(header.getTag(RpmTag.INSTALLED_SIZE)));
        result.setArchiveSize(asLong(header.getTag(RpmTag.ARCHIVE_SIZE)));
        if (result.getArchiveSize() == null) {
            result.setArchiveSize(asLong(signature.getTag(RpmSignatureTag.PAYLOAD_SIZE)));
        }

        // version

        final RpmInformation.Version ver = new RpmInformation.Version(asString(header.getTag(RpmTag.VERSION)),
                asString(header.getTag(RpmTag.RELEASE)), asString(header.getTag(RpmTag.EPOCH)));
        result.setVersion(ver);

        // changelog

        final Object val = header.getTag(RpmTag.CHANGELOG_TIMESTAMP);
        if (val instanceof Long[]) {
            final Long[] ts = (Long[]) val;
            final String[] authors = (String[]) header.getTag(RpmTag.CHANGELOG_AUTHOR);
            final String[] texts = (String[]) header.getTag(RpmTag.CHANGELOG_TEXT);

            final List<RpmInformation.Changelog> changes = new ArrayList<>(ts.length);

            for (int i = 0; i < ts.length; i++) {
                changes.add(new RpmInformation.Changelog(ts[i], authors[i], texts[i]));
            }

            Collections.sort(changes, (o1, o2) -> Long.compare(o1.getTimestamp(), o2.getTimestamp()));

            result.setChangelog(changes);
        }

        // dependencies

        result.setProvides(
                makeDependencies(header, RpmTag.PROVIDE_NAME, RpmTag.PROVIDE_VERSION, RpmTag.PROVIDE_FLAGS));
        result.setRequires(
                makeDependencies(header, RpmTag.REQUIRE_NAME, RpmTag.REQUIRE_VERSION, RpmTag.REQUIRE_FLAGS));
        result.setConflicts(
                makeDependencies(header, RpmTag.CONFLICT_NAME, RpmTag.CONFLICT_VERSION, RpmTag.CONFLICT_FLAGS));
        result.setObsoletes(
                makeDependencies(header, RpmTag.OBSOLETE_NAME, RpmTag.OBSOLETE_VERSION, RpmTag.OBSOLETE_FLAGS));

        // files

        final CpioArchiveInputStream cpio = in.getCpioStream();
        CpioArchiveEntry cpioEntry;
        while ((cpioEntry = cpio.getNextCPIOEntry()) != null) {
            final String name = normalize(cpioEntry.getName());

            if (cpioEntry.isRegularFile()) {
                result.getFiles().add(name);
            } else if (cpioEntry.isDirectory()) {
                result.getDirectories().add(name);
            }
        }

        return result;
    } catch (final Exception e) {
        logger.info("Failed to create RPM information", e);
        return null;
    }
}

From source file:org.eclipse.packagedrone.repo.adapter.rpm.internal.RpmExtractor.java

private RpmInformation makeInformation(final RpmInputStream in) throws IOException {
    final RpmHeader<RpmTag> header = in.getPayloadHeader();
    final RpmHeader<RpmSignatureTag> signature = in.getSignatureHeader();

    try {//from   ww  w  . ja  va2  s  . c  o  m
        final RpmInformation result = new RpmInformation();

        result.setHeaderStart(header.getStart());
        result.setHeaderEnd(header.getStart() + header.getLength());

        result.setName(asString(header.getTag(RpmTag.NAME)));
        result.setArchitecture(asString(header.getTag(RpmTag.ARCH)));
        result.setSummary(asString(header.getTag(RpmTag.SUMMARY)));
        result.setDescription(asString(header.getTag(RpmTag.DESCRIPTION)));
        result.setPackager(asString(header.getTag(RpmTag.PACKAGER)));
        result.setUrl(asString(header.getTag(RpmTag.URL)));
        result.setLicense(asString(header.getTag(RpmTag.LICENSE)));
        result.setVendor(asString(header.getTag(RpmTag.VENDOR)));
        result.setGroup(asString(header.getTag(RpmTag.GROUP)));

        result.setBuildHost(asString(header.getTag(RpmTag.BUILDHOST)));
        result.setBuildTimestamp(asLong(header.getTag(RpmTag.BUILDTIME)));
        result.setSourcePackage(asString(header.getTag(RpmTag.SOURCE_PACKAGE)));

        result.setInstalledSize(asLong(header.getTag(RpmTag.INSTALLED_SIZE)));
        result.setArchiveSize(asLong(header.getTag(RpmTag.ARCHIVE_SIZE)));
        if (result.getArchiveSize() == null) {
            result.setArchiveSize(asLong(signature.getTag(RpmSignatureTag.PAYLOAD_SIZE)));
        }

        // version

        final RpmInformation.Version ver = new RpmInformation.Version(asString(header.getTag(RpmTag.VERSION)),
                asString(header.getTag(RpmTag.RELEASE)), asString(header.getTag(RpmTag.EPOCH)));
        result.setVersion(ver);

        // changelog

        final Object val = header.getTag(RpmTag.CHANGELOG_TIMESTAMP);
        if (val instanceof Long[]) {
            final Long[] ts = (Long[]) val;
            final String[] authors = (String[]) header.getTag(RpmTag.CHANGELOG_AUTHOR);
            final String[] texts = (String[]) header.getTag(RpmTag.CHANGELOG_TEXT);

            final List<RpmInformation.Changelog> changes = new ArrayList<>(ts.length);

            for (int i = 0; i < ts.length; i++) {
                changes.add(new RpmInformation.Changelog(ts[i], authors[i], texts[i]));
            }

            Collections.sort(changes, (o1, o2) -> Long.compare(o1.getTimestamp(), o2.getTimestamp()));

            result.setChangelog(changes);
        }

        // dependencies

        result.setProvides(
                makeDependencies(header, RpmTag.PROVIDE_NAME, RpmTag.PROVIDE_VERSION, RpmTag.PROVIDE_FLAGS));
        result.setRequires(
                makeDependencies(header, RpmTag.REQUIRE_NAME, RpmTag.REQUIRE_VERSION, RpmTag.REQUIRE_FLAGS));
        result.setConflicts(
                makeDependencies(header, RpmTag.CONFLICT_NAME, RpmTag.CONFLICT_VERSION, RpmTag.CONFLICT_FLAGS));
        result.setObsoletes(
                makeDependencies(header, RpmTag.OBSOLETE_NAME, RpmTag.OBSOLETE_VERSION, RpmTag.OBSOLETE_FLAGS));

        // files

        final CpioArchiveInputStream cpio = in.getCpioStream();
        CpioArchiveEntry cpioEntry;
        while ((cpioEntry = cpio.getNextCPIOEntry()) != null) {
            final String name = normalize(cpioEntry.getName());

            if (cpioEntry.isRegularFile()) {
                result.getFiles().add(name);
            } else if (cpioEntry.isDirectory()) {
                result.getDirectories().add(name);
            }
        }
        cpio.close();

        return result;
    } catch (final Exception e) {
        logger.info("Failed to create RPM information", e);
        return null;
    }
}

From source file:org.eclipse.packagedrone.utils.rpm.info.RpmInformations.java

public static RpmInformation makeInformation(final RpmInputStream in) throws IOException {
    final InputHeader<RpmTag> header = in.getPayloadHeader();
    final InputHeader<RpmSignatureTag> signature = in.getSignatureHeader();

    final RpmInformation result = new RpmInformation();

    result.setHeaderStart(header.getStart());
    result.setHeaderEnd(header.getStart() + header.getLength());

    result.setName(asString(header.getTag(RpmTag.NAME)));
    result.setArchitecture(asString(header.getTag(RpmTag.ARCH)));
    result.setSummary(asString(header.getTag(RpmTag.SUMMARY)));
    result.setDescription(asString(header.getTag(RpmTag.DESCRIPTION)));
    result.setPackager(asString(header.getTag(RpmTag.PACKAGER)));
    result.setUrl(asString(header.getTag(RpmTag.URL)));
    result.setLicense(asString(header.getTag(RpmTag.LICENSE)));
    result.setVendor(asString(header.getTag(RpmTag.VENDOR)));
    result.setGroup(asString(header.getTag(RpmTag.GROUP)));

    result.setBuildHost(asString(header.getTag(RpmTag.BUILDHOST)));
    result.setBuildTimestamp(asLong(header.getTag(RpmTag.BUILDTIME)));
    result.setSourcePackage(asString(header.getTag(RpmTag.SOURCE_PACKAGE)));

    result.setInstalledSize(asLong(header.getTag(RpmTag.SIZE)));
    result.setArchiveSize(asLong(header.getTag(RpmTag.ARCHIVE_SIZE)));
    if (result.getArchiveSize() == null) {
        result.setArchiveSize(asLong(signature.getTag(RpmSignatureTag.PAYLOAD_SIZE)));
    }/* w w  w  . j a  v  a 2s .  com*/

    // version

    final RpmInformation.Version ver = new RpmInformation.Version(asString(header.getTag(RpmTag.VERSION)),
            asString(header.getTag(RpmTag.RELEASE)), asString(header.getTag(RpmTag.EPOCH)));
    result.setVersion(ver);

    // changelog

    final Object val = header.getTag(RpmTag.CHANGELOG_TIMESTAMP);
    if (val instanceof Long[]) {
        final Long[] ts = (Long[]) val;
        final String[] authors = (String[]) header.getTag(RpmTag.CHANGELOG_AUTHOR);
        final String[] texts = (String[]) header.getTag(RpmTag.CHANGELOG_TEXT);

        final List<RpmInformation.Changelog> changes = new ArrayList<>(ts.length);

        for (int i = 0; i < ts.length; i++) {
            changes.add(new RpmInformation.Changelog(ts[i], authors[i], texts[i]));
        }

        Collections.sort(changes, (o1, o2) -> Long.compare(o1.getTimestamp(), o2.getTimestamp()));

        result.setChangelog(changes);
    }

    // dependencies

    result.setProvides(
            makeDependencies(header, RpmTag.PROVIDE_NAME, RpmTag.PROVIDE_VERSION, RpmTag.PROVIDE_FLAGS));
    result.setRequires(
            makeDependencies(header, RpmTag.REQUIRE_NAME, RpmTag.REQUIRE_VERSION, RpmTag.REQUIRE_FLAGS));
    result.setConflicts(
            makeDependencies(header, RpmTag.CONFLICT_NAME, RpmTag.CONFLICT_VERSION, RpmTag.CONFLICT_FLAGS));
    result.setObsoletes(
            makeDependencies(header, RpmTag.OBSOLETE_NAME, RpmTag.OBSOLETE_VERSION, RpmTag.OBSOLETE_FLAGS));

    // files

    final CpioArchiveInputStream cpio = in.getCpioStream();
    CpioArchiveEntry cpioEntry;
    while ((cpioEntry = cpio.getNextCPIOEntry()) != null) {
        final String name = normalize(cpioEntry.getName());

        if (cpioEntry.isRegularFile()) {
            result.getFiles().add(name);
        } else if (cpioEntry.isDirectory()) {
            result.getDirectories().add(name);
        }
    }
    cpio.close();

    return result;
}

From source file:org.ysb33r.groovy.vfsplugin.cpio.CpioFileObject.java

/**
 * Sets the details for this file object.
 *///  w  w w  . j  ava 2s .com
void setCpioEntry(final CpioArchiveEntry entry) {
    if (this.entry != null) {
        return;
    }

    if (entry == null || entry.isDirectory()) {
        type = FileType.FOLDER;
    } else {
        type = FileType.FILE;
    }

    this.entry = entry;
}

From source file:org.ysb33r.groovy.vfsplugin.cpio.CpioFileSystem.java

@Override
public void init() throws FileSystemException {
    super.init();

    // Build the index
    try {/*from  w w w .j a v  a2s.  c  o  m*/
        final List<CpioFileObject> strongRef = new ArrayList<CpioFileObject>(DEFAULT_INDEX_SIZE);
        CpioArchiveEntry entry;

        while ((entry = getCpioFile().getNextCPIOEntry()) != null) {
            final AbstractFileName name = (AbstractFileName) getFileSystemManager().resolveName(getRootName(),
                    UriParser.encode(entry.getName()));

            // Create the file
            CpioFileObject fileObj;
            if (entry.isDirectory() && getFileFromCache(name) != null) {
                fileObj = (CpioFileObject) getFileFromCache(name);
                fileObj.setCpioEntry(entry);
                continue;
            }

            fileObj = createCpioFileObject(name, entry);
            putFileToCache(fileObj);
            strongRef.add(fileObj);
            fileObj.holdObject(strongRef);

            // Make sure all ancestors exist
            // TODO - create these on demand
            CpioFileObject parent = null;
            for (AbstractFileName parentName = (AbstractFileName) name
                    .getParent(); parentName != null; fileObj = parent, parentName = (AbstractFileName) parentName
                            .getParent()) {
                // Locate the parent
                parent = (CpioFileObject) getFileFromCache(parentName);
                if (parent == null) {
                    parent = createCpioFileObject(parentName, null);
                    putFileToCache(parent);
                    strongRef.add(parent);
                    parent.holdObject(strongRef);
                }

                // Attach child to parent
                parent.attachChild(fileObj.getName());
            }
        }
    } catch (final IOException e) {
        throw new FileSystemException(e);
    } finally {
        closeCommunicationLink();
    }
}