001/*
002 *                    BioJava development code
003 *
004 * This code may be freely distributed and modified under the
005 * terms of the GNU Lesser General Public Licence.  This should
006 * be distributed with the code.  If you do not have a copy,
007 * see:
008 *
009 *      http://www.gnu.org/copyleft/lesser.html
010 *
011 * Copyright for this code is held jointly by the individual
012 * authors.  These should be listed in @author doc comments.
013 *
014 * For more information on the BioJava project and its aims,
015 * or to join the biojava-l mailing list, visit the home page
016 * at:
017 *
018 *      http://www.biojava.org/
019 *
020 */
021
022package org.biojava.bio.program.homologene;
023
024import java.util.HashSet;
025import java.util.Set;
026
027public interface Taxon
028{
029    static Set taxa = new HashSet();
030
031    public static Taxon A_THALIANA = new TaxonStub(3702, "Arabidopsis thaliana");
032    public static Taxon B_TAURUS = new TaxonStub(9913, "Bos taurus");
033    public static Taxon C_ELEGANS = new TaxonStub(6239, "Caenorhabditis elegans");
034    public static Taxon D_RERIO = new TaxonStub(7955, "Danio rerio");
035    public static Taxon D_MELANOGASTER = new TaxonStub(7227, "Drosophila melanogaster");
036    public static Taxon H_SAPIENS = new TaxonStub(9606, "Homo sapiens");
037    public static Taxon H_VULGARE = new TaxonStub(4513, "Hordeum vulgare");
038    public static Taxon L_ESCULENTUM = new TaxonStub(4081, "Lycopersicon esculentum");
039    public static Taxon M_TRUNCULATA = new TaxonStub(3880, "Medicago truncatula");
040    public static Taxon M_MUSCULUS = new TaxonStub(10090, "Mus musculus");
041    public static Taxon O_SATIVA = new TaxonStub(4530, "Oryz sativa");
042    public static Taxon R_NORVEGICUS = new TaxonStub(10116, "Rattus norvegicus");
043    public static Taxon S_SCROFA = new TaxonStub(9823, "Sus scrofa");
044    public static Taxon T_AESTIVUM = new TaxonStub(4565, "Triticum aestivum");
045    public static Taxon X_LAEVIS = new TaxonStub(8355, "Xenopus laevis");
046    public static Taxon Z_MAYS = new TaxonStub(4577, "Zea mays");
047
048
049    /**
050     * returns the name of the Taxon
051     */
052    public String getDescription();
053
054    /**
055     * returns the taxon ID
056     */
057    public int getTaxonID();
058
059    public static class TaxonStub implements Taxon
060    {
061        int id;
062        private String description;
063
064        TaxonStub(int id, String description)
065        {
066            this.id = id;
067            this.description = description;
068
069            taxa.add(this);
070        }
071
072        public String getDescription() { return description; }
073
074        public int getTaxonID() { return id; }
075
076        public int hashCode() { return id; }
077    }
078
079}
080