001: /** 002: A mailbox contains messages that can be listed, kept or discarded. 003: */ 004: public class Mailbox 005: { 006: /** 007: Creates Mailbox object. 008: @param aPasscode passcode number 009: @param aGreeting greeting string 010: */ 011: public Mailbox(String aPasscode, String aGreeting) 012: { 013: passcode = aPasscode; 014: greeting = aGreeting; 015: newMessages = new MessageQueue(); 016: keptMessages = new MessageQueue(); 017: } 018: 019: /** 020: Check if the passcode is correct. 021: @param aPasscode a passcode to check 022: @return true if the supplied passcode matches the mailbox passcode 023: */ 024: public boolean checkPasscode(String aPasscode) 025: { 026: return aPasscode.equals(passcode); 027: } 028: 029: /** 030: Add a message to the mailbox. 031: @param aMessage the message to be added 032: */ 033: public void addMessage(Message aMessage) 034: { 035: newMessages.add(aMessage); 036: } 037: 038: /** 039: Get the current message. 040: @return the current message 041: */ 042: public Message getCurrentMessage() 043: { 044: if (newMessages.size() > 0) 045: return newMessages.getFirst(); 046: else if (keptMessages.size() > 0) 047: return keptMessages.getFirst(); 048: else 049: return null; 050: } 051: 052: /** 053: Remove the current message from the mailbox. 054: @return the message that has just been removed 055: */ 056: public Message removeCurrentMessage() 057: { 058: if (newMessages.size() > 0) 059: return newMessages.removeFirst(); 060: else if (keptMessages.size() > 0) 061: return keptMessages.removeFirst(); 062: else 063: return null; 064: } 065: 066: /** 067: Save the current message 068: */ 069: public void saveCurrentMessage() 070: { 071: Message m = removeCurrentMessage(); 072: if (m != null) 073: keptMessages.add(m); 074: } 075: 076: /** 077: Change mailbox's greeting. 078: @param newGreeting the new greeting string 079: */ 080: public void setGreeting(String newGreeting) 081: { 082: greeting = newGreeting; 083: } 084: 085: /** 086: Change mailbox's passcode. 087: @param newPasscode the new passcode 088: */ 089: public void setPasscode(String newPasscode) 090: { 091: passcode = newPasscode; 092: } 093: 094: /** 095: Get the mailbox's greeting. 096: @return the greeting 097: */ 098: public String getGreeting() 099: { 100: return greeting; 101: } 102: 103: private MessageQueue newMessages; 104: private MessageQueue keptMessages; 105: private String greeting; 106: private String passcode; 107: }