/** * $URL: https://source.sakaiproject.org/svn/sitestats/trunk/sitestats-impl/src/java/org/sakaiproject/sitestats/impl/report/ReportDefEntityProducer.java $ * $Id: ReportDefEntityProducer.java 105078 2012-02-24 23:00:38Z ottenhoff@longsight.com $ * * Copyright (c) 2006-2009 The Sakai Foundation * * Licensed under the Educational Community License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.opensource.org/licenses/ECL-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.sakaiproject.sitestats.impl.report; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Set; import java.util.Stack; 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.entity.cover.EntityManager; import org.sakaiproject.sitestats.api.StatsManager; import org.sakaiproject.sitestats.api.report.ReportDef; import org.sakaiproject.sitestats.api.report.ReportManager; import org.w3c.dom.Document; import org.w3c.dom.Element; public class ReportDefEntityProducer implements EntityProducer, EntityTransferrer { private ReportManager M_rm; // --- Sakai services -------------------------------- public void init() { EntityManager.registerEntityProducer(this, ReportDefEntityProvider.REFERENCE_ROOT); } public void setReportManager(ReportManager reportManager) { this.M_rm = reportManager; } // --- EntityTransferrer ----------------------------- /* (non-Javadoc) * @see org.sakaiproject.entity.api.EntityTransferrer#myToolIds() */ public String[] myToolIds() { return new String[]{StatsManager.SITESTATS_TOOLID}; } /* (non-Javadoc) * @see org.sakaiproject.entity.api.EntityTransferrer#transferCopyEntities(java.lang.String, java.lang.String, java.util.List) */ public void transferCopyEntities(String fromContext, String toContext, List ids) { transferCopyEntities(fromContext, toContext, ids, false); } /* (non-Javadoc) * @see org.sakaiproject.entity.api.EntityTransferrer#transferCopyEntities(java.lang.String, java.lang.String, java.util.List, boolean) */ public void transferCopyEntities(String fromContext, String toContext, List ids, boolean cleanup) { // determine report definitions to copy List<ReportDef> list = null; if(ids != null && ids.size() > 0) { list = new ArrayList<ReportDef>(); for(String id : (List<String>) ids) { ReportDef rd = M_rm.getReportDefinition(Long.valueOf(id)); if(rd != null) { list.add(rd); } } }else{ list = M_rm.getReportDefinitions(fromContext, false, true); } // cleanup existing reports on destination site before copying if(cleanup) { List<ReportDef> listToCleanUp = M_rm.getReportDefinitions(toContext, false, true); for(ReportDef rd : listToCleanUp) { M_rm.removeReportDefinition(rd); } } // copy to destination for(ReportDef rd : list) { rd.setId(0); rd.setSiteId(toContext); rd.getReportParams().setSiteId(toContext); M_rm.saveReportDefinition(rd); } } // --- EntityProducer -------------------------------- /* (non-Javadoc) * @see org.sakaiproject.entity.api.EntityProducer#getLabel() */ public String getLabel() { return ReportDefEntityProvider.LABEL; } /* (non-Javadoc) * @see org.sakaiproject.entity.api.EntityProducer#willArchiveMerge() */ public boolean willArchiveMerge() { return false; } /* (non-Javadoc) * @see org.sakaiproject.entity.api.EntityProducer#archive(java.lang.String, org.w3c.dom.Document, java.util.Stack, java.lang.String, java.util.List) */ public String archive(String siteId, Document doc, Stack stack, String archivePath, List attachments) { return null; } /* (non-Javadoc) * @see org.sakaiproject.entity.api.EntityProducer#merge(java.lang.String, org.w3c.dom.Element, java.lang.String, java.lang.String, java.util.Map, java.util.Map, java.util.Set) */ public String merge(String siteId, Element root, String archivePath, String fromSiteId, Map attachmentNames, Map userIdTrans, Set userListAllowImport) { return null; } /* (non-Javadoc) * @see org.sakaiproject.entity.api.EntityProducer#parseEntityReference(java.lang.String, org.sakaiproject.entity.api.Reference) */ public boolean parseEntityReference(String reference, Reference ref) { return false; } /* (non-Javadoc) * @see org.sakaiproject.entity.api.EntityProducer#getEntityDescription(org.sakaiproject.entity.api.Reference) */ public String getEntityDescription(Reference ref) { return null; } /* (non-Javadoc) * @see org.sakaiproject.entity.api.EntityProducer#getEntityResourceProperties(org.sakaiproject.entity.api.Reference) */ public ResourceProperties getEntityResourceProperties(Reference ref) { return null; } /* (non-Javadoc) * @see org.sakaiproject.entity.api.EntityProducer#getEntity(org.sakaiproject.entity.api.Reference) */ public Entity getEntity(Reference ref) { return null; } /* (non-Javadoc) * @see org.sakaiproject.entity.api.EntityProducer#getEntityUrl(org.sakaiproject.entity.api.Reference) */ public String getEntityUrl(Reference ref) { return null; } /* (non-Javadoc) * @see org.sakaiproject.entity.api.EntityProducer#getEntityAuthzGroups(org.sakaiproject.entity.api.Reference, java.lang.String) */ public Collection getEntityAuthzGroups(Reference ref, String userId) { return null; } /* (non-Javadoc) * @see org.sakaiproject.entity.api.EntityProducer#getHttpAccess() */ public HttpAccess getHttpAccess() { return null; } }