protected Map<String, String> parsePattern(String pattern, Map<String, Object> model) { logger.log(Level.FINE, "Extracting parameters from pattern="+pattern); Map<String, String> parameters = new HashMap<String, String>(); if (pattern != null) { String[] tokens = pattern.split(";"); for (String token : tokens) { int index = token.indexOf('='); String key, value = null; if (index > 0) { key = token.substring(0, index); value = token.substring(index + 1); } else { key = token; } logger.log(Level.FINE, "Extracted parameter with key=" + key + ", value=" + value); if (value != null && value.startsWith("$")) { String expression = value.substring(1); logger.log(Level.FINE, "Resolving pattern value with path=" + expression); DefaultModelAdaptor modelAdaptor = new DefaultModelAdaptor(); value = (String) modelAdaptor.getValue(model, expression); } parameters.put(key, value); } } return parameters; } }
@Override public List<ErrorEntry> getStaticErrors() { final Engine engine = new Engine(); final JournalingErrorHandler errorHandler = new JournalingErrorHandler(); engine.setErrorHandler(errorHandler); final ScopedMap scopedMap = new ScopedMap(Collections.EMPTY_MAP); final Locale locale = Locale.getDefault(); this.context = new TemplateContext(this.template, locale, this.sourceName, scopedMap, new DefaultModelAdaptor(), engine, errorHandler, null); transformPure(this.context); final List<ErrorEntry> staticErrors = new ArrayList<>(); for (ErrorEntry entry: errorHandler.entries) { if (entry.errorMessage.isStatic) { staticErrors.add(entry); } } return staticErrors; }
final Locale locale = Locale.getDefault(); context = new TemplateContext(template, locale, sourceName, scopedMap, new DefaultModelAdaptor(), engine, engine.getErrorHandler(), processListener);
final Locale locale = Locale.getDefault(); this.context = new TemplateContext(this.template, locale, this.sourceName, scopedMap, new DefaultModelAdaptor(), engine, engine.getErrorHandler(), processListener); transformPure(this.context);