// invoke handler delete callback
Tracing.logDebug("deleteRepositoryEntry start entry=" + entry, this.getClass());
entry = (RepositoryEntry) DBFactory.getInstance().loadObject(entry,true);
Tracing.logDebug("deleteRepositoryEntry after load entry=" + entry, this.getClass());
Tracing.logDebug("deleteRepositoryEntry after load entry.getOwnerGroup()=" + entry.getOwnerGroup(), this.getClass());
RepositoryHandler handler = RepositoryHandlerFactory.getInstance().getRepositoryHandler(entry);
OLATResource ores = entry.getOlatResource();
if (!handler.readyToDelete(ores, ureq, wControl)) return false;
// start transaction
// delete entry picture
File uploadDir = new File(FolderConfig.getCanonicalRoot() + FolderConfig.getRepositoryHome());
File picFile = new File(uploadDir, entry.getKey() + ".jpg");
if (picFile.exists()) {
picFile.delete();
}
// delete all bookmarks referencing deleted entry
BookmarkManager.getInstance().deleteAllBookmarksFor(entry);
// delete all catalog entries referencing deleted entry
CatalogManager.getInstance().resourceableDeleted(entry);
// delete the entry
entry = (RepositoryEntry) DBFactory.getInstance().loadObject(entry,true);
Tracing.logDebug("deleteRepositoryEntry after reload entry=" + entry, this.getClass());
Tracing.logDebug("deleteRepositoryEntry after reload entry.getOwnerGroup()=" + entry.getOwnerGroup(), this.getClass());
SecurityGroup ownerGroup = entry.getOwnerGroup();
deleteRepositoryEntry(entry);
if (ownerGroup != null) {
// delete secGroup
Tracing.logDebug("deleteRepositoryEntry deleteSecurityGroup ownerGroup=" + ownerGroup, this.getClass());
ManagerFactory.getManager().deleteSecurityGroup(ownerGroup);
}
// inform handler to do any cleanup work... handler must delete the
// referenced resourceable aswell.
handler.cleanupOnDelete(entry.getOlatResource(), ureq, wControl);
Tracing.logDebug("deleteRepositoryEntry Done" , this.getClass());
return true;
}