package org.geotools.coverage.io;
import java.io.IOException;
import java.io.Serializable;
import java.util.Map;
import org.geotools.coverage.io.metadata.MetadataNode;
import org.opengis.feature.type.Name;
import org.opengis.util.ProgressListener;
public interface RasterDatasetWriter extends RasterDatasetReader{
public void setStoreMetadata(String metadataDomain, MetadataNode root);
public boolean remove(Name rasterDatasetName, Map<String, Serializable> params)throws IOException;
public boolean canRemove(Name rasterDatasetName, Map<String, Serializable> params)throws IOException;
public boolean remove(int index, Map<String, Serializable> params)throws IOException;
public boolean canRemove(int index, Map<String, Serializable> params)throws IOException;
/**
* Delete entirely the underlying storage
*
* @param params
* @param progress
* @return
* @throws IOException
*/
public boolean delete( Map<String, Serializable> params, ProgressListener progress)throws IOException;
public boolean canDelete( Map<String, Serializable> params, ProgressListener progress)throws IOException;
public boolean insert(int index, Map<String, Serializable> params, RasterDataset rasterDataset,ProgressListener progress)throws IOException;
public boolean canInsert(int index, Map<String, Serializable> params, RasterDataset rasterDataset,ProgressListener progress)throws IOException;
/**
* Perform an append to the underlying storage.
*
* @param params
* @param rasterDataset
* @param progress
* @return
* @throws IOException
*/
public boolean insert( Map<String, Serializable> params, RasterDataset rasterDataset,ProgressListener progress)throws IOException;
public boolean canInsert( Map<String, Serializable> params, RasterDataset rasterDataset,ProgressListener progress)throws IOException;
public boolean updateMetadata(Name rasterDatasetName, Map<String, Serializable> params, Map<String,MetadataNode> metadataDomains,ProgressListener progress)throws IOException;
public boolean canUpdateMetadata(Name rasterDatasetName, Map<String, Serializable> params, Map<String,MetadataNode> metadataDomains,ProgressListener progress)throws IOException;
public boolean updateData(Name rasterDatasetName, Map<String, Serializable> params, RasterDataset rasterDataset,ProgressListener progress)throws IOException;
public boolean canUpdateData(Name rasterDatasetName, Map<String, Serializable> params, RasterDataset rasterDataset,ProgressListener progress)throws IOException;
public boolean update(Name rasterDatasetName, Map<String, Serializable> params, RasterDataset rasterDataset,ProgressListener progress)throws IOException;
public boolean canUpdate(Name rasterDatasetName, Map<String, Serializable> params, RasterDataset rasterDataset,ProgressListener progress)throws IOException;
}