class Storage {

    static Storage create(DriverConfiguration configuration) {
        final String type = configuration.getProperty(JenaConfigParam.STORAGE_TYPE, JenaOntoDriverProperties.IN_MEMORY);
        final Storage storage;
        switch (type) {
            case JenaOntoDriverProperties.IN_MEMORY:
                storage = new MemoryStorage(configuration);
                break;
            case JenaOntoDriverProperties.FILE:
                storage = new FileStorage(configuration);
                break;
            case JenaOntoDriverProperties.TDB:
                storage = new TDBStorage(configuration);
                break;
            case JenaOntoDriverProperties.SDB:
                throw new UnsupportedOperationException("Not implemented, yet.");
            default:
                throw new OntoDriverInitializationException("Unsupported storage type \'" + type + "\'.");
        }
        storage.initialize();
        return storage;
    }

      Storage(DriverConfiguration configuration);

}