org.apache.cassandra.config

## Class CFMetaData

- java.lang.Object
- - org.apache.cassandra.config.CFMetaData

    public final class CFMetaData
    extends java.lang.Object

### Nested Class Summary

Nested Classes
`static class` `CFMetaData.Caching`
`static class` `CFMetaData.SpeculativeRetry`

### Field Summary

Fields
`static CFMetaData` `BatchlogCf`
`java.util.UUID` `cfId`
`java.lang.String` `cfName`
`ColumnFamilyType` `cfType`
`static CFMetaData` `CompactionHistoryCf`
`static CFMetaData` `CompactionLogCf`
`java.lang.Class<? extends AbstractCompactionStrategy>` `compactionStrategyClass`
`java.util.Map<java.lang.String,java.lang.String>` `compactionStrategyOptions`
`AbstractType<?>` `comparator`
`CompressionParameters` `compressionParameters`
`static CFMetaData` `CounterIdCf`
`static CFMetaData.Caching` `DEFAULT_CACHING_STRATEGY`
`static java.lang.String` `DEFAULT_COLUMN_ALIAS`
`static java.lang.Class<? extends AbstractCompactionStrategy>` `DEFAULT_COMPACTION_STRATEGY_CLASS`
`static java.lang.String` `DEFAULT_COMPRESSOR`
`static double` `DEFAULT_DCLOCAL_READ_REPAIR_CHANCE`
`static int` `DEFAULT_DEFAULT_TIME_TO_LIVE`
`static int` `DEFAULT_GC_GRACE_SECONDS`
`static int` `DEFAULT_INDEX_INTERVAL`
`static java.lang.String` `DEFAULT_KEY_ALIAS`
`static int` `DEFAULT_MAX_COMPACTION_THRESHOLD`
`static int` `DEFAULT_MIN_COMPACTION_THRESHOLD`
`static boolean` `DEFAULT_POPULATE_IO_CACHE_ON_FLUSH`
`static double` `DEFAULT_READ_REPAIR_CHANCE`
`static boolean` `DEFAULT_REPLICATE_ON_WRITE`
`static CFMetaData.SpeculativeRetry` `DEFAULT_SPECULATIVE_RETRY`
`static java.lang.String` `DEFAULT_VALUE_ALIAS`
`static CFMetaData` `HintsCf`
`static CFMetaData` `IndexCf`
`java.lang.String` `ksName`
`static CFMetaData` `LocalCf`
`static CFMetaData` `PaxosCf`
`static CFMetaData` `PeerEventsCf`
`static CFMetaData` `PeersCf`
`static CFMetaData` `RangeXfersCf`
`static CFMetaData` `SchemaColumnFamiliesCf`
`static CFMetaData` `SchemaColumnsCf`
`static CFMetaData` `SchemaKeyspacesCf`
`static CFMetaData` `SchemaTriggersCf`
`static CFMetaData` `SSTableActivityCF`
`static CFMetaData` `TraceEventsCf`
`static CFMetaData` `TraceSessionsCf`

### Constructor Summary

Constructors
Constructor and Description
`CFMetaData(java.lang.String keyspace, java.lang.String name, ColumnFamilyType type, AbstractType<?> comp)`
`CFMetaData(java.lang.String keyspace, java.lang.String name, ColumnFamilyType type, AbstractType<?> comp, AbstractType<?> subcc)`

### Method Summary

Methods
`void` `addColumnDefinition(ColumnDefinition def)`
`void` `addColumnMetadataFromAliases(java.util.List<java.nio.ByteBuffer> aliases, AbstractType<?> comparator, ColumnDefinition.Type type)`
`void` `addDefaultIndexNames()` Convert a null index_name to appropriate default name according to column status
`void` `addOrReplaceColumnDefinition(ColumnDefinition def)`
`void` `addTriggerDefinition(TriggerDefinition def)`
`java.util.Collection<ColumnDefinition>` `allColumns()`
`void` `apply(CFMetaData cfm)` Updates CFMetaData in-place to match cf_def *Note*: This method left public only for DefsTest, don't use directly!
`static void` `applyImplicitDefaults(CfDef cf_def)` applies implicit defaults to cf definition.
`CFMetaData` `bloomFilterFpChance(java.lang.Double prop)`
`CFMetaData` `caching(CFMetaData.Caching prop)`
`CFMetaData` `clone()`
`java.util.List<ColumnDefinition>` `clusteringKeyColumns()`
`CFMetaData` `columnMetadata(java.util.Map<java.nio.ByteBuffer,ColumnDefinition> prop)`
`CFMetaData` `comment(java.lang.String prop)`
`CFMetaData` `compactionStrategyClass(java.lang.Class<? extends AbstractCompactionStrategy> prop)`
`CFMetaData` `compactionStrategyOptions(java.util.Map<java.lang.String,java.lang.String> prop)`
`ColumnDefinition` `compactValueColumn()`
`static CFMetaData` `compile(java.lang.String cql, java.lang.String keyspace)`
`CompressionParameters` `compressionParameters()`
`CFMetaData` `compressionParameters(CompressionParameters prop)`
`static java.lang.Class<? extends AbstractCompactionStrategy>` `createCompactionStrategy(java.lang.String className)`
`AbstractCompactionStrategy` `createCompactionStrategyInstance(ColumnFamilyStore cfs)`
`CFMetaData` `dcLocalReadRepairChance(double prop)`
`CFMetaData` `defaultTimeToLive(int prop)`
`CFMetaData` `defaultValidator(AbstractType<?> prop)`
`RowMutation` `dropFromSchema(long timestamp)` Remove all CF attributes from schema
`CFMetaData` `droppedColumns(java.util.Map<java.nio.ByteBuffer,java.lang.Long> cols)`
`boolean` `equals(java.lang.Object obj)`
`static CFMetaData` `fromSchema(UntypedResultSet.Row result)` Deserialize CF metadata from low-level representation
`static CFMetaData` `fromThrift(CfDef cf_def)`
`static CFMetaData` `fromThriftCqlRow(CqlRow row)` Create CFMetaData from thrift `CqlRow` that contains columns from schema_columnfamilies.
`CFMetaData` `gcGraceSeconds(int prop)`
`double` `getBloomFilterFpChance()`
`CFMetaData.Caching` `getCaching()`
`CFDefinition` `getCfDef()`
`ColumnDefinition` `getColumnDefinition(java.nio.ByteBuffer name)` Returns the ColumnDefinition for `name`.
`AbstractType<?>` `getColumnDefinitionComparator(ColumnDefinition def)`
`ColumnDefinition` `getColumnDefinitionForIndex(java.lang.String indexName)`
`ColumnDefinition` `getColumnDefinitionFromColumnName(java.nio.ByteBuffer columnName)` Returns a ColumnDefinition given a full (internal) column name.
`java.lang.String` `getComment()`
`AbstractType<?>` `getComponentComparator(java.lang.Integer componentIndex, ColumnDefinition.Type type)`
`java.lang.String` `getCQL2KeyName()`
`double` `getDcLocalReadRepair()`
`static java.lang.String` `getDefaultIndexName(java.lang.String cfName, AbstractType<?> comparator, java.nio.ByteBuffer columnName)`
`int` `getDefaultTimeToLive()`
`AbstractType<?>` `getDefaultValidator()`
`java.util.Map<java.nio.ByteBuffer,java.lang.Long>` `getDroppedColumns()`
`int` `getGcGraceSeconds()`
`int` `getIndexInterval()`
`AbstractType<?>` `getKeyValidator()`
`java.lang.Integer` `getMaxCompactionThreshold()`
`int` `getMemtableFlushPeriod()`
`java.lang.Integer` `getMinCompactionThreshold()`
`java.util.Iterator<OnDiskAtom>` `getOnDiskIterator(java.io.DataInput in, int count, ColumnSerializer.Flag flag, int expireBefore, Descriptor.Version version)`
`java.util.Iterator<OnDiskAtom>` `getOnDiskIterator(java.io.DataInput in, int count, Descriptor.Version version)`
`double` `getReadRepairChance()`
`boolean` `getReplicateOnWrite()`
`CFMetaData.SpeculativeRetry` `getSpeculativeRetry()`
`ColumnNameBuilder` `getStaticColumnNameBuilder()`
`java.util.Map<java.lang.String,TriggerDefinition>` `getTriggers()`
`AbstractType<?>` `getValueValidator(java.nio.ByteBuffer column)`
`AbstractType<?>` `getValueValidator(ColumnDefinition columnDefinition)`
`int` `hashCode()`
`boolean` `hasStaticColumns()`
`java.lang.String` `indexColumnFamilyName(ColumnDefinition info)` generate a column family name for an index corresponding to the given column.
`CFMetaData` `indexInterval(int prop)`
`static boolean` `isIndexNameValid(java.lang.String name)`
`static boolean` `isNameValid(java.lang.String name)`
`boolean` `isSuper()`
`boolean` `isThriftCompatible()` Returns whether this CFMetaData can be returned to thrift.
`CFMetaData` `keyValidator(AbstractType<?> prop)`
`CFMetaData` `maxCompactionThreshold(int prop)`
`CFMetaData` `memtableFlushPeriod(int prop)`
`CFMetaData` `minCompactionThreshold(int prop)`
`static CFMetaData` `newIndexMetadata(CFMetaData parent, ColumnDefinition info, AbstractType<?> columnComparator)`
`ReadRepairDecision` `newReadRepairDecision()`
`java.util.List<ColumnDefinition>` `partitionKeyColumns()`
`boolean` `populateIoCacheOnFlush()`
`CFMetaData` `populateIoCacheOnFlush(boolean prop)`
`CFMetaData` `readRepairChance(double prop)`
`CFMetaData` `rebuild()`
`void` `recordColumnDrop(ColumnDefinition def)`
`java.lang.Iterable<ColumnDefinition>` `regularAndStaticColumns()`
`java.util.Set<ColumnDefinition>` `regularColumns()`
`void` `reload()`
`CFMetaData` `reloadSecondaryIndexMetadata(CFMetaData parent)`
`boolean` `removeColumnDefinition(ColumnDefinition def)`
`boolean` `removeTrigger(java.lang.String name)`
`static CFMetaData` `rename(CFMetaData cfm, java.lang.String newName)`
`void` `renameColumn(java.nio.ByteBuffer from, java.lang.String strFrom, java.nio.ByteBuffer to, java.lang.String strTo)`
`CFMetaData` `replicateOnWrite(boolean prop)`
`CFMetaData` `speculativeRetry(CFMetaData.SpeculativeRetry prop)`
`java.util.Set<ColumnDefinition>` `staticColumns()`
`RowMutation` `toSchema(long timestamp)` Convert current metadata into schema mutation
`void` `toSchema(RowMutation rm, long timestamp)`
`RowMutation` `toSchemaUpdate(CFMetaData newState, long modificationTimestamp, boolean fromThrift)` Create schema mutations to update this metadata to provided new state.
`java.lang.String` `toString()`
`CfDef` `toThrift()`
`CFMetaData` `triggers(java.util.Map<java.lang.String,TriggerDefinition> prop)`
`CFMetaData` `validate()`
`void` `validateColumns(java.lang.Iterable<Column> columns)`
`static void` `validateCompactionOptions(java.lang.Class<? extends AbstractCompactionStrategy> strategyClass, java.util.Map<java.lang.String,java.lang.String> options)`
`void` `validateCompatility(CFMetaData cfm)`

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

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

### Field Detail

#### DEFAULT_READ_REPAIR_CHANCE

    public static final double DEFAULT_READ_REPAIR_CHANCE

See Also:
  Constant Field Values

#### DEFAULT_DCLOCAL_READ_REPAIR_CHANCE

    public static final double DEFAULT_DCLOCAL_READ_REPAIR_CHANCE

See Also:
  Constant Field Values

#### DEFAULT_REPLICATE_ON_WRITE

    public static final boolean DEFAULT_REPLICATE_ON_WRITE

See Also:
  Constant Field Values

#### DEFAULT_GC_GRACE_SECONDS

    public static final int DEFAULT_GC_GRACE_SECONDS

See Also:
  Constant Field Values

#### DEFAULT_MIN_COMPACTION_THRESHOLD

    public static final int DEFAULT_MIN_COMPACTION_THRESHOLD

See Also:
  Constant Field Values

#### DEFAULT_MAX_COMPACTION_THRESHOLD

    public static final int DEFAULT_MAX_COMPACTION_THRESHOLD

See Also:
  Constant Field Values

#### DEFAULT_COMPACTION_STRATEGY_CLASS

    public static final java.lang.Class<? extends AbstractCompactionStrategy> DEFAULT_COMPACTION_STRATEGY_CLASS

#### DEFAULT_CACHING_STRATEGY

    public static final CFMetaData.Caching DEFAULT_CACHING_STRATEGY

#### DEFAULT_DEFAULT_TIME_TO_LIVE

    public static final int DEFAULT_DEFAULT_TIME_TO_LIVE

See Also:
  Constant Field Values

#### DEFAULT_SPECULATIVE_RETRY

    public static final CFMetaData.SpeculativeRetry DEFAULT_SPECULATIVE_RETRY

#### DEFAULT_INDEX_INTERVAL

    public static final int DEFAULT_INDEX_INTERVAL

See Also:
  Constant Field Values

#### DEFAULT_POPULATE_IO_CACHE_ON_FLUSH

    public static final boolean DEFAULT_POPULATE_IO_CACHE_ON_FLUSH

See Also:
  Constant Field Values

#### DEFAULT_COMPRESSOR

    public static final java.lang.String DEFAULT_COMPRESSOR

#### IndexCf

    public static final CFMetaData IndexCf

#### CounterIdCf

    public static final CFMetaData CounterIdCf

#### SchemaKeyspacesCf

    public static final CFMetaData SchemaKeyspacesCf

#### SchemaColumnFamiliesCf

    public static final CFMetaData SchemaColumnFamiliesCf

#### SchemaColumnsCf

    public static final CFMetaData SchemaColumnsCf

#### SchemaTriggersCf

    public static final CFMetaData SchemaTriggersCf

#### HintsCf

    public static final CFMetaData HintsCf

#### PeersCf

    public static final CFMetaData PeersCf

#### PeerEventsCf

    public static final CFMetaData PeerEventsCf

#### LocalCf

    public static final CFMetaData LocalCf

#### TraceSessionsCf

    public static final CFMetaData TraceSessionsCf

#### TraceEventsCf

    public static final CFMetaData TraceEventsCf

#### BatchlogCf

    public static final CFMetaData BatchlogCf

#### RangeXfersCf

    public static final CFMetaData RangeXfersCf

#### CompactionLogCf

    public static final CFMetaData CompactionLogCf

#### PaxosCf

    public static final CFMetaData PaxosCf

#### SSTableActivityCF

    public static final CFMetaData SSTableActivityCF

#### CompactionHistoryCf

    public static final CFMetaData CompactionHistoryCf

#### cfId

    public final java.util.UUID cfId

#### ksName

    public final java.lang.String ksName

#### cfName

    public final java.lang.String cfName

#### cfType

    public final ColumnFamilyType cfType

#### comparator

    public volatile AbstractType<?> comparator

#### DEFAULT_KEY_ALIAS

    public static final java.lang.String DEFAULT_KEY_ALIAS

See Also:
  Constant Field Values

#### DEFAULT_COLUMN_ALIAS

    public static final java.lang.String DEFAULT_COLUMN_ALIAS

See Also:
  Constant Field Values

#### DEFAULT_VALUE_ALIAS

    public static final java.lang.String DEFAULT_VALUE_ALIAS

See Also:
  Constant Field Values

#### compactionStrategyClass

    public volatile java.lang.Class<? extends AbstractCompactionStrategy> compactionStrategyClass

#### compactionStrategyOptions

    public volatile java.util.Map<java.lang.String,java.lang.String> compactionStrategyOptions

#### compressionParameters

    public volatile CompressionParameters compressionParameters

### Constructor Detail

#### CFMetaData

    public CFMetaData(java.lang.String keyspace,
              java.lang.String name,
              ColumnFamilyType type,
              AbstractType<?> comp,
              AbstractType<?> subcc)

#### CFMetaData

    public CFMetaData(java.lang.String keyspace,
              java.lang.String name,
              ColumnFamilyType type,
              AbstractType<?> comp)

### Method Detail

#### comment

    public CFMetaData comment(java.lang.String prop)

#### readRepairChance

    public CFMetaData readRepairChance(double prop)

#### dcLocalReadRepairChance

    public CFMetaData dcLocalReadRepairChance(double prop)

#### replicateOnWrite

    public CFMetaData replicateOnWrite(boolean prop)

#### gcGraceSeconds

    public CFMetaData gcGraceSeconds(int prop)

#### defaultValidator

    public CFMetaData defaultValidator(AbstractType<?> prop)

#### keyValidator

    public CFMetaData keyValidator(AbstractType<?> prop)

#### minCompactionThreshold

    public CFMetaData minCompactionThreshold(int prop)

#### maxCompactionThreshold

    public CFMetaData maxCompactionThreshold(int prop)

#### columnMetadata

    public CFMetaData columnMetadata(java.util.Map<java.nio.ByteBuffer,ColumnDefinition> prop)

#### compactionStrategyClass

    public CFMetaData compactionStrategyClass(java.lang.Class<? extends AbstractCompactionStrategy> prop)

#### compactionStrategyOptions

    public CFMetaData compactionStrategyOptions(java.util.Map<java.lang.String,java.lang.String> prop)

#### compressionParameters

    public CFMetaData compressionParameters(CompressionParameters prop)

#### bloomFilterFpChance

    public CFMetaData bloomFilterFpChance(java.lang.Double prop)

#### caching

    public CFMetaData caching(CFMetaData.Caching prop)

#### indexInterval

    public CFMetaData indexInterval(int prop)

#### memtableFlushPeriod

    public CFMetaData memtableFlushPeriod(int prop)

#### defaultTimeToLive

    public CFMetaData defaultTimeToLive(int prop)

#### speculativeRetry

    public CFMetaData speculativeRetry(CFMetaData.SpeculativeRetry prop)

#### populateIoCacheOnFlush

    public CFMetaData populateIoCacheOnFlush(boolean prop)

#### droppedColumns

    public CFMetaData droppedColumns(java.util.Map<java.nio.ByteBuffer,java.lang.Long> cols)

#### triggers

    public CFMetaData triggers(java.util.Map<java.lang.String,TriggerDefinition> prop)

#### getTriggers

    public java.util.Map<java.lang.String,TriggerDefinition> getTriggers()

#### compile

    public static CFMetaData compile(java.lang.String cql,
                     java.lang.String keyspace)

#### newIndexMetadata

    public static CFMetaData newIndexMetadata(CFMetaData parent,
                              ColumnDefinition info,
                              AbstractType<?> columnComparator)

#### reloadSecondaryIndexMetadata

    public CFMetaData reloadSecondaryIndexMetadata(CFMetaData parent)

#### clone

    public CFMetaData clone()

Overrides:
  `clone` in class `java.lang.Object`

#### rename

    public static CFMetaData rename(CFMetaData cfm,
                    java.lang.String newName)

#### indexColumnFamilyName

    public java.lang.String indexColumnFamilyName(ColumnDefinition info)

generate a column family name for an index corresponding to the given column. This is NOT the same as the index's name! This is only used in sstable filenames and is not exposed to users.

Parameters:
  `info` - A definition of the column with index
Returns:
  name of the index ColumnFamily

#### getComment

    public java.lang.String getComment()

#### isSuper

    public boolean isSuper()

#### getReadRepairChance

    public double getReadRepairChance()

#### getDcLocalReadRepair

    public double getDcLocalReadRepair()

#### newReadRepairDecision

    public ReadRepairDecision newReadRepairDecision()

#### getReplicateOnWrite

    public boolean getReplicateOnWrite()

#### populateIoCacheOnFlush

    public boolean populateIoCacheOnFlush()

#### getGcGraceSeconds

    public int getGcGraceSeconds()

#### getDefaultValidator

    public AbstractType<?> getDefaultValidator()

#### getKeyValidator

    public AbstractType<?> getKeyValidator()

#### getMinCompactionThreshold

    public java.lang.Integer getMinCompactionThreshold()

#### getMaxCompactionThreshold

    public java.lang.Integer getMaxCompactionThreshold()

#### getCQL2KeyName

    public java.lang.String getCQL2KeyName()

#### compressionParameters

    public CompressionParameters compressionParameters()

#### allColumns

    public java.util.Collection<ColumnDefinition> allColumns()

#### partitionKeyColumns

    public java.util.List<ColumnDefinition> partitionKeyColumns()

#### clusteringKeyColumns

    public java.util.List<ColumnDefinition> clusteringKeyColumns()

#### regularColumns

    public java.util.Set<ColumnDefinition> regularColumns()

#### staticColumns

    public java.util.Set<ColumnDefinition> staticColumns()

#### regularAndStaticColumns

    public java.lang.Iterable<ColumnDefinition> regularAndStaticColumns()

#### compactValueColumn

    public ColumnDefinition compactValueColumn()

#### getBloomFilterFpChance

    public double getBloomFilterFpChance()

#### getCaching

    public CFMetaData.Caching getCaching()

#### getIndexInterval

    public int getIndexInterval()

#### getSpeculativeRetry

    public CFMetaData.SpeculativeRetry getSpeculativeRetry()

#### getMemtableFlushPeriod

    public int getMemtableFlushPeriod()

#### getDefaultTimeToLive

    public int getDefaultTimeToLive()

#### getDroppedColumns

    public java.util.Map<java.nio.ByteBuffer,java.lang.Long> getDroppedColumns()

#### equals

    public boolean equals(java.lang.Object obj)

Overrides:
  `equals` in class `java.lang.Object`

#### hashCode

    public int hashCode()

Overrides:
  `hashCode` in class `java.lang.Object`

#### getValueValidator

    public AbstractType<?> getValueValidator(java.nio.ByteBuffer column)

#### getValueValidator

    public AbstractType<?> getValueValidator(ColumnDefinition columnDefinition)

#### applyImplicitDefaults

    public static void applyImplicitDefaults(CfDef cf_def)

applies implicit defaults to cf definition. useful in updates

#### fromThrift

    public static CFMetaData fromThrift(CfDef cf_def)
                                 throws InvalidRequestException,
                                        ConfigurationException

Throws:
  `InvalidRequestException`
  `ConfigurationException`

#### fromThriftCqlRow

    public static CFMetaData fromThriftCqlRow(CqlRow row)

Create CFMetaData from thrift `CqlRow` that contains columns from schema_columnfamilies.

Parameters:
  `row` - CqlRow containing columns from schema_columnfamilies.
Returns:
  CFMetaData derived from CqlRow

#### reload

    public void reload()

#### apply

    public void apply(CFMetaData cfm)
               throws ConfigurationException

Updates CFMetaData in-place to match cf_def *Note*: This method left public only for DefsTest, don't use directly!

Throws:
  `ConfigurationException` - if ks/cf names or cf ids didn't match

#### validateCompatility

    public void validateCompatility(CFMetaData cfm)
                             throws ConfigurationException

Throws:
  `ConfigurationException`

#### validateCompactionOptions

    public static void validateCompactionOptions(java.lang.Class<? extends AbstractCompactionStrategy> strategyClass,
                                 java.util.Map<java.lang.String,java.lang.String> options)
                                          throws ConfigurationException

Throws:
  `ConfigurationException`

#### createCompactionStrategy

    public static java.lang.Class<? extends AbstractCompactionStrategy> createCompactionStrategy(java.lang.String className)
                                                                                          throws ConfigurationException

Throws:
  `ConfigurationException`

#### createCompactionStrategyInstance

    public AbstractCompactionStrategy createCompactionStrategyInstance(ColumnFamilyStore cfs)

#### toThrift

    public CfDef toThrift()

#### getColumnDefinition

    public ColumnDefinition getColumnDefinition(java.nio.ByteBuffer name)

Returns the ColumnDefinition for `name`. Note that `name` correspond to the returned ColumnDefinition name, and in particular for composite cfs, it should usually be only a component of the full column name. If you have a full column name, use getColumnDefinitionFromColumnName instead.

#### getColumnDefinitionFromColumnName

    public ColumnDefinition getColumnDefinitionFromColumnName(java.nio.ByteBuffer columnName)

Returns a ColumnDefinition given a full (internal) column name.

#### getColumnDefinitionForIndex

    public ColumnDefinition getColumnDefinitionForIndex(java.lang.String indexName)

#### addDefaultIndexNames

    public void addDefaultIndexNames()
                              throws ConfigurationException

Convert a null index_name to appropriate default name according to column status

Throws:
  `ConfigurationException`

#### getDefaultIndexName

    public static java.lang.String getDefaultIndexName(java.lang.String cfName,
                                       AbstractType<?> comparator,
                                       java.nio.ByteBuffer columnName)

#### getOnDiskIterator

    public java.util.Iterator<OnDiskAtom> getOnDiskIterator(java.io.DataInput in,
                                                   int count,
                                                   Descriptor.Version version)

#### getOnDiskIterator

    public java.util.Iterator<OnDiskAtom> getOnDiskIterator(java.io.DataInput in,
                                                   int count,
                                                   ColumnSerializer.Flag flag,
                                                   int expireBefore,
                                                   Descriptor.Version version)

#### isNameValid

    public static boolean isNameValid(java.lang.String name)

#### isIndexNameValid

    public static boolean isIndexNameValid(java.lang.String name)

#### validate

    public CFMetaData validate()
                        throws ConfigurationException

Throws:
  `ConfigurationException`

#### toSchemaUpdate

    public RowMutation toSchemaUpdate(CFMetaData newState,
                             long modificationTimestamp,
                             boolean fromThrift)

Create schema mutations to update this metadata to provided new state.

Parameters:
  `newState` - The new metadata (for the same CF)
  `modificationTimestamp` - Timestamp to use for mutation
  `fromThrift` - whether the newState comes from thrift
Returns:
  Difference between attributes in form of schema mutation

#### dropFromSchema

    public RowMutation dropFromSchema(long timestamp)

Remove all CF attributes from schema

Parameters:
  `timestamp` - Timestamp to use
Returns:
  RowMutation to use to completely remove cf from schema

#### toSchema

    public void toSchema(RowMutation rm,
                long timestamp)

#### addColumnMetadataFromAliases

    public void addColumnMetadataFromAliases(java.util.List<java.nio.ByteBuffer> aliases,
                                    AbstractType<?> comparator,
                                    ColumnDefinition.Type type)

#### fromSchema

    public static CFMetaData fromSchema(UntypedResultSet.Row result)

Deserialize CF metadata from low-level representation

Returns:
  Thrift-based metadata deserialized from schema

#### toSchema

    public RowMutation toSchema(long timestamp)
                         throws ConfigurationException

Convert current metadata into schema mutation

Parameters:
  `timestamp` - Timestamp to use
Returns:
  Low-level representation of the CF
Throws:
  `ConfigurationException` - if any of the attributes didn't pass validation

#### getColumnDefinitionComparator

    public AbstractType<?> getColumnDefinitionComparator(ColumnDefinition def)

#### getComponentComparator

    public AbstractType<?> getComponentComparator(java.lang.Integer componentIndex,
                                         ColumnDefinition.Type type)

#### addColumnDefinition

    public void addColumnDefinition(ColumnDefinition def)
                             throws ConfigurationException

Throws:
  `ConfigurationException`

#### addOrReplaceColumnDefinition

    public void addOrReplaceColumnDefinition(ColumnDefinition def)

#### removeColumnDefinition

    public boolean removeColumnDefinition(ColumnDefinition def)

#### addTriggerDefinition

    public void addTriggerDefinition(TriggerDefinition def)
                              throws ConfigurationException

Throws:
  `ConfigurationException`

#### removeTrigger

    public boolean removeTrigger(java.lang.String name)

#### recordColumnDrop

    public void recordColumnDrop(ColumnDefinition def)

#### renameColumn

    public void renameColumn(java.nio.ByteBuffer from,
                    java.lang.String strFrom,
                    java.nio.ByteBuffer to,
                    java.lang.String strTo)
                      throws InvalidRequestException

Throws:
  `InvalidRequestException`

#### rebuild

    public CFMetaData rebuild()

#### getCfDef

    public CFDefinition getCfDef()

#### isThriftCompatible

    public boolean isThriftCompatible()

Returns whether this CFMetaData can be returned to thrift.

#### hasStaticColumns

    public boolean hasStaticColumns()

#### getStaticColumnNameBuilder

    public ColumnNameBuilder getStaticColumnNameBuilder()

#### validateColumns

    public void validateColumns(java.lang.Iterable<Column> columns)

#### toString

    public java.lang.String toString()

Overrides:
  `toString` in class `java.lang.Object`