public Iterator<SimpleDomain> execute(Region a) { try { LinkedList<SimpleDomain> doms = new LinkedList<SimpleDomain>(); data.window(a.getChrom(), a.getStart(), a.getEnd()); int np = data.getCount(); for (int pi = 0; pi < np - 1; pi++) { int f = findNextDomainIndex(pi, a); if (f != -1) { SimpleDomain dom = buildDomain(pi, f, a); doms.addLast(dom); pi = f; } } return doms.iterator(); } catch (NotFoundException e) { e.printStackTrace(); return new EmptyIterator<SimpleDomain>(); } }