Skip to content

Commit dc51986

Browse files
authored
Merge pull request #760 from bhreinb/Add_Current_Processed_Node_In_The_Context
Track Current Processed Node In The Context
2 parents ca99246 + bf4e191 commit dc51986

File tree

4 files changed

+12
-0
lines changed

4 files changed

+12
-0
lines changed

src/main/java/com/hubspot/jinjava/interpret/Context.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ public enum Library {
111111
private boolean unwrapRawOverride = false;
112112
private DynamicVariableResolver dynamicVariableResolver = null;
113113
private final Set<String> metaContextVariables; // These variable names aren't tracked in eager execution
114+
private Node currentNode;
114115

115116
public Context() {
116117
this(null, null, null, true);
@@ -732,4 +733,12 @@ public void close() {
732733
resetValueConsumer.accept(previousValue);
733734
}
734735
}
736+
737+
public Node getCurrentNode() {
738+
return currentNode;
739+
}
740+
741+
public void setCurrentNode(final Node currentNode) {
742+
this.currentNode = currentNode;
743+
}
735744
}

src/main/java/com/hubspot/jinjava/tree/ExpressionNode.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ public ExpressionNode(ExpressionStrategy expressionStrategy, ExpressionToken tok
4343

4444
@Override
4545
public OutputNode render(JinjavaInterpreter interpreter) {
46+
interpreter.getContext().setCurrentNode(this);
4647
try {
4748
return expressionStrategy.interpretOutput(master, interpreter);
4849
} catch (DeferredValueException e) {

src/main/java/com/hubspot/jinjava/tree/TagNode.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ public TagNode(Tag tag, TagToken token, TokenScannerSymbols symbols) {
4444

4545
@Override
4646
public OutputNode render(JinjavaInterpreter interpreter) {
47+
interpreter.getContext().setCurrentNode(this);
4748
if (
4849
interpreter.getContext().isValidationMode() && !tag.isRenderedInValidationMode()
4950
) {

src/main/java/com/hubspot/jinjava/tree/TextNode.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ public TextNode(TextToken token) {
3232

3333
@Override
3434
public OutputNode render(JinjavaInterpreter interpreter) {
35+
interpreter.getContext().setCurrentNode(this);
3536
return new RenderedOutputNode(
3637
interpreter.getContext().isValidationMode() ? "" : master.output()
3738
);

0 commit comments

Comments
 (0)