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}