/** * Convert a set of mode bits into a FileMode enumerated value. * * @param bits the mode bits the caller has somehow obtained. * @return the FileMode instance that represents the given bits. */ public static final FileMode fromBits(final int bits) { switch (bits & TYPE_MASK) { case TYPE_MISSING: if (bits == 0) return MISSING; break; case TYPE_TREE: return TREE; case TYPE_FILE: if ((bits & 0111) != 0) return EXECUTABLE_FILE; return REGULAR_FILE; case TYPE_SYMLINK: return SYMLINK; case TYPE_GITLINK: return GITLINK; } return new FileMode(bits) { @Override public boolean equals(final int a) { return bits == a; } }; }
@Override public int getFileMode() { return FileMode.getFileMode(file); }
if (isSet(mode, 0400)) { unix[1] = 'r'; if (isSet(mode, 0200)) { unix[2] = 'w'; if (isSet(mode, 0100)) { unix[3] = 'x'; if (isSet(mode, 040)) { unix[4] = 'r'; if (isSet(mode, 020)) { unix[5] = 'w'; if (isSet(mode, 010)) { unix[6] = 'x'; if (isSet(mode, 04)) { unix[7] = 'r'; if (isSet(mode, 02)) { unix[8] = 'w'; if (isSet(mode, 01)) { unix[9] = 'x';
@Override public ExtendedArchiveEntry createEntryFor(String entryName, Entry archiveEntry, boolean isExecutable) { ExtendedArchiveEntry entry = newEntry(entryName, archiveEntry); entry.setSize(archiveEntry.getSize()); // // If we have a valid file mode then use it for the entry we are creating if (archiveEntry.getFileMode() != -1) { entry.setFileMode(archiveEntry.getFileMode()); if (isExecutable) { entry.setFileMode(FileMode.makeExecutable(entry.getFileMode())); } } else { if (isExecutable) { entry.setFileMode(FileMode.EXECUTABLE_FILE.getBits()); } } return entry; } }
@Override public boolean isExecutable() { return FileMode.EXECUTABLE_FILE.equals(getFileMode()); }
setFilePermissions(outputFile, FileMode.toPermissionsSet(mode)); } else { if (archiveEntry.isDirectory()) {
@Override public boolean isExecutable() { return FileMode.EXECUTABLE_FILE.equals(getFileMode()); }
public static Set<PosixFilePermission> toPermissionsSet(int mode) { Set<PosixFilePermission> result = EnumSet.noneOf(PosixFilePermission.class); if (isSet(mode, 0400)) { result.add(OWNER_READ); if (isSet(mode, 0200)) { result.add(OWNER_WRITE); if (isSet(mode, 0100)) { result.add(OWNER_EXECUTE); if (isSet(mode, 040)) { result.add(GROUP_READ); if (isSet(mode, 020)) { result.add(GROUP_WRITE); if (isSet(mode, 010)) { result.add(GROUP_EXECUTE); if (isSet(mode, 04)) { result.add(OTHERS_READ); if (isSet(mode, 02)) { result.add(OTHERS_WRITE); if (isSet(mode, 01)) { result.add(OTHERS_EXECUTE);