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

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

Introduction

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

Prototype

public CpioArchiveEntry(final short format, File inputFile, String entryName) 

Source Link

Document

Creates a CPIOArchiveEntry with a specified name for a specified file.

Usage

From source file:org.apache.ant.compress.taskdefs.Cpio.java

public Cpio() {
    setFactory(new CpioStreamFactory() {
        public ArchiveOutputStream getArchiveStream(OutputStream stream, String encoding) throws IOException {
            return new CpioArchiveOutputStream(stream, format.getFormat(), blockSize, encoding);
        }/*  w ww  . ja  va2 s. c o m*/
    });
    setEntryBuilder(new ArchiveBase.EntryBuilder() {
        public ArchiveEntry buildEntry(ArchiveBase.ResourceWithFlags r) {
            boolean isDir = r.getResource().isDirectory();
            CpioArchiveEntry ent = new CpioArchiveEntry(format.getFormat(), r.getName(),
                    isDir ? 0 : r.getResource().getSize());
            ent.setTime(round(r.getResource().getLastModified(), 1000) / 1000);

            int mode = isDir ? ArchiveFileSet.DEFAULT_DIR_MODE : ArchiveFileSet.DEFAULT_FILE_MODE;
            if (!isDir && r.getCollectionFlags().hasModeBeenSet()) {
                ent.setMode(r.getCollectionFlags().getMode());
            } else if (isDir && r.getCollectionFlags().hasDirModeBeenSet()) {
                ent.setMode(r.getCollectionFlags().getDirMode());
            } else if (r.getResourceFlags().hasModeBeenSet()) {
                ent.setMode(r.getResourceFlags().getMode());
            } else {
                ent.setMode(mode);
            }

            if (r.getResourceFlags().hasUserIdBeenSet()) {
                ent.setUID(r.getResourceFlags().getUserId());
            } else if (r.getCollectionFlags().hasUserIdBeenSet()) {
                ent.setUID(r.getCollectionFlags().getUserId());
            }

            if (r.getResourceFlags().hasGroupIdBeenSet()) {
                ent.setGID(r.getResourceFlags().getGroupId());
            } else if (r.getCollectionFlags().hasGroupIdBeenSet()) {
                ent.setGID(r.getCollectionFlags().getGroupId());
            }

            return ent;
        }
    });
    setFileSetBuilder(new ArchiveBase.FileSetBuilder() {
        public ArchiveFileSet buildFileSet(Resource dest) {
            ArchiveFileSet afs = new CpioFileSet();
            afs.setSrcResource(dest);
            return afs;
        }
    });
}