Skip to content

Commit

Permalink
Merge pull request #760 from bhreinb/Add_Current_Processed_Node_In_Th…
Browse files Browse the repository at this point in the history
…e_Context

Track Current Processed Node In The Context
  • Loading branch information
jasmith-hs authored Oct 11, 2021
2 parents ca99246 + bf4e191 commit dc51986
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 0 deletions.
9 changes: 9 additions & 0 deletions src/main/java/com/hubspot/jinjava/interpret/Context.java
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ public enum Library {
private boolean unwrapRawOverride = false;
private DynamicVariableResolver dynamicVariableResolver = null;
private final Set<String> metaContextVariables; // These variable names aren't tracked in eager execution
private Node currentNode;

public Context() {
this(null, null, null, true);
Expand Down Expand Up @@ -732,4 +733,12 @@ public void close() {
resetValueConsumer.accept(previousValue);
}
}

public Node getCurrentNode() {
return currentNode;
}

public void setCurrentNode(final Node currentNode) {
this.currentNode = currentNode;
}
}
1 change: 1 addition & 0 deletions src/main/java/com/hubspot/jinjava/tree/ExpressionNode.java
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ public ExpressionNode(ExpressionStrategy expressionStrategy, ExpressionToken tok

@Override
public OutputNode render(JinjavaInterpreter interpreter) {
interpreter.getContext().setCurrentNode(this);
try {
return expressionStrategy.interpretOutput(master, interpreter);
} catch (DeferredValueException e) {
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/hubspot/jinjava/tree/TagNode.java
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ public TagNode(Tag tag, TagToken token, TokenScannerSymbols symbols) {

@Override
public OutputNode render(JinjavaInterpreter interpreter) {
interpreter.getContext().setCurrentNode(this);
if (
interpreter.getContext().isValidationMode() && !tag.isRenderedInValidationMode()
) {
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/hubspot/jinjava/tree/TextNode.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ public TextNode(TextToken token) {

@Override
public OutputNode render(JinjavaInterpreter interpreter) {
interpreter.getContext().setCurrentNode(this);
return new RenderedOutputNode(
interpreter.getContext().isValidationMode() ? "" : master.output()
);
Expand Down

0 comments on commit dc51986

Please sign in to comment.