protected Environment getEnvironment() { return this instanceof Environment ? (Environment) this : Environment.getCurrentEnvironment(); }
private Environment getRequiredCurrentEnvironment() { Environment c = Environment.getCurrentEnvironment(); if (c == null) { throw new IllegalStateException("No current environment"); } return c; }
static void usage() { System.err .println("Usage: java freemarker.ext.dom.Transform -in <xmlfile> -ftl <ftlfile> [-out <outfile>] [-locale <locale>] [-encoding <encoding>]"); // Security: prevents shutting down the container from a template: if (Environment.getCurrentEnvironment() == null) { System.exit(-1); } } }
public String translateNamespacePrefixToUri(String prefix) { if (prefix.equals(Template.DEFAULT_NAMESPACE_PREFIX)) { return Environment.getCurrentEnvironment().getDefaultNS(); } return Environment.getCurrentEnvironment().getNamespaceForPrefix(prefix); } };
public String getNamespaceForPrefix(String prefix) { if (prefix.equals(Template.DEFAULT_NAMESPACE_PREFIX)) { return Environment.getCurrentEnvironment().getDefaultNS(); } return Environment.getCurrentEnvironment().getNamespaceForPrefix(prefix); }
public String getNamespaceForPrefix(String prefix) { if (prefix.equals(Template.DEFAULT_NAMESPACE_PREFIX)) { return Environment.getCurrentEnvironment().getDefaultNS(); } return Environment.getCurrentEnvironment().getNamespaceForPrefix(prefix); }
private TemplateException( String renderedDescription, Throwable cause, Environment env, Expression blamedExpression, _ErrorDescriptionBuilder descriptionBuilder) { // Note: Keep this constructor lightweight. super(cause); // Message managed locally. if (env == null) env = Environment.getCurrentEnvironment(); this.env = env; this.blamedExpression = blamedExpression; this.descriptionBuilder = descriptionBuilder; description = renderedDescription; if (env != null) ftlInstructionStackSnapshot = _CoreAPI.getInstructionStackSnapshot(env); }
private void setContext(Element contextNode) { this.contextNode = contextNode; this.env = Environment.getCurrentEnvironment(); this.defaultNS = env.getDefaultNS(); this.hasDefaultNS = defaultNS != null && defaultNS.length() > 0; namespacesToPrefixLookup.put(null, ""); namespacesToPrefixLookup.put("", ""); buildPrefixLookup(contextNode); if (!explicitDefaultNSPrefix && hasDefaultNS) { namespacesToPrefixLookup.put(defaultNS, ""); } constructNamespaceDecl(); }
@Override String getQualifiedName() { String nsURI = node.getNamespaceURI(); if (nsURI == null || nsURI.equals("")) return node.getNodeName(); Environment env = Environment.getCurrentEnvironment(); String defaultNS = env.getDefaultNS(); String prefix = null; if (nsURI.equals(defaultNS)) { prefix = "D"; } else { prefix = env.getPrefixForNamespace(nsURI); } if (prefix == null) { return null; } return prefix + ":" + node.getLocalName(); } }
private Attr getAttribute(String qname) { Element element = (Element) node; Attr result = element.getAttributeNode(qname); if (result != null) return result; int colonIndex = qname.indexOf(':'); if (colonIndex > 0) { String prefix = qname.substring(0, colonIndex); String uri; if (prefix.equals(Template.DEFAULT_NAMESPACE_PREFIX)) { uri = Environment.getCurrentEnvironment().getDefaultNS(); } else { uri = Environment.getCurrentEnvironment().getNamespaceForPrefix(prefix); } String localName = qname.substring(1 + colonIndex); if (uri != null) { result = element.getAttributeNodeNS(uri, localName); } } return result; }
public String getAsString() throws TemplateModelException { Environment env = Environment.getCurrentEnvironment(); Locale locale = env.getLocale(); return getLocalizedString(locale); }
public static void check(TemplateDirectiveBody body) throws NestedContentNotSupportedException { if (body == null) { return; } if (body instanceof NestedElementTemplateDirectiveBody) { TemplateElement[] tes = ((NestedElementTemplateDirectiveBody) body).getChildrenBuffer(); if (tes == null || tes.length == 0 || tes[0] instanceof ThreadInterruptionCheck && (tes.length == 1 || tes[1] == null)) { return; } } throw new NestedContentNotSupportedException(Environment.getCurrentEnvironment()); }
static FreeMarkerPageContext getCurrentPageContext() throws TemplateModelException { Environment env = Environment.getCurrentEnvironment(); TemplateModel pageContextModel = env.getGlobalVariable(PageContext.PAGECONTEXT); if (pageContextModel instanceof FreeMarkerPageContext) { return (FreeMarkerPageContext) pageContextModel; } try { FreeMarkerPageContext pageContext = (FreeMarkerPageContext) pageContextImpl.newInstance(); env.setGlobalVariable(PageContext.PAGECONTEXT, pageContext); return pageContext; } catch (IllegalAccessException e) { throw new IllegalAccessError(e.getMessage()); } catch (InstantiationException e) { throw new UndeclaredThrowableException(e); } }
private static Object unwrap(TemplateModel model, boolean permissive) throws TemplateModelException { Environment env = Environment.getCurrentEnvironment(); TemplateModel nullModel = null; if (env != null) { ObjectWrapper wrapper = env.getObjectWrapper(); if (wrapper != null) { nullModel = wrapper.wrap(null); } } return unwrap(model, nullModel, permissive); }
@Override String getQualifiedName() { String nodeName = getNodeName(); String nsURI = getNodeNamespace(); if (nsURI == null || nsURI.length() == 0) { return nodeName; } Environment env = Environment.getCurrentEnvironment(); String defaultNS = env.getDefaultNS(); String prefix; if (defaultNS != null && defaultNS.equals(nsURI)) { prefix = ""; } else { prefix = env.getPrefixForNamespace(nsURI); } if (prefix == null) { return null; // We have no qualified name, because there is no prefix mapping } if (prefix.length() > 0) { prefix += ":"; } return prefix + nodeName; }
@Override public TemplateModel get(String key) throws TemplateModelException { if (key.equals("*")) { return getRootElement(); } else if (key.equals("**")) { NodeList nl = ((Document) node).getElementsByTagName("*"); return new NodeListModel(nl, this); } else if (DomStringUtil.isXMLNameLike(key)) { ElementModel em = (ElementModel) NodeModel.wrap(((Document) node).getDocumentElement()); if (em.matchesName(key, Environment.getCurrentEnvironment())) { return em; } else { return new NodeListModel(this); } } return super.get(key); }
/** * @param expr {@code null} is allowed, but may results in less helpful error messages * @param env {@code null} is allowed, but may results in lower performance in classic-compatible mode */ static String modelToString(TemplateScalarModel model, Expression expr, Environment env) throws TemplateModelException { String value = model.getAsString(); if (value == null) { if (env == null) env = Environment.getCurrentEnvironment(); if (env != null && env.isClassicCompatible()) { return ""; } else { throw newModelHasStoredNullException(String.class, model, expr); } } return value; }
static Template getTemplate(String systemId) throws IOException { Environment env = Environment.getCurrentEnvironment(); String encoding = env.getTemplate().getEncoding(); if (encoding == null) { encoding = env.getConfiguration().getEncoding(env.getLocale()); } String templatePath = env.getTemplate().getName(); int lastSlash = templatePath.lastIndexOf('/'); templatePath = lastSlash == -1 ? "" : templatePath.substring(0, lastSlash + 1); systemId = env.toFullTemplateName(templatePath, systemId); Template raw = env.getConfiguration().getTemplate(systemId, env.getLocale(), encoding, false); return raw; }
NodeListModel filterByName(String name) throws TemplateModelException { NodeListModel result = new NodeListModel(contextNode); int size = size(); if (size == 0) { return result; } Environment env = Environment.getCurrentEnvironment(); for (int i = 0; i < size; i++) { NodeModel nm = (NodeModel) get(i); if (nm instanceof ElementModel) { if (((ElementModel) nm).matchesName(name, env)) { result.add(nm); } } } return result; }
public Object getVariableValue(String namespaceURI, String prefix, String localName) throws UnresolvableException { try { TemplateModel model = Environment.getCurrentEnvironment().getVariable(localName); if (model == null) { throw new UnresolvableException("Variable \"" + localName + "\" not found."); } if (model instanceof TemplateScalarModel) { return ((TemplateScalarModel) model).getAsString(); } if (model instanceof TemplateNumberModel) { return ((TemplateNumberModel) model).getAsNumber(); } if (model instanceof TemplateDateModel) { return ((TemplateDateModel) model).getAsDate(); } if (model instanceof TemplateBooleanModel) { return Boolean.valueOf(((TemplateBooleanModel) model).getAsBoolean()); } } catch (TemplateModelException e) { throw new UndeclaredThrowableException(e); } throw new UnresolvableException( "Variable \"" + localName + "\" exists, but it's not a string, number, date, or boolean"); } };