001    package railo.runtime.net.ftp;
002    
003    import org.apache.commons.net.ftp.FTPFile;
004    
005    
006    /**
007     * 
008     */
009    public final class FTPConstant {
010    
011    
012        /**
013         * Field <code>TRANSFER_MODE_AUTO</code>
014         */
015        public static final short TRANSFER_MODE_AUTO=0;
016        /**
017         * Field <code>TRANSFER_MODE_BINARY</code>
018         */
019        public static final short TRANSFER_MODE_BINARY=1;
020        /**
021         * Field <code>TRANSFER_MODE_ASCCI</code>
022         */
023        public static final short TRANSFER_MODE_ASCCI=2;
024    
025        /**
026         * Field <code>PERMISSION_READ</code>
027         */
028        public static final short PERMISSION_READ=4;
029        /**
030         * Field <code>PERMISSION_WRITE</code>
031         */
032        public static final short PERMISSION_WRITE=2;
033        
034        /**
035         * Field <code>PERMISSION_EXECUTE</code>
036         */
037        public static final short PERMISSION_EXECUTE=1;
038    
039        /**
040         * Field <code>ACCESS_WORLD</code>
041         */
042        public static final short ACCESS_WORLD=1;
043        /**
044         * Field <code>ACCESS_GROUP</code>
045         */
046        public static final short ACCESS_GROUP=10;
047        /**
048         * Field <code>ACCESS_USER</code>
049         */
050        public static final short ACCESS_USER=100;
051    
052        
053        
054        
055        /**
056         * @param type
057         * @return file type as String
058         */
059        public static String getTypeAsString(int type) {
060            if(type==FTPFile.DIRECTORY_TYPE)return "directory";
061            else if(type==FTPFile.SYMBOLIC_LINK_TYPE)return "link";
062            else if(type==FTPFile.UNKNOWN_TYPE)return "unknown";
063            else if(type==FTPFile.FILE_TYPE)return "file";
064            
065            return "unknown";
066        }
067    
068        /**
069         * @param file
070         * @return permission as integer
071         */
072        public static Integer getPermissionASInteger(FTPFile file) {
073            int rtn=0;
074            // world
075            if(file.hasPermission(FTPFile.WORLD_ACCESS,FTPFile.READ_PERMISSION))rtn+=ACCESS_WORLD*PERMISSION_READ;
076            if(file.hasPermission(FTPFile.WORLD_ACCESS,FTPFile.WRITE_PERMISSION))rtn+=ACCESS_WORLD*PERMISSION_WRITE;
077            if(file.hasPermission(FTPFile.WORLD_ACCESS,FTPFile.EXECUTE_PERMISSION))rtn+=ACCESS_WORLD*PERMISSION_EXECUTE;
078    
079            // group
080            if(file.hasPermission(FTPFile.GROUP_ACCESS,FTPFile.READ_PERMISSION))rtn+=ACCESS_GROUP*PERMISSION_READ;
081            if(file.hasPermission(FTPFile.GROUP_ACCESS,FTPFile.WRITE_PERMISSION))rtn+=ACCESS_GROUP*PERMISSION_WRITE;
082            if(file.hasPermission(FTPFile.GROUP_ACCESS,FTPFile.EXECUTE_PERMISSION))rtn+=ACCESS_GROUP*PERMISSION_EXECUTE;
083    
084            // user
085            if(file.hasPermission(FTPFile.USER_ACCESS,FTPFile.READ_PERMISSION))rtn+=ACCESS_USER*PERMISSION_READ;
086            if(file.hasPermission(FTPFile.USER_ACCESS,FTPFile.WRITE_PERMISSION))rtn+=ACCESS_USER*PERMISSION_WRITE;
087            if(file.hasPermission(FTPFile.USER_ACCESS,FTPFile.EXECUTE_PERMISSION))rtn+=ACCESS_USER*PERMISSION_EXECUTE;
088            
089            return Integer.valueOf(rtn);
090        }
091    }