package org.netxilia.spi.impl.storage.db;
import java.util.List;
import org.netxilia.api.exception.NotFoundException;
import org.netxilia.api.model.SheetDimensions;
import org.netxilia.api.model.SheetType;
import org.netxilia.api.reference.Range;
public interface IDbSheetStorageService {
/************* storage methods - to cache ******************/
public int getRowCount(SheetDbSession data) throws NotFoundException;
public int getColumnCount(SheetDbSession data) throws NotFoundException;
public DbSheetStorageInfo getSheetStorage(SheetDbSession data) throws NotFoundException;
public DbSheetStorageInfo getOrCreateSheetStorage(SheetDbSession data, SheetType type);
/******** column storage *************/
public DbColumnStorageInfo getColumnStorage(SheetDbSession data, int column) throws NotFoundException;
public List<DbColumnStorageInfo> createColumnStorage(SheetDbSession data, int maxColumn) throws NotFoundException;
public DbColumnStorageInfo insertColumnStorage(SheetDbSession data, int column) throws NotFoundException;
public void deleteColumnStorage(SheetDbSession data, int column) throws NotFoundException;
public List<DbColumnStorageInfo> loadColumnsStorageInfo(SheetDbSession data, Range columnsRange)
throws NotFoundException;
/******** row storage *************/
public DbRowStorageInfo getRowStorage(SheetDbSession data, int row) throws NotFoundException;
public DbRowStorageInfo getOrCreateRowStorage(SheetDbSession data, int row) throws NotFoundException;
public DbRowStorageInfo insertRowStorage(SheetDbSession data, int row) throws NotFoundException;
public void deleteRowStorage(SheetDbSession data, int row) throws NotFoundException;
public List<DbRowStorageInfo> loadRowsStorageInfo(SheetDbSession data, Range rowsRange) throws NotFoundException;
public Integer getMaxRowId(SheetDbSession data) throws NotFoundException;
/********
* cell storage
*
* @throws NotFoundException
* *
********/
// other props
public SparseMatrixCollection getCellsStorage(SheetDbSession data) throws NotFoundException;
public SheetDimensions getSheetDimensions(SheetDbSession data) throws NotFoundException;
}