# HG changeset patch # User smith # Date 1213978986 14400 # Node ID e90b3c5c8df320a66209dcff5a28338d2993e438 # Parent 4ca1ef5be75e79acaeab8feb2c264168e3b83ccf Improve validator if work has already been logged. diff -r 4ca1ef5be75e -r e90b3c5c8df3 ssdt-jira-plugins-v2/plugins/src/main/java/org/nwoca/ssdt/jira/RequireEstimateValidator.java --- a/ssdt-jira-plugins-v2/plugins/src/main/java/org/nwoca/ssdt/jira/RequireEstimateValidator.java Fri May 23 18:06:10 2008 -0400 +++ b/ssdt-jira-plugins-v2/plugins/src/main/java/org/nwoca/ssdt/jira/RequireEstimateValidator.java Fri Jun 20 12:23:06 2008 -0400 @@ -6,23 +6,13 @@ * To change this template, choose Tools | Template Manager * and open the template in the editor. */ - package org.nwoca.ssdt.jira; -import com.atlassian.jira.ComponentManager; -import com.atlassian.jira.ManagerFactory; import com.atlassian.jira.issue.Issue; -import com.atlassian.jira.issue.MutableIssue; -import com.atlassian.jira.issue.fields.CustomField; -import com.atlassian.jira.issue.link.IssueLink; -import com.atlassian.jira.issue.link.IssueLinkManager; -import com.atlassian.jira.workflow.WorkflowActionsBean; import com.opensymphony.module.propertyset.PropertySet; import com.opensymphony.workflow.InvalidInputException; import com.opensymphony.workflow.Validator; import com.opensymphony.workflow.WorkflowException; -import java.util.Collection; -import java.util.List; import java.util.Map; /** @@ -32,23 +22,29 @@ * @author SMITH */ public class RequireEstimateValidator implements Validator { - - + /** * Creates a new instance of RequireDocumentIssueValidator. */ public RequireEstimateValidator() { } - + public void validate(Map transientVars, Map args, PropertySet ps) - throws InvalidInputException, WorkflowException { - + throws InvalidInputException, WorkflowException { + Issue issue = (Issue) transientVars.get("issue"); - - if (issue.getOriginalEstimate() == null || issue.getOriginalEstimate().equals(0)) { - throw new InvalidInputException("Original Estimate is required at this step"); + + if (isZero(issue.getTimeSpent())) { + if (isZero(issue.getOriginalEstimate())) { + throw new InvalidInputException("Original Estimate is required at this step"); + } + } else if (isZero(issue.getEstimate())) { + throw new InvalidInputException("Remaining Estimate is required at this step"); + } - } - + + private boolean isZero(Long value) { + return value == null || value.longValue() == 0; + } }