Package javax.mail.event

# Class MessageCountEvent

java.lang.Object
java.util.EventObject
javax.mail.event.MailEvent
javax.mail.event.MessageCountEvent

All Implemented Interfaces:
  `Serializable`

Direct Known Subclasses:
  `MessageVanishedEvent`

public class MessageCountEvent extends MailEvent
This class notifies changes in the number of messages in a folder.

Note that some folder types may only deliver MessageCountEvents at certain times or after certain operations. IMAP in particular will only notify the client of MessageCountEvents when a client issues a new command. Refer to RFC 3501 for details. A client may want to "poll" the folder by occasionally calling the `getMessageCount` or `isOpen` methods to solicit any such notifications.

Author:
  John Mani
See Also:
  - Serialized Form

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`ADDED`
The messages were added to their folder
`protected Message[]`
`msgs`
The messages.
`protected boolean`
`removed`
If true, this event is the result of an explicit expunge by this client, and the messages in this folder have been renumbered to account for this.
`static final int`
`REMOVED`
The messages were removed from their folder
`protected int`
`type`
The event type.

### Fields inherited from class java.util.EventObject

`source`

## Constructor Summary

Constructors
Constructor
Description
`MessageCountEvent(Folder folder, int type, boolean removed, Message[] msgs)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`void`
`dispatch(Object listener)`
Invokes the appropriate MessageCountListener method.
`Message[]`
`getMessages()`
Return the array of messages added or removed.
`int`
`getType()`
Return the type of this event.
`boolean`
`isRemoved()`
Indicates whether this event is the result of an explicit expunge by this client, or due to an expunge from external sources.

### Methods inherited from class java.util.EventObject

`getSource, toString`

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

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

## Field Details

### ADDED

public static final int ADDED
The messages were added to their folder

See Also:
  - Constant Field Values

### REMOVED

public static final int REMOVED
The messages were removed from their folder

See Also:
  - Constant Field Values

### type

protected int type
The event type.

### removed

protected boolean removed
If true, this event is the result of an explicit expunge by this client, and the messages in this folder have been renumbered to account for this. If false, this event is the result of an expunge by external sources.

### msgs

protected transient Message[] msgs
The messages.

## Constructor Details

### MessageCountEvent

public MessageCountEvent(Folder folder, int type, boolean removed, Message[] msgs)
Constructor.

Parameters:
  `folder` - The containing folder
  `type` - The event type
  `removed` - If true, this event is the result of an explicit expunge by this client, and the messages in this folder have been renumbered to account for this. If false, this event is the result of an expunge by external sources.
  `msgs` - The messages added/removed

## Method Details

### getType

public int getType()
Return the type of this event.

Returns:
  type

### isRemoved

public boolean isRemoved()
Indicates whether this event is the result of an explicit expunge by this client, or due to an expunge from external sources. If `true`, this event is due to an explicit expunge and hence all remaining messages in this folder have been renumbered. If `false`, this event is due to an external expunge.

Note that this method is valid only if the type of this event is `REMOVED`

Returns:
  true if the message has been removed

### getMessages

public Message[] getMessages()
Return the array of messages added or removed.

Returns:
  array of messages

### dispatch

public void dispatch(Object listener)
Invokes the appropriate MessageCountListener method.

Specified by:
  `dispatch` in class `MailEvent`
Parameters:
  `listener` - the listener to invoke on