/** * Creates a child context. * * @param parent The parent context. Required. * @param model The target value. Resolved as '.' or 'this' inside templates. Required. * @return A child context. */ private static Context child(final Context parent, final Object model) { notNull(parent, "A parent context is required."); Context child = new Context(model); child.extendedContext = new Context(new HashMap<String, Object>()); child.parent = parent; child.data = parent.data; return child; }
/** * Creates a root context. * * @param model The target value. Resolved as '.' or 'this' inside templates. Required. * @return A root context. */ private static Context root(final Object model) { Context root = new Context(model); root.extendedContext = new Context(new HashMap<String, Object>()); root.parent = null; root.storage = new HashMap<String, Object>(); root.storage.put(PARTIALS, new HashMap<String, Template>()); return root; }
/** * Creates a root context. * * @param model The target value. Resolved as '.' or 'this' inside templates. Required. * @return A root context. */ private static Context root(final Object model) { Context root = new Context(model); root.extendedContext = new Context(new HashMap<String, Object>()); root.parent = null; root.data = new HashMap<String, Object>(); root.data.put(PARTIALS, new HashMap<String, Template>()); root.data.put(INVOCATION_STACK, new LinkedList<TemplateSource>()); return root; }