annotate ssdt-jira-plugins-v2/plugins/src/main/java/org/nwoca/ssdt/jira/RequireNoTimeRemainingValidator.java @ 2:4ca1ef5be75e

Added validators for Time tracking. New validator to require Time Spent.
author smith
date Fri, 23 May 2008 18:06:10 -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.atlassian.jira.issue.IssueUtils;
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
13 import com.opensymphony.module.propertyset.PropertySet;
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
14 import com.opensymphony.workflow.InvalidInputException;
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
15 import com.opensymphony.workflow.Validator;
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
16 import com.opensymphony.workflow.WorkflowException;
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
17 import java.util.Map;
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 /**
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
20 * Requires zero time remaining if the issue has Time Tracking. Can use
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
21 * during resolve step.
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
22 *
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
23 * @author SMITH
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
24 */
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
25 public class RequireNoTimeRemainingValidator implements Validator {
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
26
2
4ca1ef5be75e Added validators for Time tracking. New validator to require Time
smith
parents: 1
diff changeset
27 // private final List<CustomField> cfs = new ArrayList<CustomField>();
1
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 /**
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
30 * Creates a new instance of RequireDocumentIssueValidator.
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
31 */
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
32 public RequireNoTimeRemainingValidator() {
2
4ca1ef5be75e Added validators for Time tracking. New validator to require Time
smith
parents: 1
diff changeset
33 // CustomFieldManager cfm = ManagerFactory.getCustomFieldManager();
4ca1ef5be75e Added validators for Time tracking. New validator to require Time
smith
parents: 1
diff changeset
34 // for (Object obj : cfm.getCustomFieldObjects()) {
4ca1ef5be75e Added validators for Time tracking. New validator to require Time
smith
parents: 1
diff changeset
35 // CustomField cf = (CustomField) obj;
4ca1ef5be75e Added validators for Time tracking. New validator to require Time
smith
parents: 1
diff changeset
36 // if (!cf.getName().contains("Message")) {
4ca1ef5be75e Added validators for Time tracking. New validator to require Time
smith
parents: 1
diff changeset
37 // cfs.add(cf);
4ca1ef5be75e Added validators for Time tracking. New validator to require Time
smith
parents: 1
diff changeset
38 // System.out.println("Custom Field: " + cf.getName());
4ca1ef5be75e Added validators for Time tracking. New validator to require Time
smith
parents: 1
diff changeset
39 // }
4ca1ef5be75e Added validators for Time tracking. New validator to require Time
smith
parents: 1
diff changeset
40 //
4ca1ef5be75e Added validators for Time tracking. New validator to require Time
smith
parents: 1
diff changeset
41 // }
1
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
42
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
43 }
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 public void validate(Map transientVars, Map args, PropertySet ps)
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
46 throws InvalidInputException, WorkflowException {
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
47
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
48 Issue issue = (Issue) transientVars.get("issue");
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
49
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
50 // System.out.println("Issue: " + issue.getKey());
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
51 // System.out.println(" OE: " + issue.getOriginalEstimate());
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
52 // System.out.println(" E: " + issue.getEstimate() + "/" +issue.getEstimate() );
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
53 // System.out.println(" TS: " + issue.getTimeSpent());
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
54 // System.out.println(" hasTimeTracking:" + IssueUtils.hasTimeTracking(issue));
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
55 //
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
56 // for (CustomField cf : cfs) {
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
57 // System.out.println(" CF " + cf.getName() + ": " + issue.getCustomFieldValue(cf));
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
58 // }
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
59 //
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
60 // {
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
61 // Iterator it = transientVars.entrySet().iterator();
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
62 // System.out.println(" Transient: ");
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
63 // while (it.hasNext()) {
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
64 // Map.Entry e = (Map.Entry) it.next();
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
65 // System.out.println(" " + e.getKey() + ": " + e.getValue());
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
66 // }
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
67 // }
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
68 //
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
69 // {
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
70 // Iterator it = args.entrySet().iterator();
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
71 // System.out.println(" Args: ");
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
72 // while (it.hasNext()) {
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
73 // Map.Entry e = (Map.Entry) it.next();
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
74 // System.out.println(" " + e.getKey() + ": " + e.getValue());
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
75 // }
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
76 // }
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
77 //
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
78 //
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
79 if (IssueUtils.hasTimeTracking(issue) && issue.getEstimate().longValue() != 0 ) {
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
80 throw new InvalidInputException("There is still Estimated Time Remaining on this issue.");
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
81 }
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
82
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
83 }
56349dc044f5 Added validators for Time tracking. Validators: Require an estimate
smith
parents:
diff changeset
84 }