Skip to content

Commit 1c6276d

Browse files
author
Matt Coley
committed
More documentation changes.
1 parent d056270 commit 1c6276d

27 files changed

Lines changed: 110 additions & 19 deletions

src/main/java/com/hubspot/jinjava/Jinjava.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import com.hubspot.jinjava.interpret.FatalTemplateErrorsException;
3131
import com.hubspot.jinjava.interpret.InterpretException;
3232
import com.hubspot.jinjava.interpret.InvalidArgumentException;
33+
import com.hubspot.jinjava.interpret.InvalidInputException;
3334
import com.hubspot.jinjava.interpret.JinjavaInterpreter;
3435
import com.hubspot.jinjava.interpret.RenderResult;
3536
import com.hubspot.jinjava.interpret.TemplateError;
@@ -206,6 +207,8 @@ public RenderResult renderForResult(String template, Map<String, ?> bindings, Ji
206207
return new RenderResult(TemplateError.fromSyntaxError(e), interpreter.getContext(), interpreter.getErrorsCopy());
207208
} catch (InvalidArgumentException e) {
208209
return new RenderResult(TemplateError.fromInvalidArgumentException(e), interpreter.getContext(), interpreter.getErrorsCopy());
210+
} catch (InvalidInputException e) {
211+
return new RenderResult(TemplateError.fromInvalidInputException(e), interpreter.getContext(), interpreter.getErrorsCopy());
209212
}
210213
catch (Exception e) {
211214
return new RenderResult(TemplateError.fromException(e), interpreter.getContext(), interpreter.getErrorsCopy());

src/main/java/com/hubspot/jinjava/doc/annotations/JinjavaDoc.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
String value() default "";
1313

14-
JinjavaParam input();
14+
JinjavaParam[] input() default {};
1515

1616
JinjavaParam[] params() default {};
1717

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ public class InvalidArgumentException extends RuntimeException {
77
private final int lineNumber;
88
private final int startPosition;
99
private final String message;
10+
private final String name;
1011

1112
public InvalidArgumentException(JinjavaInterpreter interpreter, Importable importable, InvalidReason invalidReason, int argumentNumber, Object... errorMessageArgs) {
1213
this.message = String.format("Invalid argument in '%s': %s",
@@ -15,6 +16,7 @@ public InvalidArgumentException(JinjavaInterpreter interpreter, Importable impor
1516

1617
this.lineNumber = interpreter.getLineNumber();
1718
this.startPosition = interpreter.getPosition();
19+
this.name = importable.getName();
1820
}
1921

2022
public String getMessage() {
@@ -29,6 +31,10 @@ public int getStartPosition() {
2931
return startPosition;
3032
}
3133

34+
public String getName() {
35+
return name;
36+
}
37+
3238
private static String formatArgumentNumber(int argumentNumber) {
3339
switch (argumentNumber){
3440
case 1:

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ public class InvalidInputException extends RuntimeException {
77
private final int lineNumber;
88
private final int startPosition;
99
private final String message;
10+
private final String name;
1011

1112
public InvalidInputException(JinjavaInterpreter interpreter, Importable importable, InvalidReason invalidReason, Object... errorMessageArgs) {
1213
this.message = String.format("Invalid input in '%s': input variable %s",
@@ -15,6 +16,7 @@ public InvalidInputException(JinjavaInterpreter interpreter, Importable importab
1516

1617
this.lineNumber = interpreter.getLineNumber();
1718
this.startPosition = interpreter.getPosition();
19+
this.name = importable.getName();
1820
}
1921

2022
public String getMessage() {
@@ -28,4 +30,8 @@ public int getLineNumber() {
2830
public int getStartPosition() {
2931
return startPosition;
3032
}
33+
34+
public String getName() {
35+
return name;
36+
}
3137
}

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

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ public enum ErrorReason {
2727
MISSING,
2828
DISABLED,
2929
INVALID_ARGUMENT,
30+
INVALID_INPUT,
3031
OTHER
3132
}
3233

@@ -73,7 +74,18 @@ public static TemplateError fromInvalidArgumentException(InvalidArgumentExceptio
7374
ErrorReason.INVALID_ARGUMENT,
7475
ErrorItem.PROPERTY,
7576
ex.getMessage(),
76-
ex.getFieldName(),
77+
ex.getName(),
78+
ex.getLineNumber(),
79+
ex.getStartPosition(),
80+
ex);
81+
}
82+
83+
public static TemplateError fromInvalidInputException(InvalidInputException ex) {
84+
return new TemplateError(ErrorType.FATAL,
85+
ErrorReason.INVALID_INPUT,
86+
ErrorItem.PROPERTY,
87+
ex.getMessage(),
88+
ex.getName(),
7789
ex.getLineNumber(),
7890
ex.getStartPosition(),
7991
ex);

src/main/java/com/hubspot/jinjava/lib/exptest/IsContainingAllExpTest.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,21 @@
22

33
import java.util.Objects;
44

5+
import com.hubspot.jinjava.doc.annotations.JinjavaDoc;
6+
import com.hubspot.jinjava.doc.annotations.JinjavaParam;
7+
import com.hubspot.jinjava.doc.annotations.JinjavaSnippet;
58
import com.hubspot.jinjava.interpret.JinjavaInterpreter;
69
import com.hubspot.jinjava.util.ForLoop;
710
import com.hubspot.jinjava.util.ObjectIterator;
811

12+
@JinjavaDoc(
13+
value = "Returns true if a list contains all values in a second list",
14+
input = @JinjavaParam(value = "list", type="list"),
15+
params = @JinjavaParam(value = "list_two", type="list", desc = "The second list to check if every element is in the first list"),
16+
snippets = {
17+
@JinjavaSnippet(
18+
code = "{{ [1, 2, 3] is containingall [2, 3] }}")
19+
})
920
public class IsContainingAllExpTest implements ExpTest {
1021

1122
@Override

src/main/java/com/hubspot/jinjava/lib/exptest/IsContainingExpTest.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,21 @@
22

33
import java.util.Objects;
44

5+
import com.hubspot.jinjava.doc.annotations.JinjavaDoc;
6+
import com.hubspot.jinjava.doc.annotations.JinjavaParam;
7+
import com.hubspot.jinjava.doc.annotations.JinjavaSnippet;
58
import com.hubspot.jinjava.interpret.JinjavaInterpreter;
69
import com.hubspot.jinjava.util.ForLoop;
710
import com.hubspot.jinjava.util.ObjectIterator;
811

12+
@JinjavaDoc(
13+
value = "Returns true if a list contains a value",
14+
input = @JinjavaParam(value = "list", type = "list"),
15+
params = @JinjavaParam(value = "value", type = "object", desc = "The value to check is in the list"),
16+
snippets = {
17+
@JinjavaSnippet(
18+
code = "{{ [1, 2, 3] is containing 2 }}")
19+
})
920
public class IsContainingExpTest implements ExpTest {
1021

1122
@Override

src/main/java/com/hubspot/jinjava/lib/exptest/IsDefinedExpTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package com.hubspot.jinjava.lib.exptest;
22

33
import com.hubspot.jinjava.doc.annotations.JinjavaDoc;
4+
import com.hubspot.jinjava.doc.annotations.JinjavaParam;
45
import com.hubspot.jinjava.doc.annotations.JinjavaSnippet;
56
import com.hubspot.jinjava.interpret.JinjavaInterpreter;
67

78
@JinjavaDoc(
89
value = "Return true if the variable is defined",
10+
input = @JinjavaParam(value = "value", type = "object"),
911
snippets = {
1012
@JinjavaSnippet(
1113
code = "{% if variable is defined %}\n" +

src/main/java/com/hubspot/jinjava/lib/exptest/IsDivisibleByExpTest.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,14 @@
44
import com.hubspot.jinjava.doc.annotations.JinjavaParam;
55
import com.hubspot.jinjava.doc.annotations.JinjavaSnippet;
66
import com.hubspot.jinjava.interpret.InvalidArgumentException;
7+
import com.hubspot.jinjava.interpret.InvalidReason;
78
import com.hubspot.jinjava.interpret.JinjavaInterpreter;
89
import com.hubspot.jinjava.interpret.TemplateSyntaxException;
910

10-
@JinjavaDoc(value = "Check if a variable is divisible by a number",
11-
params = {
12-
@JinjavaParam(value = "num", type = "number", desc = "The number to check whether a number is divisble by")
13-
},
11+
@JinjavaDoc(
12+
value = "Returns true if a variable is divisible by a number",
13+
input = @JinjavaParam(value = "num", type = "number"),
14+
params = @JinjavaParam(value = "divisor", type = "number", desc = "The number to check whether a number is divisible by"),
1415
snippets = {
1516
@JinjavaSnippet(
1617
code = "{% if variable is divisbleby 5 %}\n" +
@@ -44,10 +45,7 @@ public boolean evaluate(Object var, JinjavaInterpreter interpreter, Object... ar
4445
}
4546

4647
if (!Number.class.isAssignableFrom(args[0].getClass())) {
47-
throw new InvalidArgumentException(interpreter,
48-
getName(),
49-
String.format(InvalidArgumentException.NUMBER_FORMAT_EXCEPTION_TEMPLATE, "num", args[0].toString()),
50-
"num");
48+
throw new InvalidArgumentException(interpreter, this, InvalidReason.NUMBER_FORMAT, 0, args[0].toString());
5149
}
5250

5351
return ((Number) var).intValue() % ((Number) args[0]).intValue() == 0;

src/main/java/com/hubspot/jinjava/lib/exptest/IsEqualToExpTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111
import de.odysseus.el.misc.TypeConverter;
1212

1313
@JinjavaDoc(
14-
value = "Check if an object has the same value as another object",
14+
value = "Returns true if an object has the same value as another object",
15+
input = @JinjavaParam(value = "first", type = "object"),
1516
params = {
1617
@JinjavaParam(value = "other", type = "object", desc = "Another object to check equality against")
1718
},

0 commit comments

Comments
 (0)