001    /*
002     * Copyright 2010 the original author or authors.
003     * 
004     *  Licensed under the Apache License, Version 2.0 (the "License");
005     *  you may not use this file except in compliance with the License.
006     *  You may obtain a copy of the License at
007     *
008     *      http://www.apache.org/licenses/LICENSE-2.0
009     *
010     *  Unless required by applicable law or agreed to in writing, software
011     *  distributed under the License is distributed on an "AS IS" BASIS,
012     *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013     *  See the License for the specific language governing permissions and
014     *  limitations under the License.
015     */
016    package com.hs.mail.imap.message.response;
017    
018    import java.util.ArrayList;
019    import java.util.List;
020    
021    import javax.mail.Flags;
022    
023    /**
024     * 
025     * @author Won Chul Doh
026     * @since Aug 1, 2010
027     *
028     */
029    public class UnsolicitedResponse implements ImapResponse {
030    
031            private boolean sizeChanged = false;
032            private int messageCount = 0;
033            private int recentMessageCount = 0;
034        private List<Integer> expungedMsns = null;
035        private List<StoreResponse> flagsResponses = null;
036    
037            public UnsolicitedResponse(boolean sizeChanged) {
038                    super();
039                    this.sizeChanged = sizeChanged;
040                    this.expungedMsns = new ArrayList<Integer>();
041                    this.flagsResponses = new ArrayList<StoreResponse>();
042            }
043        
044            public boolean isSizeChanged() {
045                    return sizeChanged;
046            }
047    
048            /**
049             * Gets the number of messages that this mailbox contains.
050             * 
051             * @return number of messages contained
052             */
053            public int getMessageCount() {
054                    return messageCount;
055            }
056    
057            public void setMessageCount(int count) {
058                    this.messageCount = count;
059            }
060    
061            /**
062             * Gets the number of recent messages.
063             * 
064             * @return number of recent messages
065             */
066            public int getRecentMessageCount() {
067                    return recentMessageCount;
068            }
069    
070            public void setRecentMessageCount(int count) {
071                    this.recentMessageCount = count;
072            }
073    
074            public List<Integer> getExpungedMsns() {
075                    return expungedMsns;
076            }
077            
078            public List<StoreResponse> getFlagsResponses() {
079                    return flagsResponses;
080            }
081    
082            public void addExpungedMsn(int msgnum) {
083                    expungedMsns.add(msgnum);
084            }
085    
086            public void addFlagsResponse(int msgnum, Flags flags) {
087                    flagsResponses.add(new StoreResponse((long) msgnum, flags));
088            }
089            
090    }