public List<DatabaseInformation> getAvailableDatabases(Class<? extends WGDatabaseCore> implClass) throws WGAPIException, ModuleDependencyException {
ServerDatabaseRetriever retriever = fetchServerDatabaseRetriever(implClass);
if (retriever == null) {
throw new WGInvalidDatabaseException("The database implementation class '" + implClass.getName() + "' is not suitable for database server type '" + getClass().getName() + "'");
}
if (!retriever.isAvailableDatabasesRetrievable()) {
throw new WGInvalidDatabaseException("Available databases for implementation class '" + implClass.getName() + "' are not retrievable database server type '" + getClass().getName() + "'");
}
return retriever.getAvailableDatabases(this);
}