/** * Recursively collects relevant thesaurus terms. * * @param list result list * @param node input node * @param level current level */ private void find(final TokenList list, final ThesNode node, final long level) { if (level > max || node == null) return; for (int n = 0; n < node.size; ++n) { if (rel.length == 0 || eq(node.rs[n], rel)) { final byte[] term = node.nodes[n].term; if (!list.contains(term)) { list.add(term); find(list, node.nodes[n], level + 1); } } } }