/*
* Copyright 2013 Guidewire Software, Inc.
*/
package gw.testharness;
import gw.util.Predicate;
import java.lang.annotation.Annotation;
public class KnownBreakConditionPredicate implements Predicate<Annotation> {
@Override
public boolean evaluate(Annotation o) {
return isKnownBreakCondition((KnownBreakCondition) o);
}
public static boolean isKnownBreakCondition(KnownBreakCondition kbCond) {
for (Class<? extends IEnvironmentalCondition> conditionClass : kbCond.value()) {
IEnvironmentalCondition condition;
try {
condition = conditionClass.newInstance();
} catch (RuntimeException e) {
throw e;
} catch (Exception e) {
throw new RuntimeException(e);
}
if (condition.isConditionMet()) {
return true;
}
}
return false;
}
}