001/** 002 * Copyright (C) 2010-2015 The Roslin Institute <contact andy.law@roslin.ed.ac.uk> 003 * 004 * This file is part of JEnsembl: a Java API to Ensembl data sources developed by the 005 * Bioinformatics Group at The Roslin Institute, The Royal (Dick) School of 006 * Veterinary Studies, University of Edinburgh. 007 * 008 * Project hosted at: http://jensembl.sourceforge.net 009 * 010 * This is free software: you can redistribute it and/or modify 011 * it under the terms of the GNU General Public License (version 3) as published by 012 * the Free Software Foundation. 013 * 014 * This software is distributed in the hope that it will be useful, 015 * but WITHOUT ANY WARRANTY; without even the implied warranty of 016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 017 * GNU General Public License for more details. 018 * 019 * You should have received a copy of the GNU General Public License 020 * in this software distribution. If not, see: http://opensource.org/licenses/gpl-3.0.html 021 */ 022package uk.ac.roslin.ensembl.model.database; 023 024import java.io.File; 025import java.io.IOException; 026import uk.ac.roslin.ensembl.model.core.CollectionOfSpecies; 027import uk.ac.roslin.ensembl.model.core.CollectionSpecies; 028import java.util.Collection; 029import java.util.HashMap; 030import java.util.List; 031import java.util.Properties; 032import java.util.Set; 033import java.util.TreeSet; 034 035import org.biojava3.core.sequence.transcription.TranscriptionEngine; 036import uk.ac.roslin.ensembl.config.DBConnection.DataSource; 037import uk.ac.roslin.ensembl.config.EnsemblComparaDivision; 038import uk.ac.roslin.ensembl.exception.ConfigurationException; 039import uk.ac.roslin.ensembl.exception.DAOException; 040import uk.ac.roslin.ensembl.exception.NonUniqueException; 041import uk.ac.roslin.ensembl.model.core.Species; 042 043public interface Registry { 044 045 public Properties getConfigProperties(); 046 047 public DataSource getDatasourceType() ; 048 049 public String findMybatisSchemaForSchemaVersion(DatabaseType type, String schema_version); 050 051 public String getMostRecentEnsemblVersion() ; 052 053 //public DatabaseDAO getDatabaseDAO(); 054 055 public Database makeDatabase(String db_name) throws ConfigurationException; 056 057 public ComparisonDatabase getComparaDatabase(EnsemblComparaDivision comparaDivision, String db_version); 058 059 public Database getDatabase(String species_name_or_alias) throws NonUniqueException; 060 061 public Database getDatabase(String species_name_or_alias, String db_version) throws NonUniqueException; 062 063 public Database getDatabase(String species_name_or_alias, DatabaseType database_type, String db_version) throws NonUniqueException; 064 065 public Database getDatabaseForFullName(String fullname) ; 066 067 public TreeSet<? extends Database> getDatabasesByType(DatabaseType type) ; 068 069 public Species getSpeciesByAlias(String alias_or_name) throws NonUniqueException ; 070 071 public Species getSpeciesByAlias(String alias_or_name, String version) throws NonUniqueException ; 072 073 public Species getMostRecentSpeciesByAlias(String alias_or_name) throws NonUniqueException ; 074 075 public Collection<? extends Species> getSetOfSpeciesByAlias(String alias_or_name) ; 076 077 public Collection<? extends Species> getSetOfEverySpeciesByAlias(String alias_or_name) ; 078 079 public Species getSpeciesByEnsemblName(String ensemblName) ; 080 081 public Collection<? extends Species> getSpecies(); 082 083 public Collection<? extends CollectionSpecies> getCollectionSpecies(); 084 085 //public void addSpecies(String dbStyleName, Species species ) ; 086 087 public CollectionOfSpecies getMostRecentCollection(String name); 088 089 public CollectionOfSpecies getCollection(String name, String dbVersion); 090 091 public Collection<? extends CollectionOfSpecies> getCollectionRegistriesByName(String name) ; 092 093 public Collection<? extends CollectionOfSpecies> getCollectionsByDBVersion(String dbVersion) ; 094 095 public List<? extends CollectionOfSpecies> getCollections() ; 096 097 public int getHighestEnsemblSchemaVersion() throws DAOException, ConfigurationException ; 098 099 public int getHighestReleaseVersion() throws DAOException, ConfigurationException; 100 101 102 //handling aliases 103 104 public String getEnsemblNameForAlias(String alias) throws NonUniqueException; 105 106 public boolean addSessionAlias(String ensembl_genus_species_name, String alias) throws Exception; 107 108 public boolean addSessionAlias(Species sp, String alias) throws Exception ; 109 110 //Reporting 111 112 public File getRegistryReport() throws IOException; 113 114 public StringBuilder getBriefRegistryReport(); 115 116 /** 117 * Reports the available database versions for this Registry. 118 * Reports for both initialized or uninitialized Registries. 119 * since v74 120 * @return StringBuilder 121 */ 122 public StringBuilder getVersionReport(); 123 124 public void setSpeciesMetadata(CoreDatabase database) throws DAOException ; 125 126 public TranscriptionEngine getDefaultTranscriptionEngine(); 127 128 public TranscriptionEngine getTranscriptionEngine(Integer codonTable); 129 130 public HashMap<String, String> getRenamedDBs(); 131 132 public boolean isSpeciesInPanHomology(Species querySpecies, String dbVersion); 133 134 public Set<String> getEnsemblNamesForAliasBeginning(String alias) ; 135 136 public Set<String> getEnsemblNamesForAliasContaining(String alias) ; 137 138 public Set<String> getGCAssemblyAccessionsForAliasBeginning(String alias) ; 139 140 public Set<String> getGCAssemblyAccessionsForAliasContaining(String alias) ; 141 142 public Set<? extends Species> getSpeciesForAliasBeginning(String alias) ; 143 144 public Set<? extends Species> getSpeciesForAliasContaining(String alias) ; 145 146 public Set<? extends CollectionSpecies> getBacterialSpeciesForAliasBeginning(String alias) ; 147 148 public Set<? extends CollectionSpecies> getBacterialSpeciesForAliasContaining(String alias) ; 149 150 public Set<? extends CollectionSpecies> getOldStyleBacterialSpeciesForAliasBeginning(String alias) ; 151 152 public Set<? extends CollectionSpecies> getOldStyleBacterialSpeciesForAliasContaining(String alias) ; 153}