X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FDBRefSource.java;h=3b1757bf18ad52cfe2269c0e6413f16f1e1d7a32;hb=e93bc0a7b2def06392a2f6b0f563c1e07fb917a1;hp=c1e174191dc4f52cf408138e2aed7add9867cb61;hpb=beff7ac7ab7be2c24ccb179be16b8816d2c18610;p=jalview.git diff --git a/src/jalview/datamodel/DBRefSource.java b/src/jalview/datamodel/DBRefSource.java index c1e1741..3b1757b 100755 --- a/src/jalview/datamodel/DBRefSource.java +++ b/src/jalview/datamodel/DBRefSource.java @@ -36,151 +36,137 @@ package jalview.datamodel; * @author JimP * */ +import java.util.Locale; + public class DBRefSource { - - - + public static final String UNIPROT = "UNIPROT"; - public static final String UP_NAME = "UNIPROT_NAME".toUpperCase(); + + public static final String UP_NAME = "UNIPROT_NAME" + .toUpperCase(Locale.ROOT); + /** * Uniprot Knowledgebase/TrEMBL as served from EMBL protein products. */ - public static final String UNIPROTKB = "UniProtKB/TrEMBL".toUpperCase(); + public static final String UNIPROTKB = "UniProtKB/TrEMBL" + .toUpperCase(Locale.ROOT); + + public static final String ENSEMBL = "ENSEMBL"; - public static final String ENSEMBL = "ENSEMBL"; public static final String ENSEMBLGENOMES = "ENSEMBLGENOMES"; - - public static final String EMBL = "EMBL"; - public static final String EMBLCDS = "EMBLCDS"; - public static final String EMBLCDSProduct = "EMBLCDSProtein".toUpperCase(); - public static final String PDB = "PDB"; - public static final String PFAM = "PFAM"; - public static final String RFAM = "RFAM"; - public static final String GENEDB = "GeneDB".toUpperCase(); + public static final String EMBL = "EMBL"; + + public static final String EMBLCDS = "EMBLCDS"; + + public static final String EMBLCDSProduct = "EMBLCDSProtein" + .toUpperCase(Locale.ROOT); + + public static final String PDB = "PDB"; + + public static final String PFAM = "PFAM"; + + public static final String RFAM = "RFAM"; + + public static final String GENEDB = "GeneDB".toUpperCase(Locale.ROOT); public static final String PDB_CANONICAL_NAME = PDB; + public static final String[] allSources = new String[] { UNIPROT, UP_NAME, + UNIPROTKB, ENSEMBL, ENSEMBLGENOMES, EMBL, EMBLCDS, EMBLCDSProduct, + PDB, PFAM, RFAM, GENEDB }; + + public static final int UNIPROT_MASK = 1 << 0; + + public static final int UP_NAME_MASK = 1 << 1; + + public static final int UNIPROT_KB_MASK = 1 << 2; + + public static final int ENSEMBL_MASK = 1 << 3; + + public static final int ENSEMBL_GENOMES_MASK = 1 << 4; + + public static final int EMBL_MASK = 1 << 5; + + public static final int EMBL_CDS_MASK = 1 << 6; + + public static final int EMBL_CDS_PRODUCT_MASK = 1 << 7; + + public static final int PDB_MASK = 1 << 8; + + public static final int PFAM_MASK = 1 << 9; + + public static final int RFAM_MASK = 1 << 10; - public static final String[] allSources = new String[] { - UNIPROT, - UP_NAME, UNIPROTKB, - ENSEMBL, ENSEMBLGENOMES, - EMBL, EMBLCDS, EMBLCDSProduct, - PDB, PFAM, RFAM, GENEDB - }; - - public static final int UNIPROT_MASK = 1<<0; - public static final int UP_NAME_MASK = 1<<1; - public static final int UNIPROT_KB_MASK = 1<<2; - public static final int ENSEMBL_MASK = 1<<3; - public static final int ENSEMBL_GENOMES_MASK = 1<<4; - public static final int EMBL_MASK = 1<<5; - public static final int EMBL_CDS_MASK = 1<<6; - public static final int EMBL_CDS_PRODUCT_MASK = 1<<7; - public static final int PDB_MASK = 1<<8; - public static final int PFAM_MASK = 1<<9; - public static final int RFAM_MASK = 1<<10; - public static final int GENE_DB_MASK = 1<<11; - - public static final int MASK_COUNT = 12; - - public static final int ALL_MASKS = (1 << MASK_COUNT) - 1; - - public static int getSourceKey(String name) { - for (int i = 0; i < MASK_COUNT; i++) { - if (name.equals(allSources[i])) - return 1< src = new ArrayList<>(); -// for (Field f : DBRefSource.class.getFields()) -// { -// if (String.class.equals(f.getType())) -// { -// try -// { -// src.add((String) f.get(null)); -// } catch (Exception x) -// { -// x.printStackTrace(); -// } -// } -// } -// allSourcesFromReflection = src.toArray(new String[0]); -// } -// return allSourcesFromReflection; -// } -// } - - public static boolean isPrimaryCandidate(String ucversion) { + public static final String[] PROTEINDBS = { UNIPROT, UNIPROTKB, ENSEMBL, + EMBLCDSProduct }; // Ensembl ENSP* entries are protein + + public static final int PROTEIN_MASK = UNIPROT_MASK | UNIPROT_KB_MASK + | ENSEMBL_MASK | EMBL_CDS_PRODUCT_MASK; + + // for SequenceAnnotationReport only + + // public static final String[][] PRIMARY_SOURCES = new String[][] { + // CODINGDBS, DNACODINGDBS, PROTEINDBS }; + // + public static final int PRIMARY_SOURCES_MASK = CODING_MASK + | DNA_CODING_MASK | PROTEIN_MASK; + + public static boolean isPrimarySource(String source) + { + return ((PRIMARY_SOURCES_MASK & getSourceKey(source)) != 0); + } + + public static boolean isPrimaryCandidate(String ucversion) + { + if (ucversion==null) + { + // Null/empty version is not a real reference ? + return false; + } // tricky - this test really needs to search the sequence's set of dbrefs to // see if there is a primary reference that derived this reference. for (int i = allSources.length; --i >= 0;) { - if (ucversion.startsWith(allSources[i])) // BH 2019.01.25 .toUpperCase() unnecessary here for allSources + if (ucversion.startsWith(allSources[i])) // BH 2019.01.25 + // .toUpperCase(Locale.ROOT) + // unnecessary here for + // allSources { // by convention, many secondary references inherit the primary // reference's @@ -190,9 +176,6 @@ public class DBRefSource } } return true; -} - - + } - }