Class RuntimeHelpers


  • @Internal
    public final class RuntimeHelpers
    extends java.lang.Object
    Helper methods for common CEL related routines.

    CEL Library Internals. Do Not Use.

    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.lang.Object adaptProtoToValue​(DynamicProto dynamicProto, MessageOrBuilder obj, CelOptions celOptions)
      Adapts a protobuf.Message to a plain old Java object.
      static java.lang.Object adaptValue​(DynamicProto dynamicProto, java.lang.Object value, CelOptions celOptions)
      Adapts a plain old Java object into a CEL value.
      static com.google.re2j.Pattern compilePattern​(java.lang.String regexp)
      Create a compiled pattern for the given regular expression.
      static <E> java.util.List<E> concat​(java.util.List<E> first, java.util.List<E> second)
      Concatenates two lists into a new list.
      static Duration createDurationFromString​(java.lang.String d)
      Convert a string to a Duration.
      static java.util.Optional<java.lang.Long> doubleToLongChecked​(double v)  
      static java.util.Optional<java.lang.Long> doubleToLongLossless​(java.lang.Number v)  
      static java.util.Optional<com.google.common.primitives.UnsignedLong> doubleToUnsignedChecked​(double v)  
      static <A> Converter<A,​A> identity()  
      static <A> A indexList​(java.util.List<A> list, java.lang.Number index)
      Bound-checked indexing of lists.
      static long int64Add​(long x, long y, CelOptions celOptions)  
      static long int64Divide​(long x, long y, CelOptions celOptions)  
      static long int64Multiply​(long x, long y, CelOptions celOptions)  
      static long int64Negate​(long x, CelOptions celOptions)  
      static long int64Subtract​(long x, long y, CelOptions celOptions)  
      static boolean matches​(java.lang.String string, java.lang.String regexp)
      Match a string against a regular expression.
      static boolean matches​(java.lang.String string, java.lang.String regexp, CelOptions celOptions)  
      static java.lang.Object maybeAdaptPrimitive​(java.lang.Object value)
      Adapts a Number value to its appropriate CEL type.
      static long uint64Add​(long x, long y, CelOptions celOptions)  
      static com.google.common.primitives.UnsignedLong uint64Add​(com.google.common.primitives.UnsignedLong x, com.google.common.primitives.UnsignedLong y)  
      static int uint64CompareTo​(long x, long y)  
      static int uint64CompareTo​(long x, long y, CelOptions celOptions)  
      static int uint64CompareTo​(com.google.common.primitives.UnsignedLong x, com.google.common.primitives.UnsignedLong y)  
      static long uint64Divide​(long x, long y)  
      static long uint64Divide​(long x, long y, CelOptions celOptions)  
      static com.google.common.primitives.UnsignedLong uint64Divide​(com.google.common.primitives.UnsignedLong x, com.google.common.primitives.UnsignedLong y)  
      static long uint64Mod​(long x, long y)  
      static long uint64Mod​(long x, long y, CelOptions celOptions)  
      static com.google.common.primitives.UnsignedLong uint64Mod​(com.google.common.primitives.UnsignedLong x, com.google.common.primitives.UnsignedLong y)  
      static long uint64Multiply​(long x, long y)  
      static long uint64Multiply​(long x, long y, CelOptions celOptions)  
      static com.google.common.primitives.UnsignedLong uint64Multiply​(com.google.common.primitives.UnsignedLong x, com.google.common.primitives.UnsignedLong y)  
      static long uint64Subtract​(long x, long y, CelOptions celOptions)  
      static com.google.common.primitives.UnsignedLong uint64Subtract​(com.google.common.primitives.UnsignedLong x, com.google.common.primitives.UnsignedLong y)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • INT32_TO_INT64

        public static final Converter<java.lang.Integer,​java.lang.Long> INT32_TO_INT64
      • UINT32_TO_UINT64

        public static final Converter<java.lang.Integer,​java.lang.Long> UINT32_TO_UINT64
      • FLOAT_TO_DOUBLE

        public static final Converter<java.lang.Float,​java.lang.Double> FLOAT_TO_DOUBLE
      • INT64_TO_INT32

        public static final Converter<java.lang.Long,​java.lang.Integer> INT64_TO_INT32
      • DOUBLE_TO_FLOAT

        public static final Converter<java.lang.Double,​java.lang.Float> DOUBLE_TO_FLOAT
    • Method Detail

      • createDurationFromString

        public static Duration createDurationFromString​(java.lang.String d)
        Convert a string to a Duration.
      • matches

        public static boolean matches​(java.lang.String string,
                                      java.lang.String regexp)
        Match a string against a regular expression.
      • matches

        public static boolean matches​(java.lang.String string,
                                      java.lang.String regexp,
                                      CelOptions celOptions)
      • compilePattern

        public static com.google.re2j.Pattern compilePattern​(java.lang.String regexp)
        Create a compiled pattern for the given regular expression.
      • concat

        public static <E> java.util.List<E> concat​(java.util.List<E> first,
                                                   java.util.List<E> second)
        Concatenates two lists into a new list.
      • indexList

        public static <A> A indexList​(java.util.List<A> list,
                                      java.lang.Number index)
        Bound-checked indexing of lists.
      • int64Add

        public static long int64Add​(long x,
                                    long y,
                                    CelOptions celOptions)
      • int64Divide

        public static long int64Divide​(long x,
                                       long y,
                                       CelOptions celOptions)
      • int64Multiply

        public static long int64Multiply​(long x,
                                         long y,
                                         CelOptions celOptions)
      • int64Negate

        public static long int64Negate​(long x,
                                       CelOptions celOptions)
      • int64Subtract

        public static long int64Subtract​(long x,
                                         long y,
                                         CelOptions celOptions)
      • uint64Add

        public static long uint64Add​(long x,
                                     long y,
                                     CelOptions celOptions)
      • uint64Add

        public static com.google.common.primitives.UnsignedLong uint64Add​(com.google.common.primitives.UnsignedLong x,
                                                                          com.google.common.primitives.UnsignedLong y)
      • uint64CompareTo

        public static int uint64CompareTo​(long x,
                                          long y,
                                          CelOptions celOptions)
      • uint64CompareTo

        public static int uint64CompareTo​(long x,
                                          long y)
      • uint64CompareTo

        public static int uint64CompareTo​(com.google.common.primitives.UnsignedLong x,
                                          com.google.common.primitives.UnsignedLong y)
      • uint64Divide

        public static long uint64Divide​(long x,
                                        long y,
                                        CelOptions celOptions)
      • uint64Divide

        public static long uint64Divide​(long x,
                                        long y)
      • uint64Divide

        public static com.google.common.primitives.UnsignedLong uint64Divide​(com.google.common.primitives.UnsignedLong x,
                                                                             com.google.common.primitives.UnsignedLong y)
      • uint64Mod

        public static long uint64Mod​(long x,
                                     long y,
                                     CelOptions celOptions)
      • uint64Mod

        public static com.google.common.primitives.UnsignedLong uint64Mod​(com.google.common.primitives.UnsignedLong x,
                                                                          com.google.common.primitives.UnsignedLong y)
      • uint64Mod

        public static long uint64Mod​(long x,
                                     long y)
      • uint64Multiply

        public static long uint64Multiply​(long x,
                                          long y,
                                          CelOptions celOptions)
      • uint64Multiply

        public static long uint64Multiply​(long x,
                                          long y)
      • uint64Multiply

        public static com.google.common.primitives.UnsignedLong uint64Multiply​(com.google.common.primitives.UnsignedLong x,
                                                                               com.google.common.primitives.UnsignedLong y)
      • uint64Subtract

        public static long uint64Subtract​(long x,
                                          long y,
                                          CelOptions celOptions)
      • uint64Subtract

        public static com.google.common.primitives.UnsignedLong uint64Subtract​(com.google.common.primitives.UnsignedLong x,
                                                                               com.google.common.primitives.UnsignedLong y)
      • identity

        public static <A> Converter<A,​A> identity()
      • adaptValue

        public static java.lang.Object adaptValue​(DynamicProto dynamicProto,
                                                  java.lang.Object value,
                                                  CelOptions celOptions)
        Adapts a plain old Java object into a CEL value.
      • maybeAdaptPrimitive

        public static java.lang.Object maybeAdaptPrimitive​(java.lang.Object value)
        Adapts a Number value to its appropriate CEL type.
      • adaptProtoToValue

        public static java.lang.Object adaptProtoToValue​(DynamicProto dynamicProto,
                                                         MessageOrBuilder obj,
                                                         CelOptions celOptions)
        Adapts a protobuf.Message to a plain old Java object.

        Well-known protobuf types (wrappers, JSON types) are unwrapped to Java native object representations.

        If the incoming obj is of type google.protobuf.Any the object is unpacked and the proto within is passed to the adaptProtoToValue method again to ensure the message contained within the Any is properly unwrapped if it is a well-known protobuf type.

      • doubleToUnsignedChecked

        public static java.util.Optional<com.google.common.primitives.UnsignedLong> doubleToUnsignedChecked​(double v)
      • doubleToLongChecked

        public static java.util.Optional<java.lang.Long> doubleToLongChecked​(double v)
      • doubleToLongLossless

        public static java.util.Optional<java.lang.Long> doubleToLongLossless​(java.lang.Number v)