annotate ssdt-jira-plugins-v2/plugins/src/main/java/org/nwoca/ssdt/jira/RequireEstimateValidator.java @ 3:e90b3c5c8df3 tip

Improve validator if work has already been logged.
author smith
date Fri, 20 Jun 2008 12:23:06 -0400
parents 56349dc044f5
children
rev   line source
1
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
1 /*
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
2 * RequireDocumentIssueValidator.java
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
3 *
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
4 * Created on May 14, 2007, 1:04 PM
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
5 *
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
6 * To change this template, choose Tools | Template Manager
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
7 * and open the template in the editor.
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
8 */
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
9 package org.nwoca.ssdt.jira;
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
10
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
11 import com.atlassian.jira.issue.Issue;
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
12 import com.opensymphony.module.propertyset.PropertySet;
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
13 import com.opensymphony.workflow.InvalidInputException;
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
14 import com.opensymphony.workflow.Validator;
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
15 import com.opensymphony.workflow.WorkflowException;
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
16 import java.util.Map;
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
17
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
18 /**
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
19 * Validator blocks Fixed resolution. Use for Workflow steps where "fixed" is
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
20 *not appropriate.
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
21 *
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
22 * @author SMITH
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
23 */
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
24 public class RequireEstimateValidator implements Validator {
3
e90b3c5c8df3 Improve validator if work has already been logged.
smith
parents: 1
diff changeset
25
1
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
26 /**
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
27 * Creates a new instance of RequireDocumentIssueValidator.
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
28 */
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
29 public RequireEstimateValidator() {
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
30 }
3
e90b3c5c8df3 Improve validator if work has already been logged.
smith
parents: 1
diff changeset
31
1
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
32 public void validate(Map transientVars, Map args, PropertySet ps)
3
e90b3c5c8df3 Improve validator if work has already been logged.
smith
parents: 1
diff changeset
33 throws InvalidInputException, WorkflowException {
e90b3c5c8df3 Improve validator if work has already been logged.
smith
parents: 1
diff changeset
34
1
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
35 Issue issue = (Issue) transientVars.get("issue");
3
e90b3c5c8df3 Improve validator if work has already been logged.
smith
parents: 1
diff changeset
36
e90b3c5c8df3 Improve validator if work has already been logged.
smith
parents: 1
diff changeset
37 if (isZero(issue.getTimeSpent())) {
e90b3c5c8df3 Improve validator if work has already been logged.
smith
parents: 1
diff changeset
38 if (isZero(issue.getOriginalEstimate())) {
e90b3c5c8df3 Improve validator if work has already been logged.
smith
parents: 1
diff changeset
39 throw new InvalidInputException("Original Estimate is required at this step");
e90b3c5c8df3 Improve validator if work has already been logged.
smith
parents: 1
diff changeset
40 }
e90b3c5c8df3 Improve validator if work has already been logged.
smith
parents: 1
diff changeset
41 } else if (isZero(issue.getEstimate())) {
e90b3c5c8df3 Improve validator if work has already been logged.
smith
parents: 1
diff changeset
42 throw new InvalidInputException("Remaining Estimate is required at this step");
e90b3c5c8df3 Improve validator if work has already been logged.
smith
parents: 1
diff changeset
43
1
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
44 }
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
45 }
3
e90b3c5c8df3 Improve validator if work has already been logged.
smith
parents: 1
diff changeset
46
e90b3c5c8df3 Improve validator if work has already been logged.
smith
parents: 1
diff changeset
47 private boolean isZero(Long value) {
e90b3c5c8df3 Improve validator if work has already been logged.
smith
parents: 1
diff changeset
48 return value == null || value.longValue() == 0;
e90b3c5c8df3 Improve validator if work has already been logged.
smith
parents: 1
diff changeset
49 }
1
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
50 }