package org.sakaiproject.userauditservice.impl;
import java.util.Observable;
import java.util.Observer;
import org.sakaiproject.event.api.Event;
import org.sakaiproject.event.api.EventTrackingService;
import org.sakaiproject.site.api.SiteService;
import org.sakaiproject.userauditservice.api.UserAuditRegistration;
public class UserAuditSiteDeleteListener implements Observer {
protected EventTrackingService eventTrackingService = null;
protected SiteService siteService = null;
protected UserAuditRegistration userAuditRegistration = null;
public void init()
{
eventTrackingService.addObserver(this);
}
public void setEventTrackingService(EventTrackingService service)
{
eventTrackingService = service;
}
public void setSiteService(SiteService service)
{
siteService = service;
}
public void setUserAuditRegistration(UserAuditRegistration service)
{
userAuditRegistration = service;
}
public void update(Observable o, Object arg)
{
if (arg instanceof Event)
{
Event event = (Event) arg;
if (event != null && event.getEvent() != null && siteService.SECURE_REMOVE_SITE.equals(event.getEvent()))
{
String resource = event.getResource();
String siteRefRoot = siteService.REFERENCE_ROOT;
// double check we have a /site/siteId style string
if (resource.startsWith(siteRefRoot))
{
String siteId = resource.substring(siteRefRoot.length()+1);
userAuditRegistration.deleteUserAuditingFromSite(siteId);
}
}
}
}
}