private ConceptGroupGenerator makeGenerator(int group) throws Exception { int shift, index; if (group > 0) { index = _base + _offsets.at(group - 1); shift = _maxConcepts.at(group - 1); } else { index = _base; shift = 0; } // initialize generator ConceptGroupGenerator gen = new ConceptGroupGenerator(_data, index, _kTable.at(2 * group + 1)); // decode concept table _nConcepts = gen.decodeConcepts(_kTable.at(2 * group), shift, _concepts); if (group < _limit) _max = _concepts[_nConcepts] = _maxConcepts.at(group); else _max = _concepts[_nConcepts - 1]; _genHeap.addGenerator(gen); _startingIndex = 0; // in _concepts; lower search index return gen; }