001package org.nuxeo.template.fm; 002 003import java.util.List; 004 005import org.apache.commons.logging.Log; 006import org.apache.commons.logging.LogFactory; 007import org.nuxeo.ecm.core.api.DocumentModel; 008import org.nuxeo.ecm.core.api.NuxeoException; 009import org.nuxeo.ecm.platform.audit.api.LogEntry; 010import org.nuxeo.ecm.platform.rendering.fm.adapters.DocumentObjectWrapper; 011import org.nuxeo.template.api.context.DocumentWrapper; 012import org.nuxeo.template.context.AbstractContextBuilder; 013 014import freemarker.template.TemplateModelException; 015 016public class FMContextBuilder extends AbstractContextBuilder { 017 018 protected static final Log log = LogFactory.getLog(FMContextBuilder.class); 019 020 protected DocumentWrapper nuxeoWrapper; 021 022 public FMContextBuilder() { 023 final DocumentObjectWrapper fmWrapper = new DocumentObjectWrapper(null); 024 025 nuxeoWrapper = new DocumentWrapper() { 026 @Override 027 public Object wrap(DocumentModel doc) { 028 try { 029 return fmWrapper.wrap(doc); 030 } catch (TemplateModelException e) { 031 throw new NuxeoException(e); 032 } 033 } 034 035 public Object wrap(List<LogEntry> auditEntries) { 036 try { 037 return fmWrapper.wrap(auditEntries); 038 } catch (TemplateModelException e) { 039 throw new NuxeoException(e); 040 } 041 } 042 }; 043 } 044 045 @Override 046 protected DocumentWrapper getWrapper() { 047 return nuxeoWrapper; 048 } 049 050}