package mil.nga.giat.geowave.adapter.raster.adapter; import java.awt.image.DataBuffer; import mil.nga.giat.geowave.adapter.raster.adapter.merge.RootMergeStrategy; import mil.nga.giat.geowave.core.index.ByteArrayId; import mil.nga.giat.geowave.core.index.Mergeable; import mil.nga.giat.geowave.core.index.Persistable; public class MergeableRasterTile<T extends Persistable> extends RasterTile<T> { private final RootMergeStrategy<T> mergeStrategy; private final ByteArrayId dataAdapterId; public MergeableRasterTile( final DataBuffer dataBuffer, final T metadata, final RootMergeStrategy<T> mergeStrategy, final ByteArrayId dataAdapterId ) { super( dataBuffer, metadata); this.mergeStrategy = mergeStrategy; this.dataAdapterId = dataAdapterId; } public ByteArrayId getDataAdapterId() { return dataAdapterId; } @Override public void merge( final Mergeable merge ) { if ((mergeStrategy != null) && (merge != null) && (merge instanceof RasterTile)) { mergeStrategy.merge( this, (RasterTile<T>) merge, dataAdapterId); } } }