org.apache.cassandra.schema

## Class Functions

- java.lang.Object
- - org.apache.cassandra.schema.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).

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `Functions.Builder`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.util.Collection<UDAggregate>` | `aggregatesUsingFunction(Function function)`
    `static Functions.Builder` | `builder()`
    `boolean` | `equals(java.lang.Object o)`
    `java.util.Optional<Function>` | `find(FunctionName name, java.util.List<AbstractType<?>> argTypes)` Find the function with the specified name
    `java.util.Collection<Function>` | `get(FunctionName name)` Get all function overloads with the specified name
    `int` | `hashCode()`
    `java.util.Iterator<Function>` | `iterator()`
    `static Functions` | `none()`
    `static Functions` | `of(Function... funs)`
    `java.util.stream.Stream<Function>` | `stream()`
    `java.lang.String` | `toString()`
    `static int` | `typeHashCode(AbstractType<?> t)`
    `static int` | `typeHashCode(java.util.List<AbstractType<?>> types)`
    `static boolean` | `typesMatch(AbstractType<?> t1, AbstractType<?> t2)`
    `static boolean` | `typesMatch(java.util.List<AbstractType<?>> t1, java.util.List<AbstractType<?>> t2)`
    `java.util.stream.Stream<UDAggregate>` | `udas()`
    `java.util.stream.Stream<UDFunction>` | `udfs()`
    `Functions` | `with(Function fun)` Create a Functions instance with the provided function added
    `Functions` | `without(FunctionName name, java.util.List<AbstractType<?>> argTypes)` Creates a Functions instance with the function with the provided name and argument types removed

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

- - ### Method Detail

    - #### builder

          public static Functions.Builder builder()

    - #### none

          public static Functions none()

    - #### of

          public static Functions of(Function... funs)

    - #### iterator

          public java.util.Iterator<Function> iterator()

      Specified by:
        `iterator` in interface `java.lang.Iterable<Function>`

    - #### stream

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

    - #### 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

    - #### aggregatesUsingFunction

          public java.util.Collection<UDAggregate> aggregatesUsingFunction(Function function)

      Parameters:
        `function` - the referree function
      Returns:
        a collection 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

    - #### find

          public java.util.Optional<Function> find(FunctionName name,
                                                   java.util.List<AbstractType<?>> argTypes)

      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

    - #### typesMatch

          public static boolean typesMatch(AbstractType<?> t1,
                                           AbstractType<?> t2)

    - #### 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)

    - #### 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`

Copyright © 2018 The Apache Software Foundation