Package io.pebbletemplates.pebble.utils
Class OperatorUtils
- java.lang.Object
-
- io.pebbletemplates.pebble.utils.OperatorUtils
-
public class OperatorUtils extends java.lang.ObjectThis class acts as a sort of wrapper around Java's built in operators. This is necessary because Pebble treats all user provided variables as Objects even if they were originally primitives.It's important that this class mimics the natural type conversion that Java will apply when performing operators. This can be found in section 5.6.2 of the Java 7 spec, under Binary Numeric Promotion.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classOperatorUtils.Comparisonprivate static classOperatorUtils.Operation
-
Constructor Summary
Constructors Constructor Description OperatorUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static java.lang.Objectadd(java.lang.Object op1, java.lang.Object op2)private static java.lang.ObjectaddToList(java.util.List<?> op1, java.lang.Object op2)Deprecated.private static java.math.BigDecimalbigDecimalOperation(java.math.BigDecimal op1, java.math.BigDecimal op2, OperatorUtils.Operation operation)private static <T extends java.lang.Enum<T>>
booleancompareEnum(java.lang.Enum<T> enumVariable, java.lang.String compareToString)private static java.lang.ObjectconcatenateStrings(java.lang.String op1, java.lang.String op2)static java.lang.Objectdivide(java.lang.Object op1, java.lang.Object op2)private static booleandoubleComparison(double op1, double op2, OperatorUtils.Comparison comparison)private static doubledoubleOperation(double op1, double op2, OperatorUtils.Operation operation)static booleanequals(java.lang.Object op1, java.lang.Object op2)private static java.lang.FloatfloatOperation(java.lang.Float op1, java.lang.Float op2, OperatorUtils.Operation operation)static booleangt(java.lang.Object op1, java.lang.Object op2)static booleangte(java.lang.Object op1, java.lang.Object op2)private static longintegerOperation(int op1, int op2, OperatorUtils.Operation operation)private static longlongOperation(long op1, long op2, OperatorUtils.Operation operation)static booleanlt(java.lang.Object op1, java.lang.Object op2)static booleanlte(java.lang.Object op1, java.lang.Object op2)static java.lang.Objectmod(java.lang.Object op1, java.lang.Object op2)static java.lang.Objectmultiply(java.lang.Object op1, java.lang.Object op2)static java.lang.Objectsubtract(java.lang.Object op1, java.lang.Object op2)private static java.lang.ObjectsubtractFromList(java.util.List<?> op1, java.lang.Object op2)Deprecated.static java.lang.ObjectunaryMinus(java.lang.Object op1)static java.lang.ObjectunaryPlus(java.lang.Object op1)private static booleanwideningConversionBinaryComparison(java.lang.Object op1, java.lang.Object op2, OperatorUtils.Comparison comparison)private static java.lang.ObjectwideningConversionBinaryOperation(java.lang.Object op1, java.lang.Object op2, OperatorUtils.Operation operation)
-
-
-
Method Detail
-
add
public static java.lang.Object add(java.lang.Object op1, java.lang.Object op2)
-
subtract
public static java.lang.Object subtract(java.lang.Object op1, java.lang.Object op2)
-
multiply
public static java.lang.Object multiply(java.lang.Object op1, java.lang.Object op2)
-
divide
public static java.lang.Object divide(java.lang.Object op1, java.lang.Object op2)
-
mod
public static java.lang.Object mod(java.lang.Object op1, java.lang.Object op2)
-
equals
public static boolean equals(java.lang.Object op1, java.lang.Object op2)
-
compareEnum
private static <T extends java.lang.Enum<T>> boolean compareEnum(java.lang.Enum<T> enumVariable, java.lang.String compareToString)
-
gt
public static boolean gt(java.lang.Object op1, java.lang.Object op2)
-
gte
public static boolean gte(java.lang.Object op1, java.lang.Object op2)
-
lt
public static boolean lt(java.lang.Object op1, java.lang.Object op2)
-
lte
public static boolean lte(java.lang.Object op1, java.lang.Object op2)
-
unaryPlus
public static java.lang.Object unaryPlus(java.lang.Object op1)
-
unaryMinus
public static java.lang.Object unaryMinus(java.lang.Object op1)
-
concatenateStrings
private static java.lang.Object concatenateStrings(java.lang.String op1, java.lang.String op2)
-
addToList
@Deprecated private static java.lang.Object addToList(java.util.List<?> op1, java.lang.Object op2)Deprecated.This is not a documented feature but we are leaving this in for now. I'm unsure if there is demand for this feature.
-
subtractFromList
@Deprecated private static java.lang.Object subtractFromList(java.util.List<?> op1, java.lang.Object op2)Deprecated.This is not a documented feature but we are leaving this in for now. I'm unsure if there is demand for this feature.
-
wideningConversionBinaryOperation
private static java.lang.Object wideningConversionBinaryOperation(java.lang.Object op1, java.lang.Object op2, OperatorUtils.Operation operation)
-
wideningConversionBinaryComparison
private static boolean wideningConversionBinaryComparison(java.lang.Object op1, java.lang.Object op2, OperatorUtils.Comparison comparison)
-
doubleOperation
private static double doubleOperation(double op1, double op2, OperatorUtils.Operation operation)
-
doubleComparison
private static boolean doubleComparison(double op1, double op2, OperatorUtils.Comparison comparison)
-
bigDecimalOperation
private static java.math.BigDecimal bigDecimalOperation(java.math.BigDecimal op1, java.math.BigDecimal op2, OperatorUtils.Operation operation)
-
floatOperation
private static java.lang.Float floatOperation(java.lang.Float op1, java.lang.Float op2, OperatorUtils.Operation operation)
-
longOperation
private static long longOperation(long op1, long op2, OperatorUtils.Operation operation)
-
integerOperation
private static long integerOperation(int op1, int op2, OperatorUtils.Operation operation)
-
-