
com.hubspot.jinjava.lib.fn.MacroFunction Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jinjava Show documentation
Show all versions of jinjava Show documentation
Jinja templating engine implemented in Java
package com.hubspot.jinjava.lib.fn;
import com.hubspot.jinjava.el.ext.AbstractCallableMethod;
import com.hubspot.jinjava.interpret.Context;
import com.hubspot.jinjava.interpret.DeferredValueException;
import com.hubspot.jinjava.interpret.JinjavaInterpreter;
import com.hubspot.jinjava.interpret.JinjavaInterpreter.InterpreterScopeClosable;
import com.hubspot.jinjava.tree.Node;
import com.hubspot.jinjava.util.LengthLimitingStringBuilder;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
/**
* Function definition parsed from a jinjava template, stored in global macros registry in interpreter context.
*
* @author jstehler
*
*/
public class MacroFunction extends AbstractCallableMethod {
private final List content;
private final boolean caller;
private final Context localContextScope;
private final int definitionLineNumber;
private final int definitionStartPosition;
private boolean deferred;
public MacroFunction(
List content,
String name,
LinkedHashMap argNamesWithDefaults,
boolean caller,
Context localContextScope,
int lineNumber,
int startPosition
) {
super(name, argNamesWithDefaults);
this.content = content;
this.caller = caller;
this.localContextScope = localContextScope;
this.definitionLineNumber = lineNumber;
this.definitionStartPosition = startPosition;
this.deferred = false;
}
@Override
public Object doEvaluate(
Map argMap,
Map kwargMap,
List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy