# Interface WritableTileMatrix

All Superinterfaces:
  `TileMatrix`

public interface WritableTileMatrix extends TileMatrix
A `TileMatrix` that can write and delete tiles.

All methods in this interface expect non-null arguments.

Since:
  1.2

- ## Method Summary

  Modifier and Type
  Method
  Description
  `long`
  `deleteTiles(GridExtent indicesRanges)`
  Deletes all existing tiles in the given region.
  `void`
  `writeTiles(Stream<Tile> tiles)`
  Writes a stream of tiles.

  ### Methods inherited from interface TileMatrix

  `getIdentifier, getMetadata, getResolution, getTile, getTiles, getTileStatus, getTilingScheme`

- ## Method Details

  - ### writeTiles

    void writeTiles(Stream<Tile> tiles) throws DataStoreException
    Writes a stream of tiles. The caller must ensure that all tiles are compatible with the tiling scheme of this tile matrix set. If a tile already exists, it will be overwritten.
    Parameters:
      `tiles` - the tiles to write.
    Throws:
      `ReadOnlyStorageException` - if this tile matrix is not writable. It may be caused by insufficient credentials.
      `IncompatibleResourceException` - if a tile is not compatible with the tiling scheme of this tile matrix.
      `DataStoreException` - if writing the tiles failed for another reason.

  - ### deleteTiles

    long deleteTiles(GridExtent indicesRanges) throws DataStoreException
    Deletes all existing tiles in the given region. After this method call, the status of all tiles in the given region become `TileStatus​.MISSING`. Tiles that were already missing are silently ignored.
    Parameters:
      `indicesRanges` - ranges of tile indices in all dimensions, or `null` for all tiles.
    Returns:
      number of tiles deleted (i.e. not counting the tiles that were already missing).
    Throws:
      `ReadOnlyStorageException` - if this tile matrix is not writable. It may be caused by insufficient credentials.
      `DataStoreException` - if deleting the tile failed for another reason.