org.apache.cassandra.config

## Class CFMetaData

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

    public final class CFMetaData
    extends java.lang.Object

This class can be tricky to modify. Please read http://wiki.apache.org/cassandra/ConfigurationNotes for how to do so safely.

### Nested Class Summary

Nested Classes
`static class` `CFMetaData.SpeculativeRetry`

### Field Summary

Fields
`java.util.UUID` `cfId`
`java.lang.String` `cfName`
`ColumnFamilyType` `cfType`
`java.lang.Class<? extends AbstractCompactionStrategy>` `compactionStrategyClass`
`java.util.Map<java.lang.String,java.lang.String>` `compactionStrategyOptions`
`CellNameType` `comparator`
`CompressionParameters` `compressionParameters`
`static CachingOptions` `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 java.lang.String` `DEFAULT_KEY_ALIAS`
`static int` `DEFAULT_MAX_COMPACTION_THRESHOLD`
`static int` `DEFAULT_MAX_INDEX_INTERVAL`
`static int` `DEFAULT_MIN_COMPACTION_THRESHOLD`
`static int` `DEFAULT_MIN_INDEX_INTERVAL`
`static double` `DEFAULT_READ_REPAIR_CHANCE`
`static CFMetaData.SpeculativeRetry` `DEFAULT_SPECULATIVE_RETRY`
`static java.lang.String` `DEFAULT_VALUE_ALIAS`
`byte[]` `ksAndCFBytes`
`Pair<java.lang.String,java.lang.String>` `ksAndCFName`
`java.lang.String` `ksName`

### Constructor Summary

Constructors
Constructor and Description
`CFMetaData(java.lang.String keyspace, java.lang.String name, ColumnFamilyType type, CellNameType comp)` Create new ColumnFamily metadata with generated random ID.
`CFMetaData(java.lang.String keyspace, java.lang.String name, ColumnFamilyType type, CellNameType comp, java.util.UUID id)`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
`CFMetaData` `addAllColumnDefinitions(java.util.Collection<ColumnDefinition> defs)`
`CFMetaData` `addColumnDefinition(ColumnDefinition def)`
`void` `addDefaultIndexNames()` Convert a null index_name to appropriate default name according to column status
`CFMetaData` `addOrReplaceColumnDefinition(ColumnDefinition def)`
`void` `addTriggerDefinition(TriggerDefinition def)`
`java.util.Collection<ColumnDefinition>` `allColumns()`
`java.util.Iterator<ColumnDefinition>` `allColumnsInSelectOrder()`
`boolean` `apply(CFMetaData cfm)` Updates CFMetaData in-place to match cfm
`CFMetaData` `bloomFilterFpChance(double prop)`
`CFMetaData` `caching(CachingOptions prop)`
`static boolean` `calculateIsDense(AbstractType<?> comparator, java.util.Collection<ColumnDefinition> defs)`
`java.util.List<ColumnDefinition>` `clusteringColumns()`
`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)`
`boolean` `containsTriggerDefinition(TriggerDefinition def)`
`CFMetaData` `copy()`
`CFMetaData` `copy(java.util.UUID newCfId)` Clones the CFMetaData, but sets a different cfId
`static CFMetaData` `copyOpts(CFMetaData newCFMD, CFMetaData oldCFMD)`
`static java.lang.Class<? extends AbstractCompactionStrategy>` `createCompactionStrategy(java.lang.String className)`
`static AbstractCompactionStrategy` `createCompactionStrategyInstance(java.lang.Class<? extends AbstractCompactionStrategy> compactionStrategyClass, ColumnFamilyStore cfs, java.util.Map<java.lang.String,java.lang.String> compactionStrategyOptions)`
`AbstractCompactionStrategy` `createCompactionStrategyInstance(ColumnFamilyStore cfs)` Deprecated.
`CFMetaData` `dcLocalReadRepairChance(double prop)`
`CFMetaData` `defaultTimeToLive(int prop)`
`CFMetaData` `defaultValidator(AbstractType<?> prop)`
`static CFMetaData` `denseCFMetaData(java.lang.String keyspace, java.lang.String name, AbstractType<?> comp)`
`static CFMetaData` `denseCFMetaData(java.lang.String keyspace, java.lang.String name, AbstractType<?> comp, AbstractType<?> subcc)`
`CFMetaData` `droppedColumns(java.util.Map<ColumnIdentifier,java.lang.Long> cols)`
`boolean` `equals(java.lang.Object o)`
`CFMetaData` `gcGraceSeconds(int prop)`
`static java.util.UUID` `generateLegacyCfId(java.lang.String ksName, java.lang.String cfName)` Generates deterministic UUID from keyspace/columnfamily name pair.
`double` `getBloomFilterFpChance()`
`CachingOptions` `getCaching()`
`ColumnDefinition` `getColumnDefinition(java.nio.ByteBuffer name)`
`ColumnDefinition` `getColumnDefinition(CellName cellName)` Returns a ColumnDefinition given a cell name.
`ColumnDefinition` `getColumnDefinition(ColumnIdentifier name)` Returns the ColumnDefinition for `name`.
`AbstractType<?>` `getColumnDefinitionComparator(ColumnDefinition def)`
`ColumnDefinition` `getColumnDefinitionForIndex(java.lang.String indexName)`
`java.util.Map<java.nio.ByteBuffer,ColumnDefinition>` `getColumnMetadata()`
`java.lang.String` `getComment()`
`AbstractType<?>` `getComponentComparator(java.lang.Integer componentIndex, ColumnDefinition.Kind kind)`
`double` `getDcLocalReadRepairChance()`
`static java.lang.String` `getDefaultIndexName(java.lang.String cfName, ColumnIdentifier columnName)`
`int` `getDefaultTimeToLive()`
`AbstractType<?>` `getDefaultValidator()`
`java.util.Map<ColumnIdentifier,java.lang.Long>` `getDroppedColumns()`
`int` `getGcGraceSeconds()`
`java.lang.Boolean` `getIsDense()`
`AbstractType<?>` `getKeyValidator()`
`CType` `getKeyValidatorAsCType()`
`java.lang.Integer` `getMaxCompactionThreshold()`
`int` `getMaxIndexInterval()`
`int` `getMemtableFlushPeriod()`
`java.lang.Integer` `getMinCompactionThreshold()`
`int` `getMinIndexInterval()`
`AtomDeserializer` `getOnDiskDeserializer(java.io.DataInput in, Version version)`
`java.util.Iterator<OnDiskAtom>` `getOnDiskIterator(FileDataInput in, ColumnSerializer.Flag flag, int expireBefore, Version version)`
`java.util.Iterator<OnDiskAtom>` `getOnDiskIterator(FileDataInput in, Version version)`
`java.lang.String` `getParentColumnFamilyName()`
`double` `getReadRepairChance()`
`CFMetaData.SpeculativeRetry` `getSpeculativeRetry()`
`java.util.Map<java.lang.String,TriggerDefinition>` `getTriggers()`
`AbstractType<?>` `getValueValidator(CellName cellName)`
`int` `hashCode()`
`boolean` `hasStaticColumns()`
`java.lang.String` `indexColumnFamilyName(ColumnDefinition info)` generate a column family name for an index corresponding to the given column.
`boolean` `isCounter()`
`boolean` `isCQL3Table()`
`CFMetaData` `isDense(java.lang.Boolean prop)`
`static boolean` `isIndexNameValid(java.lang.String name)`
`static boolean` `isNameValid(java.lang.String name)`
`boolean` `isPurged()`
`boolean` `isSecondaryIndex()` The '.' char is the only way to identify if the CFMetadata is for a secondary index
`boolean` `isSuper()`
`boolean` `isThriftCompatible()` Returns whether this CFMetaData can be returned to thrift.
`CFMetaData` `keyValidator(AbstractType<?> prop)`
`static AbstractType<?>` `makeRawAbstractType(AbstractType<?> comparator, AbstractType<?> subComparator)`
`CFMetaData` `maxCompactionThreshold(int prop)`
`CFMetaData` `maxIndexInterval(int prop)`
`CFMetaData` `memtableFlushPeriod(int prop)`
`CFMetaData` `minCompactionThreshold(int prop)`
`CFMetaData` `minIndexInterval(int prop)`
`static CFMetaData` `newIndexMetadata(CFMetaData parent, ColumnDefinition info, CellNameType indexComparator)` Creates CFMetaData for secondary index CF.
`ReadRepairDecision` `newReadRepairDecision()`
`java.util.List<ColumnDefinition>` `partitionKeyColumns()`
`CFMetaData` `readRepairChance(double prop)`
`CFMetaData` `rebuild()`
`void` `recordColumnDrop(ColumnDefinition def)`
`java.lang.Iterable<ColumnDefinition>` `regularAndStaticColumns()`
`java.util.Set<ColumnDefinition>` `regularColumns()`
`boolean` `reload()` Updates this object in place to match the definition in the system schema tables.
`CFMetaData` `reloadSecondaryIndexMetadata(CFMetaData parent)`
`boolean` `removeColumnDefinition(ColumnDefinition def)`
`boolean` `removeTrigger(java.lang.String name)`
`void` `renameColumn(ColumnIdentifier from, ColumnIdentifier to)`
`static CFMetaData` `sparseCFMetaData(java.lang.String keyspace, java.lang.String name, AbstractType<?> comp)`
`CFMetaData` `speculativeRetry(CFMetaData.SpeculativeRetry prop)`
`java.util.Set<ColumnDefinition>` `staticColumns()`
`java.lang.String` `toString()`
`CFMetaData` `triggers(java.util.Map<java.lang.String,TriggerDefinition> prop)`
`CFMetaData` `validate()`
`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

`clone, 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_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 CachingOptions 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_MIN_INDEX_INTERVAL

    public static final int DEFAULT_MIN_INDEX_INTERVAL

See Also:
  Constant Field Values

#### DEFAULT_MAX_INDEX_INTERVAL

    public static final int DEFAULT_MAX_INDEX_INTERVAL

See Also:
  Constant Field Values

#### DEFAULT_COMPRESSOR

    public static final java.lang.String DEFAULT_COMPRESSOR

#### cfId

    public final java.util.UUID cfId

#### ksName

    public final java.lang.String ksName

#### cfName

    public final java.lang.String cfName

#### ksAndCFName

    public final Pair<java.lang.String,java.lang.String> ksAndCFName

#### ksAndCFBytes

    public final byte[] ksAndCFBytes

#### cfType

    public final ColumnFamilyType cfType

#### comparator

    public volatile CellNameType 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,
                      CellNameType comp)

Create new ColumnFamily metadata with generated random ID. When loading from existing schema, use CFMetaData

Parameters:
  `keyspace` - keyspace name
  `name` - column family name
  `comp` - default comparator

#### CFMetaData

    public CFMetaData(java.lang.String keyspace,
                      java.lang.String name,
                      ColumnFamilyType type,
                      CellNameType comp,
                      java.util.UUID id)

### Method Detail

#### comment

    public CFMetaData comment(java.lang.String prop)

#### readRepairChance

    public CFMetaData readRepairChance(double prop)

#### dcLocalReadRepairChance

    public CFMetaData dcLocalReadRepairChance(double 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)

#### 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(double prop)

#### caching

    public CFMetaData caching(CachingOptions prop)

#### minIndexInterval

    public CFMetaData minIndexInterval(int prop)

#### maxIndexInterval

    public CFMetaData maxIndexInterval(int prop)

#### memtableFlushPeriod

    public CFMetaData memtableFlushPeriod(int prop)

#### defaultTimeToLive

    public CFMetaData defaultTimeToLive(int prop)

#### speculativeRetry

    public CFMetaData speculativeRetry(CFMetaData.SpeculativeRetry prop)

#### droppedColumns

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

#### triggers

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

#### isDense

    public CFMetaData isDense(java.lang.Boolean prop)

#### denseCFMetaData

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

#### sparseCFMetaData

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

#### denseCFMetaData

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

#### makeRawAbstractType

    public static AbstractType<?> makeRawAbstractType(AbstractType<?> comparator,
                                                      AbstractType<?> subComparator)

#### getTriggers

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

#### compile

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

#### generateLegacyCfId

    public static java.util.UUID generateLegacyCfId(java.lang.String ksName,
                                                    java.lang.String cfName)

Generates deterministic UUID from keyspace/columnfamily name pair. This is used to generate the same UUID for C* version < 2.1 Since 2.1, this is only used for system columnfamilies and tests.

#### newIndexMetadata

    public static CFMetaData newIndexMetadata(CFMetaData parent,
                                              ColumnDefinition info,
                                              CellNameType indexComparator)

Creates CFMetaData for secondary index CF. Secondary index CF has the same CF ID as parent's.

Parameters:
  `parent` - Parent CF where secondary index is created
  `info` - Column definition containing secondary index definition
  `indexComparator` - Comparator for secondary index
Returns:
  CFMetaData for secondary index

#### reloadSecondaryIndexMetadata

    public CFMetaData reloadSecondaryIndexMetadata(CFMetaData parent)

#### copy

    public CFMetaData copy()

#### copy

    public CFMetaData copy(java.util.UUID newCfId)

Clones the CFMetaData, but sets a different cfId

Parameters:
  `newCfId` - the cfId for the cloned CFMetaData
Returns:
  the cloned CFMetaData instance with the new cfId

#### copyOpts

    public static CFMetaData copyOpts(CFMetaData newCFMD,
                                      CFMetaData oldCFMD)

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

#### isSecondaryIndex

    public boolean isSecondaryIndex()

The '.' char is the only way to identify if the CFMetadata is for a secondary index

#### getColumnMetadata

    public java.util.Map<java.nio.ByteBuffer,ColumnDefinition> getColumnMetadata()

#### getParentColumnFamilyName

    public java.lang.String getParentColumnFamilyName()

Returns:
  The name of the parent cf if this is a seconday index

#### getReadRepairChance

    public double getReadRepairChance()

#### getDcLocalReadRepairChance

    public double getDcLocalReadRepairChance()

#### newReadRepairDecision

    public ReadRepairDecision newReadRepairDecision()

#### getGcGraceSeconds

    public int getGcGraceSeconds()

#### getDefaultValidator

    public AbstractType<?> getDefaultValidator()

#### getKeyValidator

    public AbstractType<?> getKeyValidator()

#### getMinCompactionThreshold

    public java.lang.Integer getMinCompactionThreshold()

#### getMaxCompactionThreshold

    public java.lang.Integer getMaxCompactionThreshold()

#### compressionParameters

    public CompressionParameters compressionParameters()

#### allColumns

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

#### allColumnsInSelectOrder

    public java.util.Iterator<ColumnDefinition> allColumnsInSelectOrder()

#### partitionKeyColumns

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

#### clusteringColumns

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

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

#### getKeyValidatorAsCType

    public CType getKeyValidatorAsCType()

#### getBloomFilterFpChance

    public double getBloomFilterFpChance()

#### getCaching

    public CachingOptions getCaching()

#### getMinIndexInterval

    public int getMinIndexInterval()

#### getMaxIndexInterval

    public int getMaxIndexInterval()

#### getSpeculativeRetry

    public CFMetaData.SpeculativeRetry getSpeculativeRetry()

#### getMemtableFlushPeriod

    public int getMemtableFlushPeriod()

#### getDefaultTimeToLive

    public int getDefaultTimeToLive()

#### getDroppedColumns

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

#### getIsDense

    public java.lang.Boolean getIsDense()

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

#### getValueValidator

    public AbstractType<?> getValueValidator(CellName cellName)

#### reload

    public boolean reload()

Updates this object in place to match the definition in the system schema tables.

Returns:
  true if any columns were added, removed, or altered; otherwise, false is returned

#### apply

    public boolean apply(CFMetaData cfm)
                  throws ConfigurationException

Updates CFMetaData in-place to match cfm

Returns:
  true if any columns were added, removed, or altered; otherwise, false is returned
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 static AbstractCompactionStrategy createCompactionStrategyInstance(java.lang.Class<? extends AbstractCompactionStrategy> compactionStrategyClass,
                                                                              ColumnFamilyStore cfs,
                                                                              java.util.Map<java.lang.String,java.lang.String> compactionStrategyOptions)

#### createCompactionStrategyInstance

    @Deprecated
    public AbstractCompactionStrategy createCompactionStrategyInstance(ColumnFamilyStore cfs)

Deprecated.

#### getColumnDefinition

    public ColumnDefinition getColumnDefinition(ColumnIdentifier name)

Returns the ColumnDefinition for `name`.

#### getColumnDefinition

    public ColumnDefinition getColumnDefinition(java.nio.ByteBuffer name)

#### getColumnDefinition

    public ColumnDefinition getColumnDefinition(CellName cellName)

Returns a ColumnDefinition given a cell 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,
                                                       ColumnIdentifier columnName)

#### getOnDiskIterator

    public java.util.Iterator<OnDiskAtom> getOnDiskIterator(FileDataInput in,
                                                            Version version)

#### getOnDiskIterator

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

#### getOnDiskDeserializer

    public AtomDeserializer getOnDiskDeserializer(java.io.DataInput in,
                                                  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`

#### isPurged

    public boolean isPurged()

#### getColumnDefinitionComparator

    public AbstractType<?> getColumnDefinitionComparator(ColumnDefinition def)

#### getComponentComparator

    public AbstractType<?> getComponentComparator(java.lang.Integer componentIndex,
                                                  ColumnDefinition.Kind kind)

#### addAllColumnDefinitions

    public CFMetaData addAllColumnDefinitions(java.util.Collection<ColumnDefinition> defs)

#### addColumnDefinition

    public CFMetaData addColumnDefinition(ColumnDefinition def)
                                   throws ConfigurationException

Throws:
  `ConfigurationException`

#### addOrReplaceColumnDefinition

    public CFMetaData addOrReplaceColumnDefinition(ColumnDefinition def)

#### removeColumnDefinition

    public boolean removeColumnDefinition(ColumnDefinition def)

#### addTriggerDefinition

    public void addTriggerDefinition(TriggerDefinition def)
                              throws InvalidRequestException

Throws:
  `InvalidRequestException`

#### containsTriggerDefinition

    public boolean containsTriggerDefinition(TriggerDefinition def)

#### removeTrigger

    public boolean removeTrigger(java.lang.String name)

#### recordColumnDrop

    public void recordColumnDrop(ColumnDefinition def)

#### renameColumn

    public void renameColumn(ColumnIdentifier from,
                             ColumnIdentifier to)
                      throws InvalidRequestException

Throws:
  `InvalidRequestException`

#### rebuild

    public CFMetaData rebuild()

#### calculateIsDense

    public static boolean calculateIsDense(AbstractType<?> comparator,
                                           java.util.Collection<ColumnDefinition> defs)

#### isCQL3Table

    public boolean isCQL3Table()

#### isThriftCompatible

    public boolean isThriftCompatible()

Returns whether this CFMetaData can be returned to thrift.

#### isCounter

    public boolean isCounter()

#### hasStaticColumns

    public boolean hasStaticColumns()

#### toString

    public java.lang.String toString()

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