public void execute(RuleMatch match, RuleElement element, RutaStream stream,
InferenceCrowd crowd) {
List<AnnotationFS> matchedAnnotationsOf = match.getMatchedAnnotationsOf(element, stream);
for (AnnotationFS annotationFS : matchedAnnotationsOf) {
RutaStream windowStream = stream.getWindowStream(annotationFS, annotationFS.getType());
RutaWordList wl = null;
if (list != null) {
wl = list.getList(element.getParent());
} else if (stringList != null) {
wl = new TreeWordList(stringList.getList(element.getParent()));
}
if (wl instanceof TreeWordList) {
Collection<AnnotationFS> found = wl.find(windowStream,
ignore.getBooleanValue(element.getParent()),
ignoreLength.getIntegerValue(element.getParent()), null, 0,
ignoreWS.getBooleanValue(element.getParent()));
for (AnnotationFS annotation : found) {
createAnnotation(annotation, element, windowStream, match);