001: package org.columba.mail.folder;
002:
003: import org.columba.ristretto.message.MailboxInfo;
004:
005: public class ColumbaMailboxInfo implements IMailboxInfo {
006:
007: private MailboxInfo mailboxInfo;
008:
009: public ColumbaMailboxInfo(MailboxInfo info) {
010: this .mailboxInfo = info;
011: }
012:
013: public ColumbaMailboxInfo() {
014: this .mailboxInfo = new MailboxInfo();
015: }
016:
017: public int getExists() {
018: return mailboxInfo.getExists();
019: }
020:
021: public void setExists(int v) {
022: mailboxInfo.setExists(v);
023:
024: }
025:
026: public void incExists() throws MailboxInfoInvalidException {
027: mailboxInfo.setExists(mailboxInfo.getExists() + 1);
028: sanityCheck();
029: }
030:
031: public void decExists() throws MailboxInfoInvalidException {
032: mailboxInfo.setExists(mailboxInfo.getExists() - 1);
033: sanityCheck();
034: }
035:
036: public void setRecent(int v) {
037: mailboxInfo.setRecent(v);
038: }
039:
040: public int getRecent() {
041: return mailboxInfo.getRecent();
042: }
043:
044: public void incRecent() throws MailboxInfoInvalidException {
045: mailboxInfo.setRecent(mailboxInfo.getRecent() + 1);
046: sanityCheck();
047: }
048:
049: public void decRecent() throws MailboxInfoInvalidException {
050: mailboxInfo.setRecent(mailboxInfo.getRecent() - 1);
051: sanityCheck();
052: }
053:
054: public void setUnseen(int v) {
055: mailboxInfo.setUnseen(v);
056: }
057:
058: public int getUnseen() {
059: return mailboxInfo.getUnseen();
060: }
061:
062: public void incUnseen() throws MailboxInfoInvalidException {
063: mailboxInfo.setUnseen(mailboxInfo.getUnseen() + 1);
064: sanityCheck();
065: }
066:
067: public void decUnseen() throws MailboxInfoInvalidException {
068: mailboxInfo.setUnseen(mailboxInfo.getUnseen() - 1);
069: sanityCheck();
070: }
071:
072: public void reset() {
073: mailboxInfo.reset();
074: }
075:
076: public void setUidNext(int v) {
077: mailboxInfo.setUidNext(v);
078: }
079:
080: public void setUidValidity(int v) {
081: mailboxInfo.setUidValidity(v);
082: }
083:
084: public int getUidNext() {
085: return mailboxInfo.getUidNext();
086: }
087:
088: public int getUidValidity() {
089: return mailboxInfo.getUidValidity();
090: }
091:
092: private void sanityCheck() throws MailboxInfoInvalidException {
093: if (!isSane())
094: throw new MailboxInfoInvalidException();
095: }
096:
097: public boolean isSane() {
098: // Sanity checks
099: if (mailboxInfo.getExists() < 0)
100: return false;
101:
102: if (mailboxInfo.getRecent() < 0)
103: return false;
104:
105: if (mailboxInfo.getRecent() > mailboxInfo.getExists())
106: return false;
107:
108: if (mailboxInfo.getUnseen() < 0)
109: return false;
110:
111: if (mailboxInfo.getUnseen() > mailboxInfo.getExists())
112: return false;
113:
114: return true;
115: }
116:
117: }
|