private Item getGene(String geneCG) throws ObjectStoreException { if (rslv == null || !rslv.hasTaxon(TAXON_FLY)) { return null; } int resCount = rslv.countResolutions(TAXON_FLY, geneCG); if (resCount != 1) { LOG.info( "RESOLVER: failed to resolve gene to one identifier, ignoring gene: " + geneCG + " count: " + resCount + " FBgn: " + rslv.resolveId(TAXON_FLY, geneCG)); return null; } String primaryIdentifier = rslv.resolveId(TAXON_FLY, geneCG).iterator().next(); if (genes.containsKey(primaryIdentifier)) { return genes.get(primaryIdentifier); } Item gene = createItem("Gene"); gene.setAttribute("primaryIdentifier", primaryIdentifier); gene.setReference("organism", orgDrosophila); genes.put(primaryIdentifier, gene); store(gene); return gene; }