Use locate_helper to replace locate_* predicates
locate_submit_rule and locate_submit_filter are now refactored into locate_helper. To make that easier, a noop_filter is introduced in order to have a default filter implementation (same like default_submit is a default implementation of submit rule) and avoid need to handle the case of non-existing filter. Also removed checks for non-null return values from locate_* predicates. If a locate_* predicate returns null then this is bug in its implementation. Change-Id: I9cef2b6a01ac0288874154a898ddead2ea9446c3 Signed-off-by: Sasa Zivkov <sasa.zivkov@sap.com>
This commit is contained in:
committed by
Gerrit Code Review
parent
ee59a26b39
commit
3531ca4b8f
@@ -116,10 +116,6 @@ public class SubmitRuleEvaluator {
|
||||
env.set(StoredValues.CHANGE_CONTROL, changeControl);
|
||||
|
||||
submitRule = env.once("gerrit", userRuleLocatorName, new VariableTerm());
|
||||
if (submitRule == null) {
|
||||
throw new RuleEvalException(userRuleLocatorName + " returned null");
|
||||
}
|
||||
|
||||
if (fastEvalLabels) {
|
||||
env.once("gerrit", "assume_range_from_label");
|
||||
}
|
||||
@@ -160,30 +156,28 @@ public class SubmitRuleEvaluator {
|
||||
parentEnv.copyStoredValues(childEnv);
|
||||
Term filterRule =
|
||||
parentEnv.once("gerrit", filterRuleLocatorName, new VariableTerm());
|
||||
if (filterRule != null) {
|
||||
try {
|
||||
if (fastEvalLabels) {
|
||||
env.once("gerrit", "assume_range_from_label");
|
||||
}
|
||||
|
||||
Term resultsTerm = toListTerm(results);
|
||||
results.clear();
|
||||
Term[] template =
|
||||
parentEnv.once("gerrit", filterRuleWrapperName, filterRule,
|
||||
resultsTerm, new VariableTerm());
|
||||
@SuppressWarnings("unchecked")
|
||||
final List<? extends Term> termList =
|
||||
((ListTerm) template[2]).toJava();
|
||||
results.addAll(termList);
|
||||
} catch (PrologException err) {
|
||||
throw new RuleEvalException("Exception calling " + filterRule
|
||||
+ " on change " + change.getId() + " of "
|
||||
+ parentState.getProject().getName(), err);
|
||||
} catch (RuntimeException err) {
|
||||
throw new RuleEvalException("Exception calling " + filterRule
|
||||
+ " on change " + change.getId() + " of "
|
||||
+ parentState.getProject().getName(), err);
|
||||
try {
|
||||
if (fastEvalLabels) {
|
||||
env.once("gerrit", "assume_range_from_label");
|
||||
}
|
||||
|
||||
Term resultsTerm = toListTerm(results);
|
||||
results.clear();
|
||||
Term[] template =
|
||||
parentEnv.once("gerrit", filterRuleWrapperName, filterRule,
|
||||
resultsTerm, new VariableTerm());
|
||||
@SuppressWarnings("unchecked")
|
||||
final List<? extends Term> termList =
|
||||
((ListTerm) template[2]).toJava();
|
||||
results.addAll(termList);
|
||||
} catch (PrologException err) {
|
||||
throw new RuleEvalException("Exception calling " + filterRule
|
||||
+ " on change " + change.getId() + " of "
|
||||
+ parentState.getProject().getName(), err);
|
||||
} catch (RuntimeException err) {
|
||||
throw new RuleEvalException("Exception calling " + filterRule
|
||||
+ " on change " + change.getId() + " of "
|
||||
+ parentState.getProject().getName(), err);
|
||||
}
|
||||
|
||||
parentState = parentState.getParentState();
|
||||
|
||||
Reference in New Issue
Block a user