001package org.nuxeo.template.service;
002
003import org.nuxeo.ecm.core.api.CoreSession;
004import org.nuxeo.ecm.core.api.DocumentModel;
005import org.nuxeo.ecm.core.api.DocumentRef;
006import org.nuxeo.ecm.core.api.IdRef;
007import org.nuxeo.ecm.core.api.UnrestrictedSessionRunner;
008import org.nuxeo.template.api.adapters.TemplateSourceDocument;
009
010public class TemplateMappingRemover extends UnrestrictedSessionRunner {
011
012    protected DocumentRef targetRef;
013
014    protected String type2Remove;
015
016    protected TemplateMappingRemover(CoreSession session, DocumentModel doc, String type2Remove) {
017        super(session);
018        targetRef = doc.getRef();
019        this.type2Remove = type2Remove;
020    }
021
022    protected TemplateMappingRemover(CoreSession session, String uid, String type2Remove) {
023        super(session);
024        targetRef = new IdRef(uid);
025        this.type2Remove = type2Remove;
026    }
027
028    @Override
029    public void run() {
030        DocumentModel doc = session.getDocument(targetRef);
031        TemplateSourceDocument source = doc.getAdapter(TemplateSourceDocument.class);
032        source.removeForcedType(type2Remove, true);
033    }
034
035}