package edu.cmu.minorthird.text;
import java.util.Iterator;
import java.util.TreeSet;
/**
* Abstract implementation of a SpanFinder.
*
* @author William Cohen
*/
public abstract class AbstractSpanFinder implements SpanFinder{
/** Find subspans of each span produced by the documentSpanIterator. */
@Override
final public Iterator<Span> findSpans(TextLabels labels,Iterator<Span> documentSpanIterator){
TreeSet<Span> set=new TreeSet<Span>();
while(documentSpanIterator.hasNext()){
for(Iterator<Span> i=findSpans(labels,documentSpanIterator);i.hasNext();set.add(i.next()));
}
return set.iterator();
}
/** Find subspans of the given document span. */
@Override
abstract public Iterator<Span> findSpans(TextLabels labels,Span documentSpan);
/** Explain how spans were found. */
@Override
abstract public String explainFindSpans(TextLabels labels,Span documentSpan);
}