001package co.codewizards.cloudstore.local.db;
002
003public abstract class AbstractDatabaseAdapterFactory implements DatabaseAdapterFactory {
004
005        @Override
006        public DatabaseAdapter createDatabaseAdapter() {
007                final DatabaseAdapter databaseAdapter = _createDatabaseAdapter();
008                if (databaseAdapter == null)
009                        throw new IllegalStateException(String.format("databaseAdapterFactory._createDatabaseAdapter() returned null! Implementation error in %s!",
010                                        this.getClass().getName()));
011
012                if (databaseAdapter instanceof AbstractDatabaseAdapter)
013                        ((AbstractDatabaseAdapter) databaseAdapter).setFactory(this);
014
015                return databaseAdapter;
016        }
017
018        protected abstract DatabaseAdapter _createDatabaseAdapter();
019}