package org.sakaiproject.tool.assessment.services.assessment;
import org.sakaiproject.entity.cover.EntityManager;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.Stack;
import java.util.Iterator;
import org.sakaiproject.entity.api.Entity;
import org.sakaiproject.entity.api.EntityProducer;
import org.sakaiproject.entity.api.EntityTransferrer;
import org.sakaiproject.entity.api.HttpAccess;
import org.sakaiproject.entity.api.Reference;
import org.sakaiproject.entity.api.ResourceProperties;
import org.sakaiproject.tool.assessment.data.dao.assessment.AssessmentData;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class AssessmentEntityProducer implements EntityTransferrer,
EntityProducer {
private static Log log = LogFactory.getLog(AssessmentEntityProducer.class);
public void init() {
log.info("init()");
try {
EntityManager.registerEntityProducer(this, Entity.SEPARATOR
+ "samigo");
} catch (Exception e) {
log.warn("Error registering Samigo Entity Producer", e);
}
}
public void destroy() {
}
public String[] myToolIds() {
String[] toolIds = { "sakai.samigo" };
return toolIds;
}
public void transferCopyEntities(String fromContext, String toContext,
List ids) {
AssessmentService service = new AssessmentService();
service.copyAllAssessments(fromContext, toContext);
}
public String archive(String siteId, Document doc, Stack stack,
String archivePath, List attachments) {
return null;
}
public Entity getEntity(Reference ref) {
return null;
}
public Collection getEntityAuthzGroups(Reference ref, String userId) {
return null;
}
public String getEntityDescription(Reference ref) {
return null;
}
public ResourceProperties getEntityResourceProperties(Reference ref) {
return null;
}
public String getEntityUrl(Reference ref) {
return null;
}
public HttpAccess getHttpAccess() {
return null;
}
public String getLabel() {
return "samigo";
}
public String merge(String siteId, Element root, String archivePath,
String fromSiteId, Map attachmentNames, Map userIdTrans,
Set userListAllowImport) {
return null;
}
public boolean parseEntityReference(String reference, Reference ref) {
return false;
}
public boolean willArchiveMerge() {
return false;
}
public void transferCopyEntities(String fromContext, String toContext, List ids, boolean cleanup)
{
try
{
if(cleanup == true)
{
log.debug("deleting assessments from " + toContext);
AssessmentService service = new AssessmentService();
List assessmentList = service.getAllActiveAssessmentsbyAgent(toContext);
log.debug("found " + assessmentList.size() + " assessments in site: " + toContext);
Iterator iter =assessmentList.iterator();
while (iter.hasNext()) {
AssessmentData oneassessment = (AssessmentData) iter.next();
log.debug("removing assessemnt id = " +oneassessment.getAssessmentId() );
service.removeAssessment(oneassessment.getAssessmentId().toString());
}
}
}
catch (Exception e)
{
e.printStackTrace();
log.debug("transferCopyEntities: End removing Assessment data");
}
transferCopyEntities(fromContext, toContext, ids);
}
}