public TermsEnum getTermsEnum(Terms terms) throws IOException {switch(type) {case NONE:return TermsEnum.EMPTY;case ALL:return terms.iterator();case SINGLE:return new SingleTermsEnum(terms.iterator(), term);case NORMAL:return terms.intersect(this, null);default:throw new RuntimeException("unhandled case");}}

public virtual TermsEnum GetTermsEnum(Terms terms){switch (Type){case Lucene.Net.Util.Automaton.CompiledAutomaton.AUTOMATON_TYPE.NONE:return TermsEnum.EMPTY;case Lucene.Net.Util.Automaton.CompiledAutomaton.AUTOMATON_TYPE.ALL:return terms.GetIterator(null);case Lucene.Net.Util.Automaton.CompiledAutomaton.AUTOMATON_TYPE.SINGLE:return new SingleTermsEnum(terms.GetIterator(null), Term);case Lucene.Net.Util.Automaton.CompiledAutomaton.AUTOMATON_TYPE.PREFIX:return new PrefixTermsEnum(terms.GetIterator(null), Term);case Lucene.Net.Util.Automaton.CompiledAutomaton.AUTOMATON_TYPE.NORMAL:return terms.Intersect(this, null);default:throw new Exception("unhandled case");}}
