Ensembl Data Access Module v1.09
© Roslin Institute 2010. GNU General Public License, version3
Ensembl Data Access Module
v1.09

uk.ac.roslin.ensembl.dao.database
Class DBRegistry

java.lang.Object
  extended by uk.ac.roslin.ensembl.dao.database.DBRegistry
All Implemented Interfaces:
uk.ac.roslin.ensembl.model.database.Registry

public class DBRegistry
extends Object
implements uk.ac.roslin.ensembl.model.database.Registry


Field Summary
protected  TreeSet<DBDatabase> allDatabases
           
protected  boolean alreadyInitialized
           
protected  TreeSet<DBCollectionDatabase> collectionDatabases
           
protected  TreeMap<String,TreeMap<String,DBCollection>> collectionNameDBVersionHash
           
protected  List<DBCollection> collections
           
protected  TreeMap<String,DBCollectionSpecies> collectionspeciesHash
           
protected  HashMap<uk.ac.roslin.ensembl.config.EnsemblComparaDivision,HashMap<String,DBComparisonDatabase>> comparaDBByDivision
           
protected  TreeSet<DBComparisonDatabase> comparisonDatabases
           
protected  Properties configProperties
           
protected  uk.ac.roslin.ensembl.config.DBConnection dbConnection
           
protected  TreeMap<String,String> ensemblNameForAliasHash
           
protected  TreeSet<Integer> knownSchemaVersions
           
protected  String newline
           
protected  Reader reader
           
protected  uk.ac.roslin.ensembl.config.RegistryConfiguration regConfig
           
protected  uk.ac.roslin.ensembl.config.SchemaVersion schemaVersion
           
protected  TreeSet<DBSingleSpeciesDatabase> singleSpeciesDatabases
           
protected  TreeMap<String,DBSpecies> speciesHash
           
protected  org.apache.ibatis.session.SqlSessionFactory sqlMapper
           
protected  StringBuffer tooNewDB
           
protected  StringBuffer unknownDB
           
 
Constructor Summary
DBRegistry()
          Parameterless public constructor for DBRegistry object
DBRegistry(uk.ac.roslin.ensembl.config.DBConnection.DataSource type)
          Public Constructor for default value DBRegistry object, using values in ensembl-config artifact.
DBRegistry(uk.ac.roslin.ensembl.config.RegistryConfiguration conf, boolean initialize)
          Public Constructor for default value DBRegistry object, using values in ensembl-config artifact.
 
Method Summary
 boolean addSessionAlias(String ensembl_genus_species_name, String alias)
          Method for an adhoc alias to be added by the user in this session.
 void addSpecies(String dbStyleName, uk.ac.roslin.ensembl.model.core.Species species)
           
 String findMybatisSchemaForSchemaVersion(uk.ac.roslin.ensembl.model.database.DatabaseType type, String schema_version)
           
 HashMap<uk.ac.roslin.ensembl.model.core.CollectionSpecies,String> getAssemblies(uk.ac.roslin.ensembl.model.database.CollectionDatabase database)
           
 String getAssembly(uk.ac.roslin.ensembl.model.database.SingleSpeciesDatabase database)
           
 String getBriefRegistryReport()
           
 DBCollection getCollection(String name, String dbVersion)
           
 Collection<DBCollection> getCollectionRegistriesByName(String name)
           
 List<DBCollection> getCollections()
           
 Collection<DBCollection> getCollectionsByDBVersion(String dbVersion)
           
 Collection<DBCollectionSpecies> getCollectionSpecies()
           
 uk.ac.roslin.ensembl.model.database.ComparisonDatabase getComparaDatabase(uk.ac.roslin.ensembl.config.EnsemblComparaDivision comparaDivision, String db_version)
           
 Properties getConfigProperties()
           
 DBDatabase getDatabase(String species_name_or_alias)
           
 DBDatabase getDatabase(String speciesNameOrAlias_collectionName_comparaDivision, uk.ac.roslin.ensembl.model.database.DatabaseType database_type, String db_version)
           
 DBDatabase getDatabase(String species_name_or_alias, String db_version)
           
 DBDatabase getDatabaseForFullName(String fullname)
           
 TreeSet<DBDatabase> getDatabasesByType(uk.ac.roslin.ensembl.model.database.DatabaseType type)
           
 uk.ac.roslin.ensembl.config.DBConnection.DataSource getDatasourceType()
           
 String getEnsemblNameForAlias(String alias)
          Looks up the ensembl_genus_species_name for the given alias from the ensemblNameForAliasHash hash of aliases in this Registry.
 int getHighestDBVersion()
           
 int getHighestEnsemblSchemaVersion()
           
 TreeSet<Integer> getKnownSchemaVersions()
           
 String getMostRecentDBVersion()
           
 String getMostRecentEnsemblVersion()
           
 Collection<DBSpecies> getSpecies()
           
 DBSpecies getSpeciesByAlias(String alias_or_name)
           
 DBSpecies getSpeciesByEnsemblName(String ensemblName)
           
 void initialize()
          private initialisation method for the registry which connects to ensembl via a DBDatasourceDAO and retreives details on all the current tables and creates database objects of the appropriate type for each.
 DBDatabase makeDatabase(String db_name)
           
 StringBuffer printRegistryReport()
           
 void setConfiguration(uk.ac.roslin.ensembl.config.DBConnection.DataSource type)
           
 void setConfiguration(uk.ac.roslin.ensembl.config.RegistryConfiguration conf)
           
 void setCoreDBBuildLevels(uk.ac.roslin.ensembl.model.database.SingleSpeciesCoreDatabase database)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

sqlMapper

protected org.apache.ibatis.session.SqlSessionFactory sqlMapper

configProperties

protected Properties configProperties

schemaVersion

protected uk.ac.roslin.ensembl.config.SchemaVersion schemaVersion

dbConnection

protected uk.ac.roslin.ensembl.config.DBConnection dbConnection

knownSchemaVersions

protected TreeSet<Integer> knownSchemaVersions

reader

protected Reader reader

speciesHash

protected TreeMap<String,DBSpecies> speciesHash

collectionspeciesHash

protected TreeMap<String,DBCollectionSpecies> collectionspeciesHash

collections

protected List<DBCollection> collections

collectionNameDBVersionHash

protected TreeMap<String,TreeMap<String,DBCollection>> collectionNameDBVersionHash

ensemblNameForAliasHash

protected TreeMap<String,String> ensemblNameForAliasHash

allDatabases

protected TreeSet<DBDatabase> allDatabases

singleSpeciesDatabases

protected TreeSet<DBSingleSpeciesDatabase> singleSpeciesDatabases

comparisonDatabases

protected TreeSet<DBComparisonDatabase> comparisonDatabases

comparaDBByDivision

protected HashMap<uk.ac.roslin.ensembl.config.EnsemblComparaDivision,HashMap<String,DBComparisonDatabase>> comparaDBByDivision

collectionDatabases

protected TreeSet<DBCollectionDatabase> collectionDatabases

newline

protected String newline

tooNewDB

protected StringBuffer tooNewDB

unknownDB

protected StringBuffer unknownDB

regConfig

protected uk.ac.roslin.ensembl.config.RegistryConfiguration regConfig

alreadyInitialized

protected boolean alreadyInitialized
Constructor Detail

DBRegistry

public DBRegistry()
Parameterless public constructor for DBRegistry object


DBRegistry

public DBRegistry(uk.ac.roslin.ensembl.config.DBConnection.DataSource type)
           throws uk.ac.roslin.ensembl.exception.ConfigurationException,
                  uk.ac.roslin.ensembl.exception.DAOException
Public Constructor for default value DBRegistry object, using values in ensembl-config artifact. This intializes the database connection so will fail if connection parameters are wrong etc.

Parameters:
type - DBConnection.DataSource
Throws:
uk.ac.roslin.ensembl.exception.ConfigurationException
uk.ac.roslin.ensembl.exception.DAOException

DBRegistry

public DBRegistry(uk.ac.roslin.ensembl.config.RegistryConfiguration conf,
                  boolean initialize)
           throws uk.ac.roslin.ensembl.exception.ConfigurationException,
                  uk.ac.roslin.ensembl.exception.DAOException
Public Constructor for default value DBRegistry object, using values in ensembl-config artifact. Boolean parameter allows a REgistry to be configured without calling initialization (useful for tests);

Parameters:
type - DBConnection.DataSource
initialize - boolean
Throws:
uk.ac.roslin.ensembl.exception.ConfigurationException
uk.ac.roslin.ensembl.exception.DAOException
Method Detail

setConfiguration

public void setConfiguration(uk.ac.roslin.ensembl.config.RegistryConfiguration conf)
                      throws uk.ac.roslin.ensembl.exception.ConfigurationException,
                             uk.ac.roslin.ensembl.exception.DAOException
Throws:
uk.ac.roslin.ensembl.exception.ConfigurationException
uk.ac.roslin.ensembl.exception.DAOException

setConfiguration

public void setConfiguration(uk.ac.roslin.ensembl.config.DBConnection.DataSource type)
                      throws uk.ac.roslin.ensembl.exception.ConfigurationException,
                             uk.ac.roslin.ensembl.exception.DAOException
Throws:
uk.ac.roslin.ensembl.exception.ConfigurationException
uk.ac.roslin.ensembl.exception.DAOException

initialize

public void initialize()
                throws uk.ac.roslin.ensembl.exception.DAOException,
                       uk.ac.roslin.ensembl.exception.ConfigurationException
private initialisation method for the registry which connects to ensembl via a DBDatasourceDAO and retreives details on all the current tables and creates database objects of the appropriate type for each. Also retrieves dbSpeciesName aliases for all the current release dbSpeciesName. And finds out what dbSpeciesName are present in multispecies databases.

Throws:
DAOException, - ConfigurationException
uk.ac.roslin.ensembl.exception.DAOException
uk.ac.roslin.ensembl.exception.ConfigurationException

getDatabase

public DBDatabase getDatabase(String species_name_or_alias)
Specified by:
getDatabase in interface uk.ac.roslin.ensembl.model.database.Registry

getDatabase

public DBDatabase getDatabase(String species_name_or_alias,
                              String db_version)
Specified by:
getDatabase in interface uk.ac.roslin.ensembl.model.database.Registry

getDatabase

public DBDatabase getDatabase(String speciesNameOrAlias_collectionName_comparaDivision,
                              uk.ac.roslin.ensembl.model.database.DatabaseType database_type,
                              String db_version)
Specified by:
getDatabase in interface uk.ac.roslin.ensembl.model.database.Registry

getComparaDatabase

public uk.ac.roslin.ensembl.model.database.ComparisonDatabase getComparaDatabase(uk.ac.roslin.ensembl.config.EnsemblComparaDivision comparaDivision,
                                                                                 String db_version)
Specified by:
getComparaDatabase in interface uk.ac.roslin.ensembl.model.database.Registry

getDatabaseForFullName

public DBDatabase getDatabaseForFullName(String fullname)
Specified by:
getDatabaseForFullName in interface uk.ac.roslin.ensembl.model.database.Registry

getDatabasesByType

public TreeSet<DBDatabase> getDatabasesByType(uk.ac.roslin.ensembl.model.database.DatabaseType type)
Specified by:
getDatabasesByType in interface uk.ac.roslin.ensembl.model.database.Registry

findMybatisSchemaForSchemaVersion

public String findMybatisSchemaForSchemaVersion(uk.ac.roslin.ensembl.model.database.DatabaseType type,
                                                String schema_version)
Specified by:
findMybatisSchemaForSchemaVersion in interface uk.ac.roslin.ensembl.model.database.Registry

getEnsemblNameForAlias

public String getEnsemblNameForAlias(String alias)
Looks up the ensembl_genus_species_name for the given alias from the ensemblNameForAliasHash hash of aliases in this Registry.

Specified by:
getEnsemblNameForAlias in interface uk.ac.roslin.ensembl.model.database.Registry
Parameters:
alias - String
Returns:
String the ensembl_genus_species_name

addSessionAlias

public boolean addSessionAlias(String ensembl_genus_species_name,
                               String alias)
                        throws Exception
Method for an adhoc alias to be added by the user in this session. Adds the alias to the aliases TreeSet of the cognate DBSpecies and to the ensemblNameForAliasHash hash of aliases in this Registry

Specified by:
addSessionAlias in interface uk.ac.roslin.ensembl.model.database.Registry
Parameters:
ensembl_genus_species_name - Ensmebl databse dbVersion of the name, e.g. 'homo_sapiens'
alias - any string the user wants to use an alias for this
Returns:
boolean true if successful
Throws:
Exception - if update fails, with meaning full message

getConfigProperties

public Properties getConfigProperties()
Specified by:
getConfigProperties in interface uk.ac.roslin.ensembl.model.database.Registry

printRegistryReport

public StringBuffer printRegistryReport()
Specified by:
printRegistryReport in interface uk.ac.roslin.ensembl.model.database.Registry

getSpeciesByAlias

public DBSpecies getSpeciesByAlias(String alias_or_name)
Specified by:
getSpeciesByAlias in interface uk.ac.roslin.ensembl.model.database.Registry

getSpeciesByEnsemblName

public DBSpecies getSpeciesByEnsemblName(String ensemblName)
Specified by:
getSpeciesByEnsemblName in interface uk.ac.roslin.ensembl.model.database.Registry

getMostRecentEnsemblVersion

public String getMostRecentEnsemblVersion()
Specified by:
getMostRecentEnsemblVersion in interface uk.ac.roslin.ensembl.model.database.Registry

getCollection

public DBCollection getCollection(String name,
                                  String dbVersion)
Specified by:
getCollection in interface uk.ac.roslin.ensembl.model.database.Registry

getCollectionRegistriesByName

public Collection<DBCollection> getCollectionRegistriesByName(String name)
Specified by:
getCollectionRegistriesByName in interface uk.ac.roslin.ensembl.model.database.Registry

getCollectionsByDBVersion

public Collection<DBCollection> getCollectionsByDBVersion(String dbVersion)
Specified by:
getCollectionsByDBVersion in interface uk.ac.roslin.ensembl.model.database.Registry

getCollections

public List<DBCollection> getCollections()
Specified by:
getCollections in interface uk.ac.roslin.ensembl.model.database.Registry

getSpecies

public Collection<DBSpecies> getSpecies()
Specified by:
getSpecies in interface uk.ac.roslin.ensembl.model.database.Registry

getCollectionSpecies

public Collection<DBCollectionSpecies> getCollectionSpecies()
Specified by:
getCollectionSpecies in interface uk.ac.roslin.ensembl.model.database.Registry

addSpecies

public void addSpecies(String dbStyleName,
                       uk.ac.roslin.ensembl.model.core.Species species)
Specified by:
addSpecies in interface uk.ac.roslin.ensembl.model.database.Registry

getMostRecentDBVersion

public String getMostRecentDBVersion()
Specified by:
getMostRecentDBVersion in interface uk.ac.roslin.ensembl.model.database.Registry

getBriefRegistryReport

public String getBriefRegistryReport()

getKnownSchemaVersions

public TreeSet<Integer> getKnownSchemaVersions()

getHighestEnsemblSchemaVersion

public int getHighestEnsemblSchemaVersion()
Specified by:
getHighestEnsemblSchemaVersion in interface uk.ac.roslin.ensembl.model.database.Registry

getHighestDBVersion

public int getHighestDBVersion()
Specified by:
getHighestDBVersion in interface uk.ac.roslin.ensembl.model.database.Registry

getDatasourceType

public uk.ac.roslin.ensembl.config.DBConnection.DataSource getDatasourceType()
Specified by:
getDatasourceType in interface uk.ac.roslin.ensembl.model.database.Registry

makeDatabase

public DBDatabase makeDatabase(String db_name)
                        throws uk.ac.roslin.ensembl.exception.ConfigurationException
Specified by:
makeDatabase in interface uk.ac.roslin.ensembl.model.database.Registry
Throws:
uk.ac.roslin.ensembl.exception.ConfigurationException

setCoreDBBuildLevels

public void setCoreDBBuildLevels(uk.ac.roslin.ensembl.model.database.SingleSpeciesCoreDatabase database)
                          throws uk.ac.roslin.ensembl.exception.DAOException
Specified by:
setCoreDBBuildLevels in interface uk.ac.roslin.ensembl.model.database.Registry
Throws:
uk.ac.roslin.ensembl.exception.DAOException

getAssembly

public String getAssembly(uk.ac.roslin.ensembl.model.database.SingleSpeciesDatabase database)
                   throws uk.ac.roslin.ensembl.exception.DAOException
Specified by:
getAssembly in interface uk.ac.roslin.ensembl.model.database.Registry
Throws:
uk.ac.roslin.ensembl.exception.DAOException

getAssemblies

public HashMap<uk.ac.roslin.ensembl.model.core.CollectionSpecies,String> getAssemblies(uk.ac.roslin.ensembl.model.database.CollectionDatabase database)
                                                                                throws uk.ac.roslin.ensembl.exception.DAOException
Specified by:
getAssemblies in interface uk.ac.roslin.ensembl.model.database.Registry
Throws:
uk.ac.roslin.ensembl.exception.DAOException

Ensembl Data Access Module
v1.09

Ensembl Data Access Module v1.09
© Roslin Institute 2010. GNU General Public License, version3