001    /*
002    
003      $Id: SharedFilesResponse.java,v 1.5 2003/05/02 20:29:47 culdesac Exp $
004    
005    */
006    
007    package sharpster.common;
008    
009    import sharpster.common.FileCollection;
010    import sharpster.common.Response;
011    import java.util.LinkedList;
012    
013    /**
014     * A response containing information about a file share.
015     */
016    public class SharedFilesResponse extends Response {
017    
018        /**
019         * Represents the command which has caused the response (share, unshare etc).
020         */
021        private int action;
022    
023        /**
024         * The collection of files.
025         */
026        private FileCollection files;
027    
028        private LinkedList sharedToUsers;
029    
030        /**
031         *
032         */
033        public SharedFilesResponse() {
034            sharedToUsers = new LinkedList();
035        }
036    
037        /**
038         * Returns the type of this response.
039         */
040        public int getType() {
041            return sharpster.common.ResponseType.SHARED_FILES;
042        }
043     
044        /**
045         * Returns the FileCollection of the response.
046         *
047         * @return FileCollection.
048         */
049        public FileCollection getFiles() {
050            return files;
051        }
052    
053        /** 
054         * Sets the file collection.
055         * 
056         * @param files The files to be set.
057         */
058        public void setFiles(FileCollection files) {
059            this.files = files;
060        }
061    
062        /** Returns an integer representing the command which has caused the response (share, unshare etc).
063         *
064         * @return An action integer
065         */
066        public int getAction() {
067            return action;
068        }
069    
070        /**
071         * Sets the command which has caused the response (share, unshare etc).
072         * 
073         * @param action An action integer
074         */
075        public void setAction(int action) {
076            this.action = action;
077        }
078    
079        public void addSharedToUsers(String user) {
080            sharedToUsers.add(user);
081        }
082    
083        public String[] getSharedToUsers() {
084            String[] users = new String[sharedToUsers.size()];
085            for(int i=0;i<sharedToUsers.size();i++) {
086                users[i]=(String)sharedToUsers.get(i);
087            }
088            return users;
089        }
090    
091        /**
092         *
093         */
094        public String toString() {
095            String msg = super.toString();
096    
097            msg = "Shared files response\n" + msg;
098            
099            if(action == 0) msg += "- Action: " + "none" + "\n";
100            else if(action == 1) msg += "- Action: " + "share" + "\n";
101            else msg += "- Action: " + "unshare" + "\n";
102            
103            msg += "- Affected users: ";
104            for(int i=0;i<sharedToUsers.size();i++) {
105                msg += (String)sharedToUsers.get(i) + "\n         ";
106            }
107            msg += "\r";
108            
109            msg += "- Files: ";
110    
111            for(int i=0;i<files.getFileCount();i++) {
112                SharedFile file = files.getFile(i);
113                if(file != null) {
114                    msg += file.getFileName() + " | ";
115                    msg += file.getAccessRightString() + " | ";
116                    msg += file.getPluginDataString();
117                    msg += "\n         ";
118                }
119            }
120            
121            if(files.getFileCount() == 0) msg += "\n";
122    
123            return msg;
124        }
125    }
126    
127    
128    
129    
130    
131    
132