You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by bo...@apache.org on 2013/08/17 22:10:40 UTC

svn commit: r1515040 - /commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/arj/ArjArchiveEntry.java

Author: bodewig
Date: Sat Aug 17 20:10:39 2013
New Revision: 1515040

URL: http://svn.apache.org/r1515040
Log:
the fileAccessMode of ARJ entries depends on the OS the archive was created on

Modified:
    commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/arj/ArjArchiveEntry.java

Modified: commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/arj/ArjArchiveEntry.java
URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/arj/ArjArchiveEntry.java?rev=1515040&r1=1515039&r2=1515040&view=diff
==============================================================================
--- commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/arj/ArjArchiveEntry.java (original)
+++ commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/arj/ArjArchiveEntry.java Sat Aug 17 20:10:39 2013
@@ -61,4 +61,49 @@ public class ArjArchiveEntry implements 
         return new Date(ZipUtil.dosToJavaTime(
                 0xffffFFFFL & localFileHeader.dateTimeModified));
     }
+
+    /**
+     * File mode of this entry.
+     *
+     * <p>The format depends on the host os that created the entry.</p>
+     */
+    public int getMode() {
+        return localFileHeader.fileAccessMode;
+    }
+
+    /**
+     * File mode of this entry as Unix stat value.
+     *
+     * <p>Will only be non-zero of the host os was UNIX.
+     */
+    public int getUnixMode() {
+        return getHostOs() == HostOs.UNIX ? getMode() : 0;
+    }
+
+    /**
+     * The operating system the archive has been created on.
+     * @see HostOs
+     */
+    public int getHostOs() {
+        return localFileHeader.hostOS;
+    }
+
+    /**
+     * The known values for HostOs.
+     */
+    public static class HostOs {
+        static final int DOS = 0;
+        static final int PRIMOS = 1;
+        static final int UNIX = 2;
+        static final int AMIGA = 3;
+        static final int MAC_OS = 4;
+        static final int OS_2 = 5;
+        static final int APPLE_GS = 6;
+        static final int ATARI_ST = 7;
+        static final int NEXT = 8;
+        static final int VAX_VMS = 9;
+        static final int WIN95 = 10;
+        static final int WIN32 = 11;
+    }
+    
 }