private static TemplateModel wrapMap(Map table) { SimpleHash model = new SimpleHash(); for (Iterator it = table.entrySet().iterator(); it.hasNext(); ) { Map.Entry entry = (Map.Entry) it.next(); model.put(String.valueOf(entry.getKey()), new SimpleScalar(String.valueOf(entry.getValue()))); } return model; }
@Override public TemplateModel get(String key) throws TemplateModelException { synchronized (SimpleHash.this) { return SimpleHash.this.get(key); } }
@Override public Map toMap() throws TemplateModelException { synchronized (SimpleHash.this) { return SimpleHash.this.toMap(); } }
/** * Build a FreeMarker template model for the given model Map. * <p>The default implementation builds a {@link SimpleHash}. * @param model the model to use for rendering * @param exchange current exchange * @return the FreeMarker template model, as a {@link SimpleHash} or subclass thereof */ protected SimpleHash getTemplateModel(Map<String, Object> model, ServerWebExchange exchange) { SimpleHash fmModel = new SimpleHash(getObjectWrapper()); fmModel.putAll(model); return fmModel; }
private SimpleHash buildComplex(ComplexAttribute att) { SimpleHash map = new SimpleHash(); map.putAll(attributeMap); map.put("type", info); map.put("type", buildDummyFeatureTypeInfo(att)); map.put("fid", att.getIdentifier().getID()); } else { map.put("fid", ""); map.put("typeName", att.getType().getName().getLocalPart()); map.put("attributes", new SequenceMapModel(attributeMap, this));
config.setAllSharedVariables(new SimpleHash(this.freemarkerVariables, config.getObjectWrapper()));
/** * Add {@link RequestInfo} to the freemarker model * * @param model * @throws TemplateModelException */ protected void setRequestInfo(SimpleHash model) throws TemplateModelException { final RequestInfo requestInfo = RequestInfo.get(); if (model.get("page") == null) { if (requestInfo != null) { model.put("page", requestInfo); } } }
/** * Puts a boolean in the map * * @param key the name by which the resulting <tt>TemplateModel</tt> * is identified in the template. * @param b the boolean to store. */ public void put(String key, boolean b) { put(key, b ? TemplateBooleanModel.TRUE : TemplateBooleanModel.FALSE); }
o = new SimpleHash(jo); Object _targetDomId = pageConfig.get(TARGET_DOM_ID_KEY); if (_targetDomId instanceof SimpleScalar) Object _pubSubScope = pageConfig.get(PUB_SUB_SCOPE_KEY); if (_pubSubScope instanceof SimpleScalar) Object _groupMemberships = pageConfig.get(GROUP_MEMBERSHIPS_KEY); if (_groupMemberships instanceof SimpleScalar) o = pageConfig.get("services"); if (o instanceof SimpleSequence) o = pageConfig.get("widgets"); if (o instanceof SimpleSequence) o = pageConfig.get("publishOnReady"); if (o instanceof SimpleSequence)
@Override public TemplateModel get(final String key) throws TemplateModelException { try { // GIT Issue#357: Accessing db in freemarker template throws exception // When content store is accessed with key "db" then wrap the ContentStore with BeansWrapper and return to template. // All methods on db are then accessible in template. Eg: ${db.getPublishedPostsByTag(tagName).size()} if(key.equals(Crawler.Attributes.DB)) { BeansWrapperBuilder bwb = new BeansWrapperBuilder(Configuration.DEFAULT_INCOMPATIBLE_IMPROVEMENTS); BeansWrapper bw = bwb.build(); return bw.wrap(db); } return extractors.extractAndTransform(db, key, eagerModel.toMap(), new TemplateEngineAdapter<TemplateModel>() { @Override public TemplateModel adapt(String key, Object extractedValue) { if(key.equals(Crawler.Attributes.ALLTAGS)) { return new SimpleCollection((Collection) extractedValue, wrapper); } else if(key.equals(Crawler.Attributes.PUBLISHED_DATE)) { return new SimpleDate((Date) extractedValue, TemplateDateModel.UNKNOWN); } else { // All other cases, as far as I know, are document collections return new SimpleSequence((Collection) extractedValue, wrapper); } } }); } catch(NoModelExtractorException e) { return eagerModel.get(key); } }
if (blank(body)) { // case one: flash("warning", "warning message") ==>> <@flash name="warning"/> Util.validateParamsPresence(params, "name"); Object flashMessage = flasher.get(params.get("name").toString()); if (flashMessage != null) { env.getOut().write(flashMessage.toString()); && flasher.containsKey(params.get("name").toString())) { body.render(env.getOut()); } else if (!blank(body) && !params.containsKey("name")) { //case three: flash() ==>> <@flash> body here <@flash>
@Override public void remove(String key) { synchronized (SimpleHash.this) { SimpleHash.this.remove(key); } }
dataModelHash = new SimpleHash(wrapper); } else { TemplateModel wrappedDataModel = wrapper.wrap(dataModel);
public void render(String template, ValueStack stack, Writer writer, Component component) throws Exception { SimpleHash model = buildModel(stack, component); Object prevTag = model.get("tag"); model.put("tag", component); getTemplate(template).process(model, writer); if (null != prevTag) model.put("tag", prevTag); }
@Override public void put(String key, Object obj) { synchronized (SimpleHash.this) { SimpleHash.this.put(key, obj); } }
o = new SimpleHash(jo); Object _targetDomId = pageConfig.get(TARGET_DOM_ID_KEY); if (_targetDomId instanceof SimpleScalar) Object _pubSubScope = pageConfig.get(PUB_SUB_SCOPE_KEY); if (_pubSubScope instanceof SimpleScalar) Object _groupMemberships = pageConfig.get(GROUP_MEMBERSHIPS_KEY); if (_groupMemberships instanceof SimpleScalar) o = pageConfig.get("services"); if (o instanceof SimpleSequence) o = pageConfig.get("widgets"); if (o instanceof SimpleSequence) o = pageConfig.get("publishOnReady"); if (o instanceof SimpleSequence)
/** * Build a FreeMarker template model for the given model Map. * <p>The default implementation builds a {@link SimpleHash}. * @param model the model to use for rendering * @param exchange current exchange * @return the FreeMarker template model, as a {@link SimpleHash} or subclass thereof */ protected SimpleHash getTemplateModel(Map<String, Object> model, ServerWebExchange exchange) { SimpleHash fmModel = new SimpleHash(getObjectWrapper()); fmModel.putAll(model); return fmModel; }
@Override public TemplateModel get(final String key) throws TemplateModelException { try { // GIT Issue#357: Accessing db in freemarker template throws exception // When content store is accessed with key "db" then wrap the ContentStore with BeansWrapper and return to template. // All methods on db are then accessible in template. Eg: ${db.getPublishedPostsByTag(tagName).size()} if(key.equals(Crawler.Attributes.DB)) { BeansWrapperBuilder bwb = new BeansWrapperBuilder(Configuration.DEFAULT_INCOMPATIBLE_IMPROVEMENTS); BeansWrapper bw = bwb.build(); return bw.wrap(db); } return extractors.extractAndTransform(db, key, eagerModel.toMap(), new TemplateEngineAdapter<TemplateModel>() { @Override public TemplateModel adapt(String key, Object extractedValue) { if(key.equals(Crawler.Attributes.ALLTAGS)) { return new SimpleCollection((Collection) extractedValue, wrapper); } else if(key.equals(Crawler.Attributes.PUBLISHED_DATE)) { return new SimpleDate((Date) extractedValue, TemplateDateModel.UNKNOWN); } else { // All other cases, as far as I know, are document collections return new SimpleSequence((Collection) extractedValue, wrapper); } } }); } catch(NoModelExtractorException e) { return eagerModel.get(key); } }