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