package com.drew.imaging.jpeg;
import com.drew.lang.annotations.NotNull;
import com.drew.metadata.Metadata;
/**
* Defines an object that extracts metadata from in JPEG segments.
*/
public interface JpegSegmentMetadataReader
{
/**
* Gets the set of JPEG segment types that this reader is interested in.
*/
@NotNull
public Iterable<JpegSegmentType> getSegmentTypes();
/**
* Extracts metadata from all instances of a particular JPEG segment type.
*
* @param segments A sequence of byte arrays from which the metadata should be extracted. These are in the order
* encountered in the original file.
* @param metadata The {@link Metadata} object into which extracted values should be merged.
* @param segmentType The {@link JpegSegmentType} being read.
*/
public void readJpegSegments(@NotNull final Iterable<byte[]> segments, @NotNull final Metadata metadata, @NotNull final JpegSegmentType segmentType);
}