Package com.sun.mail.imap

## Class IMAPNestedMessage

- java.lang.Object
- - javax.mail.Message
  - - javax.mail.internet.MimeMessage
    - - com.sun.mail.imap.IMAPMessage
      - - com.sun.mail.imap.IMAPNestedMessage

All Implemented Interfaces:
  `ReadableMime`, `MimePart`, `Part`

    public class IMAPNestedMessage
    extends IMAPMessage

This class implements a nested IMAP message

Author:
  John Mani

### Nested Class Summary

### Nested classes/interfaces inherited from class com.sun.mail.imap.IMAPMessage

`IMAPMessage.FetchProfileCondition`

### Nested classes/interfaces inherited from class javax.mail.internet.MimeMessage

`MimeMessage.RecipientType`

### Field Summary

### Fields inherited from class com.sun.mail.imap.IMAPMessage

`bs, envelope, items, sectionId`

### Fields inherited from class javax.mail.internet.MimeMessage

`cachedContent, content, contentStream, dh, flags, headers, modified, saved`

### Fields inherited from class javax.mail.Message

`expunged, folder, msgnum, session`

### Fields inherited from interface javax.mail.Part

`ATTACHMENT, INLINE`

### Method Summary

All Methods Instance Methods Concrete Methods
`protected void` `checkExpunged()`
`protected int` `getFetchBlockSize()`
`protected java.lang.Object` `getMessageCacheLock()` Get the messageCacheLock, associated with this Message's Folder.
`protected IMAPProtocol` `getProtocol()` Get this message's folder's protocol connection.
`protected int` `getSequenceNumber()` Get this message's IMAP sequence number.
`int` `getSize()` Get the message size.
`protected boolean` `ignoreBodyStructureSize()`
`boolean` `isExpunged()` Checks whether this message is expunged.
`protected boolean` `isREV1()`
`void` `setFlags​(Flags flag, boolean set)` Set/Unset the given flags in this message.

### Methods inherited from class com.sun.mail.imap.IMAPMessage

`addFrom, addHeader, addHeaderLine, addRecipients, fetchItem, forceCheckExpunged, getAllHeaderLines, getAllHeaders, getContentID, getContentLanguage, getContentMD5, getContentStream, getContentType, getDataHandler, getDescription, getDisposition, getEncoding, getFileName, getFlags, getFrom, getHeader, getHeader, getInReplyTo, getItem, getLineCount, getMatchingHeaderLines, getMatchingHeaders, getMessageID, getMimeStream, getModSeq, getNonMatchingHeaderLines, getNonMatchingHeaders, getPeek, getReceivedDate, getRecipients, getReplyTo, getSender, getSentDate, getSizeLong, getSubject, getUID, handleExtensionFetchItems, handleFetchItem, invalidateHeaders, isSet, removeHeader, setContentID, setContentLanguage, setContentMD5, setDataHandler, setDescription, setDisposition, setExpunged, setFileName, setFrom, setHeader, setMessageNumber, setPeek, setRecipients, setReplyTo, setSender, setSentDate, setSubject, setUID, writeTo`

### Methods inherited from class javax.mail.internet.MimeMessage

`addRecipients, createInternetHeaders, createMimeMessage, getAllRecipients, getContent, getInputStream, getRawInputStream, isMimeType, parse, reply, reply, saveChanges, setContent, setContent, setDescription, setFrom, setFrom, setRecipients, setSubject, setText, setText, setText, updateHeaders, updateMessageID, writeTo`

### Methods inherited from class javax.mail.Message

`addRecipient, getFolder, getMessageNumber, getSession, match, setFlag, setRecipient`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Method Detail

#### getProtocol

    protected IMAPProtocol getProtocol()
                                throws ProtocolException,
                                       FolderClosedException

Description copied from class: `IMAPMessage`
Get this message's folder's protocol connection. Throws FolderClosedException, if the protocol connection is not available. ASSERT: Must hold the messageCacheLock.

Overrides:
  `getProtocol` in class `IMAPMessage`
Returns:
  the IMAPProtocol object for the containing folder
Throws:
  `ProtocolException` - for protocol errors
  `FolderClosedException` - if the folder is closed

#### isREV1

    protected boolean isREV1()
                      throws FolderClosedException

Overrides:
  `isREV1` in class `IMAPMessage`
Throws:
  `FolderClosedException`

#### getMessageCacheLock

    protected java.lang.Object getMessageCacheLock()

Description copied from class: `IMAPMessage`
Get the messageCacheLock, associated with this Message's Folder.

Overrides:
  `getMessageCacheLock` in class `IMAPMessage`
Returns:
  the message cache lock object

#### getSequenceNumber

    protected int getSequenceNumber()

Description copied from class: `IMAPMessage`
Get this message's IMAP sequence number. ASSERT: This method must be called only when holding the messageCacheLock.

Overrides:
  `getSequenceNumber` in class `IMAPMessage`
Returns:
  the message sequence number

#### checkExpunged

    protected void checkExpunged()
                          throws MessageRemovedException

Overrides:
  `checkExpunged` in class `IMAPMessage`
Throws:
  `MessageRemovedException`

#### isExpunged

    public boolean isExpunged()

Description copied from class: `Message`
Checks whether this message is expunged. All other methods except `getMessageNumber()` are invalid on an expunged Message object.

Messages that are expunged due to an explict `expunge()` request on the containing Folder are removed from the Folder immediately. Messages that are externally expunged by another source are marked "expunged" and return true for the isExpunged() method, but they are not removed from the Folder until an explicit `expunge()` is done on the Folder.

See the description of `expunge()` for more details on expunge handling.

Overrides:
  `isExpunged` in class `Message`
Returns:
  true if the message is expunged
See Also:
  `Folder.expunge()`

#### getFetchBlockSize

    protected int getFetchBlockSize()

Overrides:
  `getFetchBlockSize` in class `IMAPMessage`

#### ignoreBodyStructureSize

    protected boolean ignoreBodyStructureSize()

Overrides:
  `ignoreBodyStructureSize` in class `IMAPMessage`

#### getSize

    public int getSize()
                throws MessagingException

Description copied from class: `IMAPMessage`
Get the message size.

Note that this returns RFC822.SIZE. That is, it's the size of the whole message, header and body included. Note also that if the size of the message is greater than Integer.MAX_VALUE (2GB), this method returns Integer.MAX_VALUE.

Specified by:
  `getSize` in interface `Part`
Overrides:
  `getSize` in class `IMAPMessage`
Returns:
  size of content in bytes
Throws:
  `MessagingException` - for failures

#### setFlags

    public void setFlags​(Flags flag,
                         boolean set)
                  throws MessagingException

Description copied from class: `IMAPMessage`
Set/Unset the given flags in this message.

Overrides:
  `setFlags` in class `IMAPMessage`
Parameters:
  `flag` - Flags object containing the flags to be set
  `set` - the value to be set
Throws:
  `IllegalWriteException` - if the underlying implementation does not support modification
  `MessagingException` - for other failures
See Also:
  `MessageChangedEvent`