char[] ignoreChars, int maxIgnoredChars, boolean ignoreWS) {
ArrayList<AnnotationFS> results = new ArrayList<AnnotationFS>();
stream.moveToFirst();
FSIterator<AnnotationFS> streamPointer = stream.copy();
while (stream.isValid()) {
RutaBasic anchorBasic = (RutaBasic) stream.get();
streamPointer.moveTo(anchorBasic);
List<RutaBasic> basicsToAdd = new ArrayList<RutaBasic>();
basicsToAdd.add(anchorBasic);
String text = anchorBasic.getCoveredText();
StringBuilder candidate = new StringBuilder(text);
// String lastCandidate = candidate.toString();
Annotation interResult = null;
while (streamPointer.isValid()) {
if (containsFragment(candidate.toString(), ignoreCase, size, ignoreChars, maxIgnoredChars,
ignoreWS)) {
streamPointer.moveToNext();
if (streamPointer.isValid()) {
RutaBasic next = (RutaBasic) streamPointer.get();
if (contains(candidate.toString(), ignoreCase, size, ignoreChars, maxIgnoredChars,
ignoreWS)) {
interResult = new Annotation(stream.getJCas(), basicsToAdd.get(0).getBegin(),
basicsToAdd.get(basicsToAdd.size() - 1).getEnd());
}
// lastCandidate = candidate.toString();
candidate.append(next.getCoveredText());
basicsToAdd.add(next);
} else {
tryToCreateAnnotation(stream, ignoreCase, size, results, basicsToAdd,
candidate.toString(), interResult, ignoreChars, maxIgnoredChars, ignoreWS);
}