package co.codewizards.cloudstore.local.db; public abstract class AbstractDatabaseAdapterFactory implements DatabaseAdapterFactory { @Override public DatabaseAdapter createDatabaseAdapter() { final DatabaseAdapter databaseAdapter = _createDatabaseAdapter(); if (databaseAdapter == null) throw new IllegalStateException(String.format("databaseAdapterFactory._createDatabaseAdapter() returned null! Implementation error in %s!", this.getClass().getName())); if (databaseAdapter instanceof AbstractDatabaseAdapter) ((AbstractDatabaseAdapter) databaseAdapter).setFactory(this); return databaseAdapter; } protected abstract DatabaseAdapter _createDatabaseAdapter(); }