Class Functions

  • All Implemented Interfaces:
    java.lang.Iterable<Function>

    public final class Functions
    extends java.lang.Object
    implements java.lang.Iterable<Function>
    An immutable container for a keyspace's UDAs and UDFs (and, in case of SystemKeyspace, native functions and aggregates).
    • Method Detail

      • iterator

        public java.util.Iterator<Function> iterator()
        Specified by:
        iterator in interface java.lang.Iterable<Function>
      • stream

        public java.util.stream.Stream<Function> stream()
      • size

        public int size()
      • udfs

        public java.util.stream.Stream<UDFunction> udfs()
        Returns:
        a stream of keyspace's UDFs
      • udas

        public java.util.stream.Stream<UDAggregate> udas()
        Returns:
        a stream of keyspace's UDAs
      • referencingUserType

        public java.lang.Iterable<Function> referencingUserType​(java.nio.ByteBuffer name)
      • aggregatesUsingFunction

        public java.util.stream.Stream<UDAggregate> aggregatesUsingFunction​(Function function)
        Parameters:
        function - the referree function
        Returns:
        a stream of aggregates that use the provided function as either a state or a final function
      • get

        public java.util.Collection<Function> get​(FunctionName name)
        Get all function overloads with the specified name
        Parameters:
        name - fully qualified function name
        Returns:
        an empty list if the function name is not found; a non-empty collection of Function otherwise
      • getUdfs

        public java.util.Collection<UDFunction> getUdfs​(FunctionName name)
        Get all UDFs overloads with the specified name
        Parameters:
        name - fully qualified function name
        Returns:
        an empty list if the function name is not found; a non-empty collection of UDFunction otherwise
      • getUdas

        public java.util.Collection<UDAggregate> getUdas​(FunctionName name)
        Get all UDAs overloads with the specified name
        Parameters:
        name - fully qualified function name
        Returns:
        an empty list if the function name is not found; a non-empty collection of UDAggregate otherwise
      • find

        public java.util.Optional<Function> find​(FunctionName name,
                                                 java.util.List<AbstractType<?>> argTypes,
                                                 Functions.Filter filter)
        Find the function with the specified name
        Parameters:
        name - fully qualified function name
        argTypes - function argument types
        Returns:
        an empty Optional if the function name is not found; a non-empty optional of Function otherwise
      • isEmpty

        public boolean isEmpty()
      • typesMatch

        public static boolean typesMatch​(java.util.List<AbstractType<?>> t1,
                                         java.util.List<AbstractType<?>> t2)
      • typeHashCode

        public static int typeHashCode​(AbstractType<?> t)
      • typeHashCode

        public static int typeHashCode​(java.util.List<AbstractType<?>> types)
      • filter

        public Functions filter​(java.util.function.Predicate<Function> predicate)
      • with

        public Functions with​(Function fun)
        Create a Functions instance with the provided function added
      • without

        public Functions without​(FunctionName name,
                                 java.util.List<AbstractType<?>> argTypes)
        Creates a Functions instance with the function with the provided name and argument types removed
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object