private String getGene(String identifierType, String id, String taxonId) throws ObjectStoreException { String identifier = id; if (rslv != null && rslv.hasTaxon(taxonId)) { identifier = resolveGene(identifier, taxonId); if (identifier == null) { return null; } } String refId = identifiersToGenes.get(identifier); if (refId == null) { Item gene = createItem("Gene"); refId = gene.getIdentifier(); gene.setAttribute(identifierType, identifier); gene.setReference("organism", getOrganism(taxonId)); identifiersToGenes.put(identifier, refId); try { store(gene); } catch (ObjectStoreException e) { throw new ObjectStoreException(e); } } return refId; }