25,6 → 25,7 |
private MailboxStore store; |
private Class[] passwordStores; |
|
private Collection validateListeners = new ArrayList(); |
private Collection createdListeners = new ArrayList(); |
private Collection modifiedListeners = new ArrayList(); |
private Collection beforeDeleteListeners = new ArrayList(); |
90,12 → 91,21 |
public void save(User editor, Mailbox mailbox) |
throws ModelException |
{ |
// security check |
if(!mailbox.editableBy(editor)) |
throw new ModelSecurityException(); |
|
//mailbox.setModUser(editor); // FIXME |
|
boolean isNew = mailbox.isNew(); |
Mailbox oldMailbox = mailbox.getOrigin(); |
if(oldMailbox == null) oldMailbox = mailbox; |
|
//mailbox.setModUser(editor); // FIXME |
// validate |
for(Iterator i = validateListeners.iterator(); i.hasNext(); ) { |
MailboxValidateListener listener = (MailboxValidateListener)i.next(); |
listener.mailboxValidate(editor, mailbox, oldMailbox); |
} |
|
store.save(mailbox); |
|
107,8 → 117,6 |
} |
} |
else { |
Mailbox oldMailbox = mailbox.getOrigin(); |
if(oldMailbox == null) oldMailbox = mailbox; |
for(Iterator i = modifiedListeners.iterator(); i.hasNext(); ) { |
MailboxModifiedListener listener = (MailboxModifiedListener)i.next(); |
listener.mailboxModified(editor, mailbox, oldMailbox); |
119,6 → 127,16 |
mailbox.resetOrigin(); |
} |
|
public void addValidateListener(MailboxValidateListener listener) |
{ |
validateListeners.add(listener); |
} |
|
public void removeValidateListener(MailboxValidateListener listener) |
{ |
validateListeners.remove(listener); |
} |
|
public void addCreatedListener(MailboxCreatedListener listener) |
{ |
createdListeners.add(listener); |