package org.nextprot.api.core.utils.dbxref.resolver; import org.nextprot.api.core.domain.CvDatabasePreferredLink; import java.util.HashMap; import java.util.Map; import java.util.Optional; /** * Databases referenced in DbXref with resolver * * Created by fnikitin on 10/12/15. */ public enum XRefDatabase { BGEE("Bgee", new BgeeXrefURLResolver()), BRENDA("BRENDA", new ConstantLinkXrefURLResolver(CvDatabasePreferredLink.BRENDA)), CGH_DB("CGH-DB", new CghDbArpXrefURLResolver()), CLINVAR("Clinvar", new ClinvarXrefURLResolver()), COSMIC("Cosmic", new CosmicXrefURLResolver()), EMBL("EMBL", new EmblXrefURLResolver()), ENSEMBL("Ensembl", new EnsemblXrefURLResolver()), GENEVESTIGATOR("Genevestigator", new ConstantLinkXrefURLResolver(CvDatabasePreferredLink.GENEVESTIGATOR)), GENEVISIBLE("Genevisible", new GenevisibleXrefURLResolver()), GERMONLINE("GermOnline", new ConstantLinkXrefURLResolver(CvDatabasePreferredLink.GERMONLINE)), HAMAP_RULE("HAMAP-Rule", new ConstantXrefDatabasebURLResolver("http://hamap.expasy.org/")), HPA("HPA", new HpaXrefURLResolver()), HSSP("HSSP", new HsspXrefURLResolver()), IFO("IFO", new JcrbXrefURLResolver()), INTACT("IntAct", new IntactXrefURLResolver()), JCRB("JCRB", new JcrbXrefURLResolver()), NIH_ARP("NIH-ARP", new NihArpXrefURLResolver()), OBO("OBO", new OboLibraryXrefURLResolver()), PDB("PDB", new ConstantLinkXrefURLResolver(CvDatabasePreferredLink.PDB)), PEPTIDE_ATLAS("PeptideAtlas", new PeptideAtlasXrefURLResolver()), PEROXIBASE("PeroxiBase", new PeroxiBaseXrefURLResolver()), PIR("PIR", new PirXrefURLResolver()), PROSITE("PROSITE", new ConstantLinkXrefURLResolver(CvDatabasePreferredLink.PROSITE)), PROSITE_PRORULE("PROSITE-ProRule", new ConstantXrefDatabasebURLResolver("http://prosite.expasy.org/")), PROTEOPEDIA("PROTEOPEDIA", new DefaultDbXrefURLResolver()), REF_SEQ("RefSeq", new DefaultDbXrefURLResolver()), RULEBASE("RuleBase", new RuleBaseXrefURLResolver()), SIGNOR("SIGNOR", new ConstantLinkXrefURLResolver(CvDatabasePreferredLink.SIGNOR)), SMR("SMR", new SmrXrefURLResolver()), SRM_ATLAS("SRMAtlas", new SrmAtlasXrefURLResolver()), TKG("TKG", new TkgXrefURLResolver()), UCSC("UCSC", new UcscXrefURLResolver()), UNI_GENE("UniGene", new UnigeneXrefURLResolver()), WEBINFO("WEBINFO", new WebInfoXrefURLResolver()), ; private final String name; private final DefaultDbXrefURLResolver resolver; private static final Map<String, XRefDatabase> VALUE_OF_STRING_MAP = new HashMap<>(); static { for (XRefDatabase xRefDatabase : values()) { VALUE_OF_STRING_MAP.put(xRefDatabase.getName().toUpperCase(), xRefDatabase); } } XRefDatabase(String name, DefaultDbXrefURLResolver resolver) { this.name = name; this.resolver = resolver; } public String getName() { return name; } public DefaultDbXrefURLResolver getResolver() { return resolver; } /** * Get a XRefDatabase enum from name * @param name the enum name * @return XRefDatabase enum or null if not found */ public static XRefDatabase valueOfDbName(String name) { String uc = name.toUpperCase(); if (VALUE_OF_STRING_MAP.containsKey(uc)) { return VALUE_OF_STRING_MAP.get(uc); } return null; } /** * Get an optional XRefDatabas enum from name * @param name the enum name * @return XRefDatabase enum of absent if not found */ public static Optional<XRefDatabase> valueOfName(String name) { return Optional.ofNullable(valueOfDbName(name)); } }