AbstractTableEngine extends JdbcService implements TableEngine, OperationExecutor { @Override public Table get(JdbcIndex<?> index) { if (!exists(index)) { throw new NoSuchTableException("Table for index " + index.getName() + " does not exist"); } Table table = registry.get(index); if (table == null) { table = getTableFactory().create(index); registry.put(index, table); } return table; } protected  AbstractTableEngine(DataSource dataSource, TypeMap typeMap, NameTranslator<Index<?>> tableNameTranslator,
            NameTranslator<IndexField<?>> columnNameTranslator); @Override boolean exists(JdbcIndex<?> index); @Override Table get(JdbcIndex<?> index); @Override Table create(JdbcIndex<?> index); @Override void drop(JdbcIndex<?> index); @Override void execute(Operation operation); @Override void execute(InsertOperation operation); @Override void execute(UpdateOperation operation); @Override void execute(DeleteOperation operation); TypeMap getTypeMap(); void setTypeMap(TypeMap typeMap); NameTranslator<Index<?>> getTableNameTranslator(); void setTableNameTranslator(NameTranslator<Index<?>> tableNameTranslator); NameTranslator<IndexField<?>> getColumnNameTranslator(); void setColumnNameTranslator(NameTranslator<IndexField<?>> columnNameTranslator);  }
@Test(expected = NoSuchTableException.class) public void get_onNonExistingIndex_throwsException() throws Exception { engine.get(testIndex); }