org.apache.cassandra.io.sstable.metadata

## Interface IMetadataComponentSerializer<T extends MetadataComponent>

All Known Implementing Classes:
  CompactionMetadata.CompactionMetadataSerializer, StatsMetadata.StatsMetadataSerializer, ValidationMetadata.ValidationMetadataSerializer

    public interface IMetadataComponentSerializer<T extends MetadataComponent>

Metadata component serializer

### Method Summary

All Methods Instance Methods Abstract Methods
`T` `deserialize(Version version, java.io.DataInput in)` Deserialize metadata component from given input.
`void` `serialize(T component, Version version, DataOutputPlus out)` Serialize metadata component to given output.
`int` `serializedSize(T component, Version version)` Calculate and return serialized size.

### Method Detail

#### serializedSize

    int serializedSize(T component,
                       Version version)
                throws java.io.IOException

Calculate and return serialized size.

Parameters:
  `component` - MetadataComponent to calculate serialized size
Returns:
  serialized size of this component
Throws:
  `java.io.IOException`

#### serialize

    void serialize(T component,
                   Version version,
                   DataOutputPlus out)
            throws java.io.IOException

Serialize metadata component to given output.

Parameters:
  `component` - MetadataComponent to serialize
  `out` - serialize destination
Throws:
  `java.io.IOException`

#### deserialize

    T deserialize(Version version,
                  java.io.DataInput in)
           throws java.io.IOException

Deserialize metadata component from given input.

Parameters:
  `version` - serialize version
  `in` - deserialize source
Returns:
  Deserialized component
Throws:
  `java.io.IOException`