package org.theospi.portfolio.matrix.model.impl; import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Set; import java.util.Stack; import java.util.Vector; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.sakaiproject.entity.api.Entity; import org.sakaiproject.entity.api.EntityManager; import org.sakaiproject.entity.api.EntityProducer; import org.sakaiproject.entity.api.HttpAccess; import org.sakaiproject.entity.api.Reference; import org.sakaiproject.entity.api.ResourceProperties; import org.sakaiproject.exception.IdUnusedException; import org.sakaiproject.metaobj.shared.mgt.IdManager; import org.sakaiproject.site.api.Site; import org.sakaiproject.site.cover.SiteService; import org.theospi.portfolio.matrix.MatrixManager; import org.w3c.dom.Document; import org.w3c.dom.Element; public class ScaffoldingEntityProducer implements EntityProducer { protected final Log logger = LogFactory.getLog(getClass()); private EntityManager entityManager; private MatrixManager matrixManager; private IdManager idManager; public String getLabel() { return "/scaffolding"; } public void init() { logger.info("init()"); try { getEntityManager().registerEntityProducer(this, getLabel()); } catch (Exception e) { logger.warn("Error registering Matrix Content Entity Producer", e); } } public void destroy() { logger.info("destroy()"); } public String archive(String siteId, Document doc, Stack stack, String archivePath, List attachments) { // TODO Auto-generated method stub return null; } public Entity getEntity(Reference ref) { // TODO Auto-generated method stub return null; } public Collection getEntityAuthzGroups(Reference ref, String userId) { Collection<String> rv = new Vector<String>(); rv.add(ref.getReference()); try { Site site = SiteService.getSite(ref.getContext()); rv.add(site.getReference()); } catch (IdUnusedException e) { logger.warn("unable to get a site object from entity: " +ref.getReference()); } return rv; } public String getEntityDescription(Reference ref) { // TODO Auto-generated method stub return null; } public ResourceProperties getEntityResourceProperties(Reference ref) { // TODO Auto-generated method stub return null; } public String getEntityUrl(Reference ref) { // TODO Auto-generated method stub return null; } public HttpAccess getHttpAccess() { // TODO Auto-generated method stub return null; } public String merge(String siteId, Element root, String archivePath, String fromSiteId, Map attachmentNames, Map userIdTrans, Set userListAllowImport) { // TODO Auto-generated method stub return null; } public boolean parseEntityReference(String reference, Reference ref) { if (reference.startsWith(getLabel())) { String[] parts = reference.split(Entity.SEPARATOR, 4); if (parts.length < 4) { return false; } String type = parts[1]; /* * This is only really used so we know what kind of object we are * referencing */ String context = parts[2]; String id = parts[3]; ref.set(type, null, id, null, context); return true; } return false; } public boolean willArchiveMerge() { // TODO Auto-generated method stub return false; } public EntityManager getEntityManager() { return entityManager; } public void setEntityManager(EntityManager entityManager) { this.entityManager = entityManager; } public MatrixManager getMatrixManager() { return matrixManager; } public void setMatrixManager(MatrixManager matrixManager) { this.matrixManager = matrixManager; } public IdManager getIdManager() { return idManager; } public void setIdManager(IdManager idManager) { this.idManager = idManager; } }