*
* @param messageStore
* The message store to perform the random action to
*/
private void performRandomAction(final MessageListDemoStore messageStore) {
final ReadableList inboxMessages = messageStore.getInboxMessages();
final ReadableList deletedMessages = messageStore.getDeletedMessages();
switch (_random.nextInt(3)) {
case 0:
// Update an existing message
if (inboxMessages.size() > 0) {
final DemoMessage msg =
(DemoMessage) inboxMessages.getAt(_random
.nextInt(inboxMessages.size()));
if (msg.isNew()) {
msg.markRead();
} else if (!msg.hasReplied()) {
msg.reply("Auto reply");
} else {
msg.markAsNew();
}
messageStore.getInboxFolder().fireElementUpdated(msg, msg);
} else {
addInboxMessage(messageStore);
}
break;
case 1:
// Delete an inbox message
if (inboxMessages.size() > 0) {
final DemoMessage msg =
(DemoMessage) inboxMessages.getAt(_random
.nextInt(inboxMessages.size()));
messageStore.deleteInboxMessage(msg);
messageStore.getInboxFolder().fireElementRemoved(msg);
messageStore.getDeletedFolder().fireElementAdded(msg);
} else {
addInboxMessage(messageStore);
}
break;
default:
// Delete message completely
if (deletedMessages.size() > 0) {
final DemoMessage msg =
(DemoMessage) deletedMessages.getAt(_random
.nextInt(deletedMessages.size()));
messageStore.deleteMessageCompletely(msg);
messageStore.getDeletedFolder().fireElementRemoved(msg);
} else {
addInboxMessage(messageStore);
}