public List readHomologenes()

in server/catgenome/src/main/java/com/epam/catgenome/manager/externaldb/homologene/HomologeneManager.java [249:386]


    public List<HomologeneEntry> readHomologenes(final String path) {
        XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance();
        xmlInputFactory.setProperty(XMLInputFactory.SUPPORT_DTD, false);
        InputStream inputStream = new FileInputStream(path);
        XMLStreamReader streamReader = xmlInputFactory.createXMLStreamReader(inputStream);
        List<HomologeneEntry> homologeneEntries = new ArrayList<>();
        List<Gene> genes = new ArrayList<>();
        Set<String> aliases = new HashSet<>();
        List<Domain> domains = new ArrayList<>();
        HomologeneEntry homologeneEntry = null;
        Gene gene = null;
        Domain domain = null;
        while (streamReader.hasNext()) {
            streamReader.next();
            if (streamReader.getEventType() == XMLStreamReader.START_ELEMENT) {
                switch (streamReader.getLocalName()) {
                    case "HG-Entry":
                        homologeneEntry = new HomologeneEntry();
                        break;
                    case "HG-Entry_hg-id":
                        requireNonNull(homologeneEntry);
                        homologeneEntry.setGroupId(Long.valueOf(streamReader.getElementText()));
                        break;
                    case "HG-Entry_version":
                        requireNonNull(homologeneEntry);
                        homologeneEntry.setVersion(Long.valueOf(streamReader.getElementText()));
                        break;
                    case "HG-Entry_caption":
                        requireNonNull(homologeneEntry);
                        homologeneEntry.setCaption(streamReader.getElementText());
                        break;
                    case "HG-Entry_taxid":
                        requireNonNull(homologeneEntry);
                        homologeneEntry.setTaxId(Long.valueOf(streamReader.getElementText()));
                        break;
                    case "HG-Gene":
                        gene = new Gene();
                        break;
                    case "HG-Gene_geneid":
                        requireNonNull(gene);
                        gene.setGeneId(Long.valueOf(streamReader.getElementText()));
                        break;
                    case "HG-Gene_symbol":
                        requireNonNull(gene);
                        gene.setSymbol(streamReader.getElementText());
                        break;
                    case "HG-Gene_title":
                        requireNonNull(gene);
                        gene.setTitle(streamReader.getElementText());
                        break;
                    case "HG-Gene_taxid":
                        requireNonNull(gene);
                        gene.setTaxId(Long.valueOf(streamReader.getElementText()));
                        break;
                    case "HG-Gene_prot-gi":
                        requireNonNull(gene);
                        gene.setProtGi(Long.valueOf(streamReader.getElementText()));
                        break;
                    case "HG-Gene_prot-acc":
                        requireNonNull(gene);
                        gene.setProtAcc(streamReader.getElementText());
                        break;
                    case "HG-Gene_prot-len":
                        requireNonNull(gene);
                        gene.setProtLen(Long.valueOf(streamReader.getElementText()));
                        break;
                    case "HG-Gene_nuc-gi":
                        requireNonNull(gene);
                        gene.setNucGi(Long.valueOf(streamReader.getElementText()));
                        break;
                    case "HG-Gene_nuc-acc":
                        requireNonNull(gene);
                        gene.setNucAcc(streamReader.getElementText());
                        break;
                    case "HG-Gene_locus-tag":
                        requireNonNull(gene);
                        gene.setLocusTag(streamReader.getElementText());
                        break;
                    case "HG-Gene_aliases_E":
                        aliases.add(streamReader.getElementText());
                        break;
                    case "HG-Domain":
                        domain = new Domain();
                        break;
                    case "HG-Domain_begin":
                        requireNonNull(domain);
                        domain.setBegin(Long.valueOf(streamReader.getElementText()));
                        break;
                    case "HG-Domain_end":
                        requireNonNull(domain);
                        domain.setEnd(Long.valueOf(streamReader.getElementText()));
                        break;
                    case "HG-Domain_pssm-id":
                        requireNonNull(domain);
                        domain.setPssmId(Long.valueOf(streamReader.getElementText()));
                        break;
                    case "HG-Domain_cdd-id":
                        requireNonNull(domain);
                        domain.setCddId(streamReader.getElementText());
                        break;
                    case "HG-Domain_cdd-name":
                        requireNonNull(domain);
                        domain.setCddName(streamReader.getElementText());
                        break;
                    default:
                        break;
                }
            } else if (streamReader.getEventType() == XMLStreamReader.END_ELEMENT) {
                switch (streamReader.getLocalName()) {
                    case "HG-Entry":
                        requireNonNull(homologeneEntry);
                        homologeneEntry.setGenes(genes);
                        homologeneEntries.add(homologeneEntry);
                        genes = new ArrayList<>();
                        homologeneEntry = null;
                        break;
                    case "HG-Gene":
                        requireNonNull(gene);
                        gene.setAliases(aliases);
                        gene.setDomains(domains);
                        genes.add(gene);
                        aliases = new HashSet<>();
                        domains = new ArrayList<>();
                        gene = null;
                        break;
                    case "HG-Domain":
                        domains.add(domain);
                        domain = null;
                        break;
                    default:
                        break;
                }
            }
        }
        streamReader.close();
        inputStream.close();
        return homologeneEntries;
    }