org.apache.cassandra.io.sstable.metadata

## Interface IMetadataSerializer

All Known Implementing Classes:
  LegacyMetadataSerializer, MetadataSerializer

    public interface IMetadataSerializer

Interface for SSTable metadata serializer

### Method Summary

All Methods Instance Methods Abstract Methods
`java.util.Map<MetadataType,MetadataComponent>` `deserialize(Descriptor descriptor, java.util.EnumSet<MetadataType> types)` Deserialize specified metadata components from given descriptor.
`MetadataComponent` `deserialize(Descriptor descriptor, MetadataType type)` Deserialized only metadata component specified from given descriptor.
`void` `mutateLevel(Descriptor descriptor, int newLevel)` Mutate SSTable level
`void` `mutateRepairedAt(Descriptor descriptor, long newRepairedAt)` Mutate repairedAt time
`void` `serialize(java.util.Map<MetadataType,MetadataComponent> components, DataOutputPlus out, Version version)` Serialize given metadata components

### Method Detail

#### serialize

    void serialize(java.util.Map<MetadataType,MetadataComponent> components,
                   DataOutputPlus out,
                   Version version)
            throws java.io.IOException

Serialize given metadata components

Parameters:
  `components` - Metadata components to serialize
  `out` -
  `version` -
Throws:
  `java.io.IOException`

#### deserialize

    java.util.Map<MetadataType,MetadataComponent> deserialize(Descriptor descriptor,
                                                              java.util.EnumSet<MetadataType> types)
                                                       throws java.io.IOException

Deserialize specified metadata components from given descriptor.

Parameters:
  `descriptor` - SSTable descriptor
Returns:
  Deserialized metadata components, in deserialized order.
Throws:
  `java.io.IOException`

#### deserialize

    MetadataComponent deserialize(Descriptor descriptor,
                                  MetadataType type)
                           throws java.io.IOException

Deserialized only metadata component specified from given descriptor.

Parameters:
  `descriptor` - SSTable descriptor
  `type` - Metadata component type to deserialize
Returns:
  Deserialized metadata component. Can be null if specified type does not exist.
Throws:
  `java.io.IOException`

#### mutateLevel

    void mutateLevel(Descriptor descriptor,
                     int newLevel)
              throws java.io.IOException

Mutate SSTable level

Parameters:
  `descriptor` - SSTable descriptor
  `newLevel` - new SSTable level
Throws:
  `java.io.IOException`

#### mutateRepairedAt

    void mutateRepairedAt(Descriptor descriptor,
                          long newRepairedAt)
                   throws java.io.IOException

Mutate repairedAt time

Throws:
  `java.io.IOException`