@Override public Map toMap() throws TemplateModelException { synchronized (SimpleHash.this) { return SimpleHash.this.toMap(); } }
@Override @SuppressWarnings("rawtypes") protected void processTemplate(Template template, SimpleHash fmModel, HttpServletResponse response) throws TemplateException { Map model = fmModel.toMap(); assertTrue(model.get(FreeMarkerView.SPRING_MACRO_REQUEST_CONTEXT_ATTRIBUTE) instanceof RequestContext); RequestContext rc = (RequestContext) model.get(FreeMarkerView.SPRING_MACRO_REQUEST_CONTEXT_ATTRIBUTE); BindStatus status = rc.getBindStatus("tb.name"); assertEquals("name", status.getExpression()); assertEquals("juergen", status.getValue()); } };
@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); } }
@Override public Map toMap() throws TemplateModelException { synchronized (SimpleHash.this) { return SimpleHash.this.toMap(); } }
public Map toMap() throws TemplateModelException { synchronized (SimpleHash.this) { return SimpleHash.this.toMap(); } }
@Override public Map toMap() throws TemplateModelException { synchronized (SimpleHash.this) { return SimpleHash.this.toMap(); } }
/** * Returns reference to a current session map. * * @return reference to a current session map. */ protected Map session(){ Map session; try{ SimpleHash sessionHash = (SimpleHash)get("session"); session = sessionHash.toMap(); }catch(Exception e){ logger().warn("failed to get a session map in context, returning session without data!!!", e); session = new HashMap(); } return Collections.unmodifiableMap(session); }
@Override protected void wrapInternal(Map properties, SimpleHash model, WMTSStoreInfo store) { if (properties == null) { try { properties = model.toMap(); } catch (TemplateModelException e) { LOGGER.log(Level.SEVERE, e.getMessage(), e); } } List<Map<String, Map<String, String>>> dsProps = new ArrayList<>(); List<WMTSLayerInfo> resources = catalog.getResourcesByStore(store, WMTSLayerInfo.class); for (WMTSLayerInfo resource : resources) { Map<String, String> names = new HashMap<>(); names.put("name", resource.getName()); dsProps.add(Collections.singletonMap("properties", names)); } if (!dsProps.isEmpty()) properties.putIfAbsent("layers", dsProps); }
@Override protected void wrapInternal(Map properties, SimpleHash model, WMSStoreInfo store) { if (properties == null) { try { properties = model.toMap(); } catch (TemplateModelException e) { // TODO Auto-generated catch block e.printStackTrace(); } } List<Map<String, Map<String, String>>> dsProps = new ArrayList<>(); List<WMSLayerInfo> resources = catalog.getResourcesByStore(store, WMSLayerInfo.class); for (WMSLayerInfo resource : resources) { Map<String, String> names = new HashMap<>(); names.put("name", resource.getName()); dsProps.add(Collections.singletonMap("properties", names)); } if (!dsProps.isEmpty()) properties.putIfAbsent("wmsLayers", dsProps); }
@Override protected void wrapInternal( Map properties, SimpleHash model, DataStoreInfo dataStoreInfo) { if (properties == null) { try { properties = model.toMap(); } catch (TemplateModelException e) { // TODO Auto-generated catch block e.printStackTrace(); } } List<Map<String, Map<String, String>>> dsProps = new ArrayList<>(); List<FeatureTypeInfo> featureTypes = catalog.getFeatureTypesByDataStore(dataStoreInfo); for (FeatureTypeInfo ft : featureTypes) { Map<String, String> names = new HashMap<>(); names.put("name", ft.getName()); dsProps.add(Collections.singletonMap("properties", names)); } if (!dsProps.isEmpty()) properties.putIfAbsent("featureTypes", dsProps); }
@Override protected void wrapInternal( Map properties, SimpleHash model, CoverageStoreInfo dataStoreInfo) { if (properties == null) { try { properties = model.toMap(); } catch (TemplateModelException e) { // TODO Auto-generated catch block e.printStackTrace(); } } List<Map<String, Map<String, String>>> csProps = new ArrayList<>(); List<CoverageInfo> coverages = catalog.getCoveragesByCoverageStore(dataStoreInfo); for (CoverageInfo coverage : coverages) { Map<String, String> names = new HashMap<>(); names.put("name", coverage.getName()); csProps.add(Collections.singletonMap("properties", names)); } if (!csProps.isEmpty()) { properties.putIfAbsent("coverages", csProps); } }
@Override protected void wrapInternal(Map properties, SimpleHash model, NamespaceInfo namespace) { if (properties == null) { try { properties = model.toMap(); } catch (TemplateModelException e) { // TODO Auto-generated catch block e.printStackTrace(); } } NamespaceInfo def = catalog.getDefaultNamespace(); if (def.equals(namespace)) { properties.put("isDefault", Boolean.TRUE); } else { properties.put("isDefault", Boolean.FALSE); } List<Map<String, Map<String, String>>> resources = new ArrayList<>(); List<ResourceInfo> res = catalog.getResourcesByNamespace(namespace, ResourceInfo.class); for (ResourceInfo r : res) { HashMap<String, String> props = new HashMap<>(); props.put("name", r.getName()); props.put("description", r.getDescription()); resources.add(Collections.singletonMap("properties", props)); } properties.put("resources", resources); }
if (properties == null) { try { properties = model.toMap(); } catch (TemplateModelException e) { LOGGER.log(Level.SEVERE, e.getMessage(), e);
@Override protected void wrapInternal( Map<String, Object> properties, SimpleHash model, WorkspaceInfo wkspace) { if (properties == null) { try { properties = model.toMap(); } catch (TemplateModelException e) { LOGGER.log(Level.SEVERE, e.getMessage(), e); } } collectSources(DataStoreInfo.class, "dataStores", properties, wkspace); collectSources(CoverageStoreInfo.class, "coverageStores", properties, wkspace); collectSources(WMSStoreInfo.class, "wmsStores", properties, wkspace); collectSources(WMTSStoreInfo.class, "wmtsStores", properties, wkspace); WorkspaceInfo def = catalog.getDefaultWorkspace(); if (def.equals(wkspace)) { properties.put("isDefault", Boolean.TRUE); } else { properties.put("isDefault", Boolean.FALSE); } }
if(activeweb == null || !(params.containsKey("controller") || activeweb.toMap().containsKey("controller"))) throw new ViewException("could not render this form, controller is not found");
@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); } }