Package org.apache.cassandra.db
Class Columns
- java.lang.Object
-
- java.util.AbstractCollection<ColumnMetadata>
-
- org.apache.cassandra.db.Columns
-
- All Implemented Interfaces:
java.lang.Iterable<ColumnMetadata>
,java.util.Collection<ColumnMetadata>
public class Columns extends java.util.AbstractCollection<ColumnMetadata> implements java.util.Collection<ColumnMetadata>
An immutable and sorted list of (non-PK) columns for a given table.Note that in practice, it will either store only static columns, or only regular ones. When we need both type of columns, we use a
RegularAndStaticColumns
object.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Columns.Serializer
-
Field Summary
Fields Modifier and Type Field Description static ColumnMetadata
FIRST_COMPLEX_REGULAR
static ColumnMetadata
FIRST_COMPLEX_STATIC
static Columns
NONE
static Columns.Serializer
serializer
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
apply(java.util.function.Consumer<ColumnMetadata> function)
Apply a function to each column definition in forwards or reversed order.int
complexColumnCount()
The number of complex columns (non-frozen collections, udts, ...) in this object.java.util.Iterator<ColumnMetadata>
complexColumns()
Iterator over the complex columns of this object.int
complexIdx(ColumnMetadata c)
The index of the provided complex column in this object (if it contains the provided column).boolean
contains(ColumnMetadata c)
Whether the provided column is contained by this object.boolean
containsAll(java.util.Collection<?> other)
Whether this object is a superset of the provided otherColumns object
.void
digest(Digest digest)
boolean
equals(java.lang.Object other)
static Columns
from(java.util.Collection<ColumnMetadata> s)
Returns a newColumns
object holding the same columns than the provided set.static Columns
from(Row row)
Returns a newColumns
object holing the same columns as the provided Row.static Columns
from(BTree.Builder<ColumnMetadata> builder)
ColumnMetadata
getComplex(int i)
Returns the ith complex column of this object.ColumnMetadata
getSimple(int i)
Returns the ith simple column of this object.boolean
hasComplex()
Whether this objects contains complex columns.int
hashCode()
boolean
hasSimple()
Whether this objects contains simple columns.java.util.function.Predicate<ColumnMetadata>
inOrderInclusionTester()
Returns a predicate to test whether columns are included in thisColumns
object, assuming that tes tested columns are passed to the predicate in sorted order.boolean
isEmpty()
Whether this columns is empty.BTreeSearchIterator<ColumnMetadata,ColumnMetadata>
iterator()
Iterator over all the columns of this object.Columns
mergeTo(Columns other)
Returns the result of merging thisColumns
object with the provided one.static Columns
of(ColumnMetadata c)
Creates aColumns
holding only the one column provided.java.util.Iterator<ColumnMetadata>
selectOrderIterator()
An iterator that returns the columns of this object in "select" order (that is in global alphabetical order, where the "normal" iterator returns simple columns first and the complex second).int
simpleColumnCount()
The number of simple columns in this object.java.util.Iterator<ColumnMetadata>
simpleColumns()
Iterator over the simple columns of this object.int
simpleIdx(ColumnMetadata c)
The index of the provided simple column in this object (if it contains the provided column).int
size()
The total number of columns in this object.java.lang.String
toString()
long
unsharedHeapSize()
Columns
without(ColumnMetadata column)
Returns the equivalent of those columns but with the provided column removed.-
Methods inherited from class java.util.AbstractCollection
add, addAll, clear, contains, remove, removeAll, retainAll, toArray, toArray
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
-
-
-
Field Detail
-
serializer
public static final Columns.Serializer serializer
-
NONE
public static final Columns NONE
-
FIRST_COMPLEX_STATIC
public static final ColumnMetadata FIRST_COMPLEX_STATIC
-
FIRST_COMPLEX_REGULAR
public static final ColumnMetadata FIRST_COMPLEX_REGULAR
-
-
Method Detail
-
of
public static Columns of(ColumnMetadata c)
Creates aColumns
holding only the one column provided.- Parameters:
c
- the column for which to create aColumns
object.- Returns:
- the newly created
Columns
containing onlyc
.
-
from
public static Columns from(Row row)
Returns a newColumns
object holing the same columns as the provided Row.- Parameters:
row
- the row from which to create the newColumns
.- Returns:
- the newly created
Columns
containing the columns fromrow
.
-
from
public static Columns from(BTree.Builder<ColumnMetadata> builder)
-
from
public static Columns from(java.util.Collection<ColumnMetadata> s)
Returns a newColumns
object holding the same columns than the provided set. This method assumes nothing about the order ofs
.- Parameters:
s
- the set from which to create the newColumns
.- Returns:
- the newly created
Columns
containing the columns froms
.
-
isEmpty
public boolean isEmpty()
Whether this columns is empty.- Specified by:
isEmpty
in interfacejava.util.Collection<ColumnMetadata>
- Overrides:
isEmpty
in classjava.util.AbstractCollection<ColumnMetadata>
- Returns:
- whether this columns is empty.
-
simpleColumnCount
public int simpleColumnCount()
The number of simple columns in this object.- Returns:
- the number of simple columns in this object.
-
complexColumnCount
public int complexColumnCount()
The number of complex columns (non-frozen collections, udts, ...) in this object.- Returns:
- the number of complex columns in this object.
-
size
public int size()
The total number of columns in this object.- Specified by:
size
in interfacejava.util.Collection<ColumnMetadata>
- Specified by:
size
in classjava.util.AbstractCollection<ColumnMetadata>
- Returns:
- the total number of columns in this object.
-
hasSimple
public boolean hasSimple()
Whether this objects contains simple columns.- Returns:
- whether this objects contains simple columns.
-
hasComplex
public boolean hasComplex()
Whether this objects contains complex columns.- Returns:
- whether this objects contains complex columns.
-
getSimple
public ColumnMetadata getSimple(int i)
Returns the ith simple column of this object.- Parameters:
i
- the index for the simple column to fectch. This must satisfy0 <= i < simpleColumnCount()
.- Returns:
- the
i
th simple column in this object.
-
getComplex
public ColumnMetadata getComplex(int i)
Returns the ith complex column of this object.- Parameters:
i
- the index for the complex column to fectch. This must satisfy0 <= i < complexColumnCount()
.- Returns:
- the
i
th complex column in this object.
-
simpleIdx
public int simpleIdx(ColumnMetadata c)
The index of the provided simple column in this object (if it contains the provided column).- Parameters:
c
- the simple column for which to return the index of.- Returns:
- the index for simple column
c
if it is contains in this object
-
complexIdx
public int complexIdx(ColumnMetadata c)
The index of the provided complex column in this object (if it contains the provided column).- Parameters:
c
- the complex column for which to return the index of.- Returns:
- the index for complex column
c
if it is contains in this object
-
contains
public boolean contains(ColumnMetadata c)
Whether the provided column is contained by this object.- Parameters:
c
- the column to check presence of.- Returns:
- whether
c
is contained by this object.
-
mergeTo
public Columns mergeTo(Columns other)
Returns the result of merging thisColumns
object with the provided one.- Parameters:
other
- the otherColumns
to merge this object with.- Returns:
- the result of merging/taking the union of
this
andother
. The returned object may be one of the operand and that operand is a subset of the other operand.
-
containsAll
public boolean containsAll(java.util.Collection<?> other)
Whether this object is a superset of the provided otherColumns object
.- Specified by:
containsAll
in interfacejava.util.Collection<ColumnMetadata>
- Overrides:
containsAll
in classjava.util.AbstractCollection<ColumnMetadata>
- Parameters:
other
- the other object to test for inclusion in this object.- Returns:
- whether all the columns of
other
are contained by this object.
-
simpleColumns
public java.util.Iterator<ColumnMetadata> simpleColumns()
Iterator over the simple columns of this object.- Returns:
- an iterator over the simple columns of this object.
-
complexColumns
public java.util.Iterator<ColumnMetadata> complexColumns()
Iterator over the complex columns of this object.- Returns:
- an iterator over the complex columns of this object.
-
iterator
public BTreeSearchIterator<ColumnMetadata,ColumnMetadata> iterator()
Iterator over all the columns of this object.- Specified by:
iterator
in interfacejava.util.Collection<ColumnMetadata>
- Specified by:
iterator
in interfacejava.lang.Iterable<ColumnMetadata>
- Specified by:
iterator
in classjava.util.AbstractCollection<ColumnMetadata>
- Returns:
- an iterator over all the columns of this object.
-
selectOrderIterator
public java.util.Iterator<ColumnMetadata> selectOrderIterator()
An iterator that returns the columns of this object in "select" order (that is in global alphabetical order, where the "normal" iterator returns simple columns first and the complex second).- Returns:
- an iterator returning columns in alphabetical order.
-
without
public Columns without(ColumnMetadata column)
Returns the equivalent of those columns but with the provided column removed.- Parameters:
column
- the column to remove.- Returns:
- newly allocated columns containing all the columns of
this
expect forcolumn
.
-
inOrderInclusionTester
public java.util.function.Predicate<ColumnMetadata> inOrderInclusionTester()
Returns a predicate to test whether columns are included in thisColumns
object, assuming that tes tested columns are passed to the predicate in sorted order.- Returns:
- a predicate to test the inclusion of sorted columns in this object.
-
digest
public void digest(Digest digest)
-
apply
public void apply(java.util.function.Consumer<ColumnMetadata> function)
Apply a function to each column definition in forwards or reversed order.- Parameters:
function
-
-
equals
public boolean equals(java.lang.Object other)
- Specified by:
equals
in interfacejava.util.Collection<ColumnMetadata>
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Specified by:
hashCode
in interfacejava.util.Collection<ColumnMetadata>
- Overrides:
hashCode
in classjava.lang.Object
-
unsharedHeapSize
public long unsharedHeapSize()
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.util.AbstractCollection<ColumnMetadata>
-
-