InferenceCrowd crowd) {
if (expr instanceof IBooleanExpression) {
IBooleanExpression be = (IBooleanExpression) expr;
return new EvaluatedCondition(this, be.getBooleanValue(element.getParent(), null, stream));
} else if (expr instanceof FeatureMatchExpression) {
FeatureMatchExpression fme = (FeatureMatchExpression) expr;
TypeExpression typeExpr = fme.getTypeExpr();
Type type = typeExpr.getType(element.getParent());
List<AnnotationFS> annotations = getAnnotationsToCheck(annotation, type, fme, stream);
Collection<AnnotationFS> featureAnnotations = fme.getFeatureAnnotations(annotations, stream,
element.getParent(), true);
return new EvaluatedCondition(this, !featureAnnotations.isEmpty());
}
return new EvaluatedCondition(this, false);
}