Subversion Repositories general

Compare Revisions

Ignore whitespace Rev 1013 → Rev 1014

/hostadmiral/trunk/src/ak/hostadmiral/core/model/MailboxManager.java
10,8 → 10,11
public class MailboxManager
implements
UserBeforeDeleteListener,
UserDeletingListener,
SystemUserBeforeDeleteListener,
InetDomainBeforeDeleteListener
SystemUserDeletingListener,
InetDomainBeforeDeleteListener,
InetDomainDeletingListener
{
private static MailboxManager mailboxManager = null;
private static boolean registered = false;
47,6 → 50,7
private Collection createdListeners = new ArrayList();
private Collection modifiedListeners = new ArrayList();
private Collection beforeDeleteListeners = new ArrayList();
private Collection deletingListeners = new ArrayList();
private Collection deletedListeners = new ArrayList();
 
private MailboxManager()
199,6 → 203,16
beforeDeleteListeners.remove(listener);
}
 
public void addDeletingListener(MailboxDeletingListener listener)
{
deletingListeners.add(listener);
}
 
public void removeDeletingListener(MailboxDeletingListener listener)
{
deletingListeners.remove(listener);
}
 
public void addDeletedListener(MailboxDeletedListener listener)
{
deletedListeners.add(listener);
231,6 → 245,12
if(!mailbox.deleteableBy(editor))
throw new ModelSecurityException();
 
// inform deleting listeners
for(Iterator i = deletingListeners.iterator(); i.hasNext(); ) {
MailboxDeletingListener listener = (MailboxDeletingListener)i.next();
listener.mailboxDeleting(editor, mailbox);
}
 
// backup copy
Mailbox oldMailbox = new Mailbox(mailbox);
 
243,7 → 263,7
throw new ModelException(ex);
}
 
// inform listeners
// inform deleted listeners
for(Iterator i = deletedListeners.iterator(); i.hasNext(); ) {
MailboxDeletedListener listener = (MailboxDeletedListener)i.next();
listener.mailboxDeleted(editor, oldMailbox);
311,6 → 331,26
return iterateBeforeDelete(editor, mailboxes, known);
}
 
public void userDeleting(User editor, User user)
throws ModelException
{
Collection mailboxes;
 
try {
mailboxes = HibernateUtil.currentSession().find(
"from Mailbox where owner = ?",
user, Hibernate.entity(User.class) );
}
catch(HibernateException ex)
{
throw new ModelException(ex);
}
 
for(Iterator i = mailboxes.iterator(); i.hasNext(); ) {
delete(editor, (Mailbox)i.next());
}
}
 
public Collection inetDomainBeforeDelete(User editor, InetDomain domain, Collection known)
throws ModelException
{
329,6 → 369,26
return iterateBeforeDelete(editor, mailboxes, known);
}
 
public void inetDomainDeleting(User editor, InetDomain domain)
throws ModelException
{
Collection mailboxes;
 
try {
mailboxes = HibernateUtil.currentSession().find(
"from Mailbox where domain = ?",
domain, Hibernate.entity(InetDomain.class) );
}
catch(HibernateException ex)
{
throw new ModelException(ex);
}
 
for(Iterator i = mailboxes.iterator(); i.hasNext(); ) {
delete(editor, (Mailbox)i.next());
}
}
 
public Collection systemUserBeforeDelete(User editor, SystemUser user, Collection known)
throws ModelException
{
347,6 → 407,26
return iterateBeforeDelete(editor, mailboxes, known);
}
 
public void systemUserDeleting(User editor, SystemUser user)
throws ModelException
{
Collection mailboxes;
 
try {
mailboxes = HibernateUtil.currentSession().find(
"from Mailbox where systemUser = ?",
user, Hibernate.entity(SystemUser.class) );
}
catch(HibernateException ex)
{
throw new ModelException(ex);
}
 
for(Iterator i = mailboxes.iterator(); i.hasNext(); ) {
delete(editor, (Mailbox)i.next());
}
}
 
private Collection iterateBeforeDelete(User editor, Collection mailboxes, Collection known)
throws ModelException
{