}
EvaluableJoinPoint evaluable = AnnotationContainer.getInstance().getEvaluableAnnotation(provider.getName());
if (evaluable != null && this.context.getConfiguration().getEvaluatorClassName() != null) {
Evaluator evaluator;
try {
evaluator = (Evaluator) Class.forName(context.getConfiguration().getEvaluatorClassName()).newInstance();
} catch (InstantiationException e) {
throw new EvaluatorException("Evaluator " + context.getConfiguration().getEvaluatorClassName()
+ "can not be instantiated", e);
} catch (IllegalAccessException e) {
throw new EvaluatorException("Evaluator " + context.getConfiguration().getEvaluatorClassName()
+ "can not be instantiated", e);
} catch (ClassNotFoundException e) {
throw new EvaluatorException("Evaluator class " + context.getConfiguration().getEvaluatorClassName()
+ " not found", e);
}
if (!evaluator.evaluate(evaluable.getEvaluableValue(provider))) {
this.metaProperty.setApplicable(false);
}
}
}