22,6 → 22,7 |
{ |
private MailAliasStore store; |
|
private Collection validateListeners = new ArrayList(); |
private Collection createdListeners = new ArrayList(); |
private Collection modifiedListeners = new ArrayList(); |
private Collection beforeDeleteListeners = new ArrayList(); |
84,12 → 85,21 |
public void save(User editor, MailAlias mailAlias) |
throws ModelException |
{ |
// security check |
if(!mailAlias.editableBy(editor)) |
throw new ModelSecurityException(); |
|
//mailAlias.setModUser(editor); // FIXME |
|
boolean isNew = mailAlias.isNew(); |
MailAlias oldMailAlias = mailAlias.getOrigin(); |
if(oldMailAlias == null) oldMailAlias = mailAlias; |
|
//mailAlias.setModUser(editor); // FIXME |
// validate |
for(Iterator i = validateListeners.iterator(); i.hasNext(); ) { |
MailAliasValidateListener listener = (MailAliasValidateListener)i.next(); |
listener.mailAliasValidate(editor, mailAlias, oldMailAlias); |
} |
|
store.save(mailAlias); |
|
101,8 → 111,6 |
} |
} |
else { |
MailAlias oldMailAlias = mailAlias.getOrigin(); |
if(oldMailAlias == null) oldMailAlias = mailAlias; |
for(Iterator i = modifiedListeners.iterator(); i.hasNext(); ) { |
MailAliasModifiedListener listener = (MailAliasModifiedListener)i.next(); |
listener.mailAliasModified(editor, mailAlias, oldMailAlias); |
113,6 → 121,16 |
mailAlias.resetOrigin(); |
} |
|
public void addValidateListener(MailAliasValidateListener listener) |
{ |
validateListeners.add(listener); |
} |
|
public void removeValidateListener(MailAliasValidateListener listener) |
{ |
validateListeners.remove(listener); |
} |
|
public void addCreatedListener(MailAliasCreatedListener listener) |
{ |
createdListeners.add(listener); |