8,7 → 8,9 |
import ak.hostadmiral.util.ModelSecurityException; |
|
public class InetDomainManager |
implements UserBeforeDeleteListener |
implements |
UserBeforeDeleteListener, |
UserDeletingListener |
{ |
private static InetDomainManager inetDomainManager = null; |
private static boolean registered = false; |
44,11 → 46,13 |
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 InetDomainManager() |
{ |
UserManager.getInstance().addBeforeDeleteListener(this); |
UserManager.getInstance().addDeletingListener(this); |
} |
|
public InetDomain create(User editor) |
190,6 → 194,16 |
beforeDeleteListeners.remove(listener); |
} |
|
public void addDeletingListener(InetDomainDeletingListener listener) |
{ |
deletingListeners.add(listener); |
} |
|
public void removeDeletingListener(InetDomainDeletingListener listener) |
{ |
deletingListeners.remove(listener); |
} |
|
public void addDeletedListener(InetDomainDeletedListener listener) |
{ |
deletedListeners.add(listener); |
222,6 → 236,12 |
if(!domain.deleteableBy(editor)) |
throw new ModelSecurityException(); |
|
// inform deleting listeners |
for(Iterator i = deletingListeners.iterator(); i.hasNext(); ) { |
InetDomainDeletingListener listener = (InetDomainDeletingListener)i.next(); |
listener.inetDomainDeleting(editor, domain); |
} |
|
// backup copy |
InetDomain oldDomain = new InetDomain(domain); |
|
235,7 → 255,7 |
throw new ModelException(ex); |
} |
|
// inform listeners |
// inform deleted listeners |
for(Iterator i = deletedListeners.iterator(); i.hasNext(); ) { |
InetDomainDeletedListener listener = (InetDomainDeletedListener)i.next(); |
listener.inetDomainDeleted(editor, oldDomain); |
309,6 → 329,26 |
return cascade; |
} |
|
public void userDeleting(User editor, User user) |
throws ModelException |
{ |
Collection domains; |
|
try { |
domains = HibernateUtil.currentSession().find( |
"from InetDomain where owner = ?", |
user, Hibernate.entity(User.class) ); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
|
for(Iterator i = domains.iterator(); i.hasNext(); ) { |
delete(editor, (InetDomain)i.next()); |
} |
} |
|
public static final Comparator NAME_COMPARATOR = new NameComparator(); |
|
private static class NameComparator |