org.apache.cassandra.schema

## Class Indexes

- java.lang.Object
- - org.apache.cassandra.schema.Indexes

All Implemented Interfaces:
  java.lang.Iterable<IndexMetadata>

    public class Indexes
    extends java.lang.Object
    implements java.lang.Iterable<IndexMetadata>

For backwards compatibility, in the first instance an IndexMetadata must have TargetType.COLUMN and its Set of target columns must contain only a single ColumnIdentifier. Hence, this is what is enforced by the public factory methods on IndexMetadata. These constraints, along with the internal datastructures here will be relaxed as support is added for multiple target columns per-index and for indexes with TargetType.ROW

### Nested Class Summary

Nested Classes
`static class` `Indexes.Builder`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`static Indexes.Builder` `builder()`
`boolean` `equals(java.lang.Object o)`
`java.util.Optional<IndexMetadata>` `get(java.lang.String name)` Get the index with the specified name
`java.util.Optional<IndexMetadata>` `get(java.util.UUID id)` Get the index with the specified id
`static java.lang.String` `getAvailableIndexName(java.lang.String ksName, java.lang.String cfName, java.lang.String indexNameRoot)`
`boolean` `has(java.lang.String name)` Answer true if contains an index with the specified name.
`boolean` `has(java.util.UUID id)` Answer true if contains an index with the specified id.
`int` `hashCode()`
`boolean` `isEmpty()`
`java.util.Iterator<IndexMetadata>` `iterator()`
`static Indexes` `none()`
`Indexes` `replace(IndexMetadata index)` Creates a SecondaryIndexes instance which contains an updated index definition
`int` `size()`
`java.lang.String` `toString()`
`Indexes` `with(IndexMetadata index)` Create a SecondaryIndexes instance with the provided index added
`Indexes` `without(java.lang.String name)` Creates a SecondaryIndexes instance with the index with the provided name 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 Indexes.Builder builder()

#### none

    public static Indexes none()

#### iterator

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

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

#### size

    public int size()

#### isEmpty

    public boolean isEmpty()

#### get

    public java.util.Optional<IndexMetadata> get(java.lang.String name)

Get the index with the specified name

Parameters:
  `name` - a non-qualified index name
Returns:
  an empty `Optional` if the named index is not found; a non-empty optional of `IndexMetadata` otherwise

#### has

    public boolean has(java.lang.String name)

Answer true if contains an index with the specified name.

Parameters:
  `name` - a non-qualified index name.
Returns:
  true if the named index is found; false otherwise

#### get

    public java.util.Optional<IndexMetadata> get(java.util.UUID id)

Get the index with the specified id

Parameters:
  `id` - a UUID which identifies an index
Returns:
  an empty `Optional` if no index with the specified id is found; a non-empty optional of `IndexMetadata` otherwise

#### has

    public boolean has(java.util.UUID id)

Answer true if contains an index with the specified id.

Parameters:
  `id` - a UUID which identifies an index.
Returns:
  true if an index with the specified id is found; false otherwise

#### with

    public Indexes with(IndexMetadata index)

Create a SecondaryIndexes instance with the provided index added

#### without

    public Indexes without(java.lang.String name)

Creates a SecondaryIndexes instance with the index with the provided name removed

#### replace

    public Indexes replace(IndexMetadata index)

Creates a SecondaryIndexes instance which contains an updated index definition

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

#### getAvailableIndexName

    public static java.lang.String getAvailableIndexName(java.lang.String ksName,
                                                         java.lang.String cfName,
                                                         java.lang.String indexNameRoot)