Skip to content

Commit f787f16

Browse files
committed
small refactoring to limit exposed parse api
1 parent 0ba0c2e commit f787f16

File tree

9 files changed

+29
-38
lines changed

9 files changed

+29
-38
lines changed

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,11 @@
3737
import com.hubspot.jinjava.el.JinjavaELContext;
3838
import com.hubspot.jinjava.el.JinjavaInterpreterResolver;
3939
import com.hubspot.jinjava.lib.fn.ELFunctionDefinition;
40-
import com.hubspot.jinjava.parse.TokenParser;
4140
import com.hubspot.jinjava.tree.Node;
4241
import com.hubspot.jinjava.tree.NodeList;
4342
import com.hubspot.jinjava.tree.TreeParser;
44-
import com.hubspot.jinjava.util.Variable;
4543
import com.hubspot.jinjava.util.JinjavaPropertyNotResolvedException;
44+
import com.hubspot.jinjava.util.Variable;
4645
import com.hubspot.jinjava.util.WhitespaceUtils;
4746

4847
import de.odysseus.el.util.SimpleContext;
@@ -98,7 +97,7 @@ public void leaveScope() {
9897
}
9998

10099
public Node parse(String template) {
101-
return TreeParser.parseTree(new TokenParser(this, template));
100+
return new TreeParser(this, template).parseTree();
102101
}
103102

104103
public String renderString(String template) {

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

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import static com.hubspot.jinjava.parse.ParserConstants.TOKEN_NOTE;
2121
import static com.hubspot.jinjava.parse.ParserConstants.TOKEN_TAG;
2222

23+
import com.hubspot.jinjava.interpret.JinjavaInterpreter;
2324
import com.hubspot.jinjava.interpret.MissingEndTagException;
2425
import com.hubspot.jinjava.interpret.TemplateError;
2526
import com.hubspot.jinjava.interpret.UnexpectedTokenException;
@@ -30,18 +31,21 @@
3031
import com.hubspot.jinjava.parse.Token;
3132
import com.hubspot.jinjava.parse.TokenParser;
3233

33-
public final class TreeParser {
34+
public class TreeParser {
3435

35-
private TreeParser() {
36+
private final TokenParser parser;
37+
38+
public TreeParser(JinjavaInterpreter interpreter, String input){
39+
this.parser = new TokenParser(interpreter, input);
3640
}
3741

38-
public static Node parseTree(TokenParser parser) {
42+
public Node parseTree() {
3943
Node root = new RootNode();
40-
tree(root, parser, RootNode.TREE_ROOT_END);
44+
tree(root, RootNode.TREE_ROOT_END);
4145
return root;
4246
}
4347

44-
private static void tree(Node node, TokenParser parser, String endName) {
48+
private void tree(Node node, String endName) {
4549
Token token;
4650
TagToken tag;
4751
while (parser.hasNext()) {
@@ -66,7 +70,7 @@ private static void tree(Node node, TokenParser parser, String endName) {
6670
TagNode tg = new TagNode((TagToken) token, parser.getInterpreter());
6771
node.add(tg);
6872
if (tg.getEndName() != null) {
69-
tree(tg, parser, tg.getEndName());
73+
tree(tg, tg.getEndName());
7074
}
7175
} catch (UnknownTagException e) {
7276
parser.getInterpreter().addError(TemplateError.fromException(e));

src/test/java/com/hubspot/jinjava/lib/tag/ForTagTest.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import com.hubspot.jinjava.Jinjava;
2222
import com.hubspot.jinjava.interpret.Context;
2323
import com.hubspot.jinjava.interpret.JinjavaInterpreter;
24-
import com.hubspot.jinjava.parse.TokenParser;
2524
import com.hubspot.jinjava.tree.Node;
2625
import com.hubspot.jinjava.tree.TagNode;
2726
import com.hubspot.jinjava.tree.TreeParser;
@@ -118,10 +117,9 @@ public void forLoopSupportsAllLoopVarsInHublDocs() throws Exception {
118117

119118
private Node fixture(String name) {
120119
try {
121-
return TreeParser.parseTree(
122-
new TokenParser(interpreter, Resources.toString(
123-
Resources.getResource(String.format("tags/fortag/%s.jinja", name)), StandardCharsets.UTF_8)))
124-
.getChildren().getFirst();
120+
return new TreeParser(interpreter, Resources.toString(
121+
Resources.getResource(String.format("tags/fortag/%s.jinja", name)), StandardCharsets.UTF_8))
122+
.parseTree().getChildren().getFirst();
125123
} catch (IOException e) {
126124
throw Throwables.propagate(e);
127125
}

src/test/java/com/hubspot/jinjava/lib/tag/IfTagTest.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
import com.hubspot.jinjava.Jinjava;
1818
import com.hubspot.jinjava.interpret.Context;
1919
import com.hubspot.jinjava.interpret.JinjavaInterpreter;
20-
import com.hubspot.jinjava.parse.TokenParser;
2120
import com.hubspot.jinjava.tree.TagNode;
2221
import com.hubspot.jinjava.tree.TreeParser;
2322

@@ -114,10 +113,9 @@ public void itEvalsExprWithFilter() throws Exception {
114113

115114
private TagNode fixture(String name) {
116115
try {
117-
return (TagNode) TreeParser.parseTree(
118-
new TokenParser(interpreter, Resources.toString(
119-
Resources.getResource(String.format("tags/iftag/%s.jinja", name)), StandardCharsets.UTF_8)))
120-
.getChildren().getFirst();
116+
return (TagNode) new TreeParser(interpreter, Resources.toString(
117+
Resources.getResource(String.format("tags/iftag/%s.jinja", name)), StandardCharsets.UTF_8))
118+
.parseTree().getChildren().getFirst();
121119
} catch (IOException e) {
122120
throw Throwables.propagate(e);
123121
}

src/test/java/com/hubspot/jinjava/lib/tag/MacroTagTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import com.hubspot.jinjava.interpret.Context;
2424
import com.hubspot.jinjava.interpret.JinjavaInterpreter;
2525
import com.hubspot.jinjava.lib.fn.MacroFunction;
26-
import com.hubspot.jinjava.parse.TokenParser;
2726
import com.hubspot.jinjava.tree.Node;
2827
import com.hubspot.jinjava.tree.TagNode;
2928
import com.hubspot.jinjava.tree.TreeParser;
@@ -120,7 +119,7 @@ public void testMacroUsedInForLoop() throws Exception {
120119
}
121120

122121
private Node snippet(String jinja) {
123-
return TreeParser.parseTree(new TokenParser(interpreter, jinja)).getChildren().getFirst();
122+
return new TreeParser(interpreter, jinja).parseTree().getChildren().getFirst();
124123
}
125124

126125
private TagNode fixture(String name) {

src/test/java/com/hubspot/jinjava/lib/tag/RawTagTest.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
import com.hubspot.jinjava.Jinjava;
1515
import com.hubspot.jinjava.interpret.Context;
1616
import com.hubspot.jinjava.interpret.JinjavaInterpreter;
17-
import com.hubspot.jinjava.parse.TokenParser;
1817
import com.hubspot.jinjava.tree.Node;
1918
import com.hubspot.jinjava.tree.NodeList;
2019
import com.hubspot.jinjava.tree.TagNode;
@@ -107,10 +106,9 @@ private TagNode fixture(String name) {
107106

108107
private NodeList fixtures(String name) {
109108
try {
110-
return TreeParser.parseTree(
111-
new TokenParser(interpreter, Resources.toString(
112-
Resources.getResource(String.format("tags/rawtag/%s.jinja", name)), StandardCharsets.UTF_8)))
113-
.getChildren();
109+
return new TreeParser(interpreter, Resources.toString(
110+
Resources.getResource(String.format("tags/rawtag/%s.jinja", name)), StandardCharsets.UTF_8))
111+
.parseTree().getChildren();
114112
} catch (IOException e) {
115113
throw Throwables.propagate(e);
116114
}

src/test/java/com/hubspot/jinjava/lib/tag/SetTagTest.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import com.hubspot.jinjava.Jinjava;
2323
import com.hubspot.jinjava.interpret.Context;
2424
import com.hubspot.jinjava.interpret.JinjavaInterpreter;
25-
import com.hubspot.jinjava.parse.TokenParser;
2625
import com.hubspot.jinjava.tree.Node;
2726
import com.hubspot.jinjava.tree.TagNode;
2827
import com.hubspot.jinjava.tree.TreeParser;
@@ -144,10 +143,9 @@ public void itSupportsListAppendFunc() throws Exception {
144143

145144
private Node fixture(String name) {
146145
try {
147-
return TreeParser.parseTree(
148-
new TokenParser(interpreter, Resources.toString(
149-
Resources.getResource(String.format("tags/settag/%s.jinja", name)), StandardCharsets.UTF_8)))
150-
.getChildren().getFirst();
146+
return new TreeParser(interpreter, Resources.toString(
147+
Resources.getResource(String.format("tags/settag/%s.jinja", name)), StandardCharsets.UTF_8))
148+
.parseTree().getChildren().getFirst();
151149
} catch (IOException e) {
152150
throw Throwables.propagate(e);
153151
}

src/test/java/com/hubspot/jinjava/lib/tag/UnlessTagTest.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import com.hubspot.jinjava.Jinjava;
1414
import com.hubspot.jinjava.interpret.Context;
1515
import com.hubspot.jinjava.interpret.JinjavaInterpreter;
16-
import com.hubspot.jinjava.parse.TokenParser;
1716
import com.hubspot.jinjava.tree.TagNode;
1817
import com.hubspot.jinjava.tree.TreeParser;
1918

@@ -51,10 +50,9 @@ public void itDoesntEvalChildrenWhenExprIsTrue() throws Exception {
5150

5251
private TagNode fixture(String name) {
5352
try {
54-
return (TagNode) TreeParser.parseTree(
55-
new TokenParser(interpreter, Resources.toString(
56-
Resources.getResource(String.format("tags/iftag/%s.jinja", name)), StandardCharsets.UTF_8)))
57-
.getChildren().getFirst();
53+
return (TagNode) new TreeParser(interpreter, Resources.toString(
54+
Resources.getResource(String.format("tags/iftag/%s.jinja", name)), StandardCharsets.UTF_8))
55+
.parseTree().getChildren().getFirst();
5856
} catch (IOException e) {
5957
throw Throwables.propagate(e);
6058
}

src/test/java/com/hubspot/jinjava/tree/VariableNodeTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import com.hubspot.jinjava.Jinjava;
1313
import com.hubspot.jinjava.interpret.Context;
1414
import com.hubspot.jinjava.interpret.JinjavaInterpreter;
15-
import com.hubspot.jinjava.parse.TokenParser;
1615

1716

1817
public class VariableNodeTest {
@@ -62,7 +61,7 @@ private String val(String jinja) {
6261
}
6362

6463
private VariableNode parse(String jinja) {
65-
return (VariableNode) TreeParser.parseTree(new TokenParser(interpreter, jinja)).getChildren().getFirst();
64+
return (VariableNode) new TreeParser(interpreter, jinja).parseTree().getChildren().getFirst();
6665
}
6766

6867
private VariableNode fixture(String name) {

0 commit comments

Comments
 (0)