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
`static class` `Functions.Builder`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`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`