Package io.pebbletemplates.pebble.utils
Class OperatorUtils
- java.lang.Object
-
- io.pebbletemplates.pebble.utils.OperatorUtils
-
public class OperatorUtils extends java.lang.Object
This 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 class
OperatorUtils.Comparison
private static class
OperatorUtils.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.Object
add(java.lang.Object op1, java.lang.Object op2)
private static java.lang.Object
addToList(java.util.List<?> op1, java.lang.Object op2)
Deprecated.private static java.math.BigDecimal
bigDecimalOperation(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.Object
concatenateStrings(java.lang.String op1, java.lang.String op2)
static java.lang.Object
divide(java.lang.Object op1, java.lang.Object op2)
private static boolean
doubleComparison(double op1, double op2, OperatorUtils.Comparison comparison)
private static double
doubleOperation(double op1, double op2, OperatorUtils.Operation operation)
static boolean
equals(java.lang.Object op1, java.lang.Object op2)
private static java.lang.Float
floatOperation(java.lang.Float op1, java.lang.Float op2, OperatorUtils.Operation operation)
static boolean
gt(java.lang.Object op1, java.lang.Object op2)
static boolean
gte(java.lang.Object op1, java.lang.Object op2)
private static long
integerOperation(int op1, int op2, OperatorUtils.Operation operation)
private static long
longOperation(long op1, long op2, OperatorUtils.Operation operation)
static boolean
lt(java.lang.Object op1, java.lang.Object op2)
static boolean
lte(java.lang.Object op1, java.lang.Object op2)
static java.lang.Object
mod(java.lang.Object op1, java.lang.Object op2)
static java.lang.Object
multiply(java.lang.Object op1, java.lang.Object op2)
static java.lang.Object
subtract(java.lang.Object op1, java.lang.Object op2)
private static java.lang.Object
subtractFromList(java.util.List<?> op1, java.lang.Object op2)
Deprecated.static java.lang.Object
unaryMinus(java.lang.Object op1)
static java.lang.Object
unaryPlus(java.lang.Object op1)
private static boolean
wideningConversionBinaryComparison(java.lang.Object op1, java.lang.Object op2, OperatorUtils.Comparison comparison)
private static java.lang.Object
wideningConversionBinaryOperation(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)
-
-