Class 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.

    • Constructor Detail

      • OperatorUtils

        public OperatorUtils()
    • 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)
      • integerOperation

        private static long integerOperation​(int op1,
                                             int op2,
                                             OperatorUtils.Operation operation)