Search in sources :

Example 16 with EPStructureToArtefactLink

use of org.olat.portfolio.model.structel.EPStructureToArtefactLink in project openolat by klemens.

the class EPStructureManager method copyEPStructureElementRecursively.

private void copyEPStructureElementRecursively(EPStructureElement sourceEl, EPStructureElement targetEl, boolean withArtefacts, boolean cloneRestrictions) {
    // needed if the sourceEl come from a link. Hibernate doesn't initialize the list properly
    sourceEl = (EPStructureElement) dbInstance.loadObject(sourceEl);
    if (withArtefacts) {
        List<EPStructureToArtefactLink> artefactLinks = sourceEl.getInternalArtefacts();
        for (EPStructureToArtefactLink artefactLink : artefactLinks) {
            EPStructureToArtefactLink link = instantiateClone(artefactLink);
            // make the pseudo
            link.setStructureElement(targetEl);
            // bidirectional relations
            targetEl.getInternalArtefacts().add(link);
        }
    }
    // clone the links
    List<EPStructureToStructureLink> childLinks = sourceEl.getInternalChildren();
    for (EPStructureToStructureLink childLink : childLinks) {
        copy(childLink, targetEl, withArtefacts, false, cloneRestrictions);
    }
    savePortfolioStructure(targetEl);
}
Also used : EPStructureToArtefactLink(org.olat.portfolio.model.structel.EPStructureToArtefactLink) EPStructureToStructureLink(org.olat.portfolio.model.structel.EPStructureToStructureLink)

Aggregations

EPStructureToArtefactLink (org.olat.portfolio.model.structel.EPStructureToArtefactLink)16 EPStructureElement (org.olat.portfolio.model.structel.EPStructureElement)12 Date (java.util.Date)2 Identity (org.olat.core.id.Identity)2 EPStructureToStructureLink (org.olat.portfolio.model.structel.EPStructureToStructureLink)2