@Override public void render(Node content, RenderableDefinition definition, Map<String, Object> contextObjects, OutputProvider out) throws RenderException { RenderableDefinition variation = variationResolver.resolveVariation(definition); definition = variation != null ? variation : definition; final Renderer renderer = getRendererFor(definition); final RenderingContext renderingContext = getRenderingContext(); renderingContext.push(content, definition, out); try { Collection<RenderingListenerReturnCode> listenerResults = renderingContext.before(content, definition, contextObjects, out); if (listenerResults.contains(RenderingListenerReturnCode.SKIP) || listenerResults.contains(RenderingListenerReturnCode.STOP)) { return; } renderer.render(renderingContext, contextObjects); } catch (RenderException e) { renderingContext.handleException(e); } finally { renderingContext.after(content, definition, contextObjects, out); renderingContext.pop(); } }
@Override public void render(final RenderingContext renderingCtx, Map<String, Object> contextObjects) throws RenderException { Node content = renderingCtx.getCurrentContent(); try { RenderableDefinition renderableDefinition = renderingCtx.getRenderableDefinition(); // Merge in case of a page if (content != null && NodeUtil.isNodeType(content, NodeTypes.Page.NAME)) { final Site site = getSite(content); renderableDefinition = BeanMergerUtil.merge(renderableDefinition, site.getTemplates().getPrototype(), fallbackTemplateDefinition.getFallbackTemplateDefinition()); } renderingCtx.push(content, renderableDefinition); try { super.render(renderingCtx, contextObjects); } finally { renderingCtx.pop(); } } catch (RepositoryException e) { throw new RenderException(String.format("Could not determine node type of node [%s]", content), e); } }
@Override public void render(final RenderingContext renderingCtx, Map<String, Object> contextObjects) throws RenderException { Node content = renderingCtx.getCurrentContent(); try { RenderableDefinition renderableDefinition = renderingCtx.getRenderableDefinition(); // Merge in case of a page if (content != null && NodeUtil.isNodeType(content, NodeTypes.Page.NAME)) { final Site site = getSite(content); renderableDefinition = BeanMergerUtil.merge(renderableDefinition, site.getTemplates().getPrototype(), fallbackTemplateDefinition.getFallbackTemplateDefinition()); } renderingCtx.push(content, renderableDefinition); try { rendererRegistry.getProvider(wrappedRendererType).get().render(renderingCtx, contextObjects); } catch (Registry.NoSuchDefinitionException e) { throw new RenderException("Render type '" + wrappedRendererType + "' does not exist.", e); } finally { renderingCtx.pop(); } } catch (RepositoryException e) { throw new RenderException(String.format("Could not determine node type of node [%s]", content), e); } }
@Override public void render(final RenderingContext renderingCtx, Map<String, Object> contextObjects) throws RenderException { Node content = renderingCtx.getCurrentContent(); // FIXME for the time being we only render pages and areas but not components try { final Site site = getSite(content); RenderableDefinition renderableDefinition = renderingCtx.getRenderableDefinition(); // merge in case of a page if (renderableDefinition instanceof STKPage) { renderableDefinition = (RenderableDefinition) BeanMergerUtil.merge(renderableDefinition, site.getTemplates().getPrototype(), DefaultSTKTemplateConfiguration.getInstance()); } // FIXME we should not push() if the definition is not merged renderingCtx.push(content, renderableDefinition); try { super.render(renderingCtx, contextObjects); } finally { renderingCtx.pop(); } } catch (Exception e) { throw new RenderException(e); } }
renderingCtx.pop();