package hudson.plugins.cigame.rules.build; import hudson.model.AbstractBuild; import hudson.model.Result; import hudson.plugins.cigame.model.Rule; import hudson.plugins.cigame.model.RuleResult; /** * Rule that gives points on the result of the build. */ public class BuildResultRule implements Rule { private int failurePoints; private int successPoints; public BuildResultRule() { this(1, -10); } public BuildResultRule(int successPoints, int failurePoints) { this.successPoints = successPoints; this.failurePoints = failurePoints; } public String getName() { return Messages.BuildRuleSet_BuildResult(); //$NON-NLS-1$ } public RuleResult evaluate(AbstractBuild<?, ?> build) { Result result = build.getResult(); Result lastResult = null; if (build.getPreviousBuild() != null) { lastResult = build.getPreviousBuild().getResult(); } return evaluate(result, lastResult); } RuleResult evaluate(Result result, Result lastResult) { if (result == Result.SUCCESS) { return new RuleResult( successPoints, Messages.BuildRuleSet_BuildSuccess()); //$NON-NLS-1$ } if (result == Result.FAILURE) { if ((lastResult == null) || (lastResult.isBetterThan(Result.FAILURE))) { return new RuleResult(failurePoints, Messages.BuildRuleSet_BuildFailed()); //$NON-NLS-1$ } } return null; } }