package to.rtc.rtc2jira.exporter.jira.entities;
import java.util.ArrayList;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.logging.Logger;
import to.rtc.rtc2jira.ExportManager;
public enum StateEnumNoMigr {
bug_neww("1", "1", IssueType.BUG, "Open", null) {
public StateEnumNoMigr getProxy() {
return this;
};
@Override
protected StatusCategory createStatusCategory() {
return StatusCategory.createToDo();
}
@Override
protected Map<StateEnumNoMigr, String> getTransitionMap() {
Map<StateEnumNoMigr, String> transitionMap = new HashMap<StateEnumNoMigr, String>();
transitionMap.put(bug_neww, NO_TRANSITION);
transitionMap.put(bug_inProgress, "4");
transitionMap.put(bug_resolved, "5");
transitionMap.put(bug_verified, "2");
transitionMap.put(bug_reopened, NO_TRANSITION);
return transitionMap;
}
}, //
bug_inProgress("3", "2", IssueType.BUG, "In Progress", null) {
@Override
public StateEnumNoMigr getProxy() {
return this;
}
@Override
protected StatusCategory createStatusCategory() {
return StatusCategory.createToDo();
}
@Override
protected Map<StateEnumNoMigr, String> getTransitionMap() {
Map<StateEnumNoMigr, String> transitionMap = new HashMap<StateEnumNoMigr, String>();
transitionMap.put(bug_neww, "301");
transitionMap.put(bug_inProgress, NO_TRANSITION);
transitionMap.put(bug_resolved, "5");
transitionMap.put(bug_verified, "2");
transitionMap.put(bug_reopened, NO_TRANSITION);
return transitionMap;
}
}, //
bug_resolved("5", "3", IssueType.BUG, "Resolved", null) {
@Override
public StateEnumNoMigr getProxy() {
return this;
}
@Override
protected StatusCategory createStatusCategory() {
return StatusCategory.createToDo();
}
@Override
protected Map<StateEnumNoMigr, String> getTransitionMap() {
Map<StateEnumNoMigr, String> transitionMap = new HashMap<StateEnumNoMigr, String>();
transitionMap.put(bug_neww, NO_TRANSITION);
transitionMap.put(bug_inProgress, NO_TRANSITION);
transitionMap.put(bug_resolved, NO_TRANSITION);
transitionMap.put(bug_verified, "701");
transitionMap.put(bug_reopened, "3");
return transitionMap;
}
}, //
bug_verified("6", "4", IssueType.BUG, "Closed", null) {
@Override
public StateEnumNoMigr getProxy() {
return this;
}
@Override
protected StatusCategory createStatusCategory() {
return StatusCategory.createToDo();
}
@Override
protected Map<StateEnumNoMigr, String> getTransitionMap() {
Map<StateEnumNoMigr, String> transitionMap = new HashMap<StateEnumNoMigr, String>();
transitionMap.put(bug_neww, NO_TRANSITION);
transitionMap.put(bug_inProgress, NO_TRANSITION);
transitionMap.put(bug_resolved, NO_TRANSITION);
transitionMap.put(bug_verified, NO_TRANSITION);
transitionMap.put(bug_reopened, "3");
return transitionMap;
}
@Override
public boolean isEditable() {
return false;
}
@Override
public boolean isFinished() {
return true;
}
}, //
bug_reopened("4", "6", IssueType.BUG, "Reopened", null) {
@Override
public StateEnumNoMigr getProxy() {
return this;
}
@Override
protected StatusCategory createStatusCategory() {
return StatusCategory.createToDo();
}
@Override
protected Map<StateEnumNoMigr, String> getTransitionMap() {
Map<StateEnumNoMigr, String> transitionMap = new HashMap<StateEnumNoMigr, String>();
transitionMap.put(bug_neww, NO_TRANSITION);
transitionMap.put(bug_inProgress, "4");
transitionMap.put(bug_resolved, "5");
transitionMap.put(bug_verified, "2");
transitionMap.put(bug_reopened, NO_TRANSITION);
return transitionMap;
}
}, //
//
//
ep_neww("1", "com.ibm.team.apt.epic.workflow.state.s1", IssueType.EPIC, "Open", StateEnumNoMigr.bug_neww) {
@Override
protected StatusCategory createStatusCategory() {
return StatusCategory.createToDo();
}
@Override
protected Map<StateEnumNoMigr, String> getTransitionMap() {
Map<StateEnumNoMigr, String> transitionMap = new HashMap<StateEnumNoMigr, String>();
transitionMap.put(ep_neww, NO_TRANSITION);
transitionMap.put(ep_inProgress, "4");
transitionMap.put(ep_done, NO_TRANSITION);
transitionMap.put(ep_deferred, "361");
transitionMap.put(ep_invalid, "371");
return transitionMap;
}
}, //
ep_inProgress("3", "com.ibm.team.apt.epic.workflow.state.s2", IssueType.EPIC, "In Progress", StateEnumNoMigr.bug_inProgress) {
@Override
protected StatusCategory createStatusCategory() {
return StatusCategory.createInProgress();
}
@Override
protected Map<StateEnumNoMigr, String> getTransitionMap() {
Map<StateEnumNoMigr, String> transitionMap = new HashMap<StateEnumNoMigr, String>();
transitionMap.put(ep_neww, "301");
transitionMap.put(ep_inProgress, NO_TRANSITION);
transitionMap.put(ep_done, "311");
transitionMap.put(ep_deferred, "331");
transitionMap.put(ep_invalid, "321");
return transitionMap;
}
}, //
ep_done("10001", "com.ibm.team.apt.epic.workflow.state.s3", IssueType.EPIC, "Done", StateEnumNoMigr.bug_verified) {
@Override
protected StatusCategory createStatusCategory() {
return StatusCategory.createDone();
}
@Override
protected Map<StateEnumNoMigr, String> getTransitionMap() {
Map<StateEnumNoMigr, String> transitionMap = new HashMap<StateEnumNoMigr, String>();
transitionMap.put(ep_neww, "391");
transitionMap.put(ep_inProgress, NO_TRANSITION);
transitionMap.put(ep_done, NO_TRANSITION);
transitionMap.put(ep_deferred, NO_TRANSITION);
transitionMap.put(ep_invalid, NO_TRANSITION);
return transitionMap;
}
@Override
public boolean isFinished() {
return false;
}
}, //
ep_deferred("10100", "com.ibm.team.apt.epic.workflow.state.s5", IssueType.EPIC, "Deferred", StateEnumNoMigr.bug_reopened) {
@Override
protected StatusCategory createStatusCategory() {
// TODO Auto-generated method stub
return null;
}
@Override
protected Map<StateEnumNoMigr, String> getTransitionMap() {
Map<StateEnumNoMigr, String> transitionMap = new HashMap<StateEnumNoMigr, String>();
transitionMap.put(ep_neww, "341");
transitionMap.put(ep_inProgress, "351");
transitionMap.put(ep_done, NO_TRANSITION);
transitionMap.put(ep_deferred, NO_TRANSITION);
transitionMap.put(ep_invalid, NO_TRANSITION);
return transitionMap;
}
}, //
ep_invalid("10101", "com.ibm.team.apt.epic.workflow.state.s6", IssueType.EPIC, "Invalid", StateEnumNoMigr.bug_reopened) {
@Override
protected StatusCategory createStatusCategory() {
return StatusCategory.createToDo();
}
@Override
protected Map<StateEnumNoMigr, String> getTransitionMap() {
Map<StateEnumNoMigr, String> transitionMap = new HashMap<StateEnumNoMigr, String>();
transitionMap.put(ep_neww, "381");
transitionMap.put(ep_inProgress, NO_TRANSITION);
transitionMap.put(ep_done, NO_TRANSITION);
transitionMap.put(ep_deferred, NO_TRANSITION);
transitionMap.put(ep_invalid, NO_TRANSITION);
return transitionMap;
}
}, //
//
//
us_neww("1", "com.ibm.team.apt.story.idea", IssueType.USER_STORY, "Open", StateEnumNoMigr.bug_neww) {
@Override
protected StatusCategory createStatusCategory() {
return StatusCategory.createToDo();
}
@Override
protected Map<StateEnumNoMigr, String> getTransitionMap() {
Map<StateEnumNoMigr, String> transitionMap = new HashMap<StateEnumNoMigr, String>();
transitionMap.put(us_neww, NO_TRANSITION);
transitionMap.put(us_inProgress, "4");
transitionMap.put(us_implemented, "331");
transitionMap.put(us_done, "341");
transitionMap.put(us_deferred, "311");
transitionMap.put(us_invalid, "321");
return transitionMap;
}
}, //
us_inProgress("3", "com.ibm.team.apt.story.defined", IssueType.USER_STORY, "In Progress", StateEnumNoMigr.bug_inProgress) {
@Override
protected StatusCategory createStatusCategory() {
return StatusCategory.createInProgress();
}
@Override
protected Map<StateEnumNoMigr, String> getTransitionMap() {
Map<StateEnumNoMigr, String> transitionMap = new HashMap<StateEnumNoMigr, String>();
transitionMap.put(us_neww, "301");
transitionMap.put(us_inProgress, NO_TRANSITION);
transitionMap.put(us_implemented, "351");
transitionMap.put(us_done, NO_TRANSITION);
transitionMap.put(us_deferred, "361");
transitionMap.put(us_invalid, NO_TRANSITION);
return transitionMap;
}
}, //
us_implemented("10102", "com.ibm.team.apt.story.tested", IssueType.USER_STORY, "Implemented", StateEnumNoMigr.bug_resolved) {
@Override
protected StatusCategory createStatusCategory() {
return StatusCategory.createInProgress();
}
@Override
protected Map<StateEnumNoMigr, String> getTransitionMap() {
Map<StateEnumNoMigr, String> transitionMap = new HashMap<StateEnumNoMigr, String>();
transitionMap.put(us_neww, "401");
transitionMap.put(us_inProgress, NO_TRANSITION);
transitionMap.put(us_implemented, NO_TRANSITION);
transitionMap.put(us_done, "391");
transitionMap.put(us_deferred, "381");
transitionMap.put(us_invalid, NO_TRANSITION);
return transitionMap;
}
}, //
us_done("10001", "com.ibm.team.apt.story.verified", IssueType.USER_STORY, "Done", StateEnumNoMigr.bug_verified) {
@Override
protected StatusCategory createStatusCategory() {
return StatusCategory.createDone();
}
@Override
protected Map<StateEnumNoMigr, String> getTransitionMap() {
Map<StateEnumNoMigr, String> transitionMap = new HashMap<StateEnumNoMigr, String>();
transitionMap.put(us_neww, "411");
transitionMap.put(us_inProgress, NO_TRANSITION);
transitionMap.put(us_implemented, NO_TRANSITION);
transitionMap.put(us_done, NO_TRANSITION);
transitionMap.put(us_deferred, NO_TRANSITION);
transitionMap.put(us_invalid, NO_TRANSITION);
return transitionMap;
}
@Override
public boolean isFinished() {
return false;
}
}, //
us_deferred("10100", "com.ibm.team.apt.storyWorkflow.state.s1", IssueType.USER_STORY, "Deferred",
StateEnumNoMigr.bug_reopened) {
@Override
protected StatusCategory createStatusCategory() {
return StatusCategory.createToDo();
}
@Override
protected Map<StateEnumNoMigr, String> getTransitionMap() {
Map<StateEnumNoMigr, String> transitionMap = new HashMap<StateEnumNoMigr, String>();
transitionMap.put(us_neww, "431");
transitionMap.put(us_inProgress, "421");
transitionMap.put(us_implemented, NO_TRANSITION);
transitionMap.put(us_done, NO_TRANSITION);
transitionMap.put(us_deferred, NO_TRANSITION);
transitionMap.put(us_invalid, "441");
return transitionMap;
}
}, //
us_invalid("10101", "com.ibm.team.apt.storyWorkflow.state.s2", IssueType.USER_STORY, "Invalid",
StateEnumNoMigr.bug_reopened) {
@Override
protected StatusCategory createStatusCategory() {
return StatusCategory.createToDo();
}
@Override
protected Map<StateEnumNoMigr, String> getTransitionMap() {
Map<StateEnumNoMigr, String> transitionMap = new HashMap<StateEnumNoMigr, String>();
transitionMap.put(us_neww, "371");
transitionMap.put(us_inProgress, NO_TRANSITION);
transitionMap.put(us_implemented, NO_TRANSITION);
transitionMap.put(us_done, NO_TRANSITION);
transitionMap.put(us_deferred, NO_TRANSITION);
transitionMap.put(us_invalid, NO_TRANSITION);
return transitionMap;
}
}, //
//
//
bn_unqualified("10103", "51", IssueType.BUSINESS_NEED, "Unqualified", StateEnumNoMigr.bug_neww) {
@Override
protected StatusCategory createStatusCategory() {
return StatusCategory.createToDo();
}
@Override
protected Map<StateEnumNoMigr, String> getTransitionMap() {
Map<StateEnumNoMigr, String> transitionMap = new HashMap<StateEnumNoMigr, String>();
transitionMap.put(bn_unqualified, NO_TRANSITION);
transitionMap.put(bn_qualified, "11");
transitionMap.put(bn_approved, NO_TRANSITION);
transitionMap.put(bn_estimationOk, NO_TRANSITION);
transitionMap.put(bn_readyProduction, NO_TRANSITION);
transitionMap.put(bn_inProgress, NO_TRANSITION);
transitionMap.put(bn_developmentDone, NO_TRANSITION);
transitionMap.put(bn_closed, "31");
transitionMap.put(bn_deferred, "41");
return transitionMap;
}
}, // 51 business need
bn_qualified("10104", "52", IssueType.BUSINESS_NEED, "Qualified", StateEnumNoMigr.bug_inProgress) {
@Override
protected StatusCategory createStatusCategory() {
return StatusCategory.createToDo();
}
@Override
protected Map<StateEnumNoMigr, String> getTransitionMap() {
Map<StateEnumNoMigr, String> transitionMap = new HashMap<StateEnumNoMigr, String>();
transitionMap.put(bn_unqualified, NO_TRANSITION);
transitionMap.put(bn_qualified, "21");
transitionMap.put(bn_approved, "51");
transitionMap.put(bn_estimationOk, NO_TRANSITION);
transitionMap.put(bn_readyProduction, NO_TRANSITION);
transitionMap.put(bn_inProgress, NO_TRANSITION);
transitionMap.put(bn_developmentDone, NO_TRANSITION);
transitionMap.put(bn_closed, "71");
transitionMap.put(bn_deferred, "61");
return transitionMap;
}
}, // ? just guessing
bn_estimationOk("10106", "com.ibm.team.workitem.businessneedWorkflow.state.s2", IssueType.BUSINESS_NEED,
"Estimation OK", StateEnumNoMigr.bug_inProgress) {
@Override
protected StatusCategory createStatusCategory() {
return StatusCategory.createToDo();
}
@Override
protected Map<StateEnumNoMigr, String> getTransitionMap() {
Map<StateEnumNoMigr, String> transitionMap = new HashMap<StateEnumNoMigr, String>();
transitionMap.put(bn_unqualified, "151");
transitionMap.put(bn_qualified, "141");
transitionMap.put(bn_approved, "131");
transitionMap.put(bn_estimationOk, NO_TRANSITION);
transitionMap.put(bn_readyProduction, NO_TRANSITION);
transitionMap.put(bn_inProgress, NO_TRANSITION);
transitionMap.put(bn_developmentDone, NO_TRANSITION);
transitionMap.put(bn_closed, NO_TRANSITION);
transitionMap.put(bn_deferred, "161");
return transitionMap;
}
}, //
bn_approved("10105", "53", IssueType.BUSINESS_NEED, "Approved", StateEnumNoMigr.bug_inProgress) {
@Override
protected StatusCategory createStatusCategory() {
return StatusCategory.createToDo();
}
@Override
protected Map<StateEnumNoMigr, String> getTransitionMap() {
Map<StateEnumNoMigr, String> transitionMap = new HashMap<StateEnumNoMigr, String>();
transitionMap.put(bn_unqualified, NO_TRANSITION);
transitionMap.put(bn_qualified, "81");
transitionMap.put(bn_approved, NO_TRANSITION);
transitionMap.put(bn_estimationOk, "91");
transitionMap.put(bn_readyProduction, "101");
transitionMap.put(bn_inProgress, NO_TRANSITION);
transitionMap.put(bn_developmentDone, NO_TRANSITION);
transitionMap.put(bn_closed, "111");
transitionMap.put(bn_deferred, "121");
return transitionMap;
}
}, // 53 business need
bn_readyProduction("10107", "com.ibm.team.workitem.businessneedWorkflow.state.s5", IssueType.BUSINESS_NEED,
"Ready for Production", StateEnumNoMigr.bug_inProgress) {
@Override
protected StatusCategory createStatusCategory() {
return StatusCategory.createToDo();
}
@Override
protected Map<StateEnumNoMigr, String> getTransitionMap() {
Map<StateEnumNoMigr, String> transitionMap = new HashMap<StateEnumNoMigr, String>();
transitionMap.put(bn_unqualified, NO_TRANSITION);
transitionMap.put(bn_qualified, NO_TRANSITION);
transitionMap.put(bn_approved, "171");
transitionMap.put(bn_estimationOk, "201");
transitionMap.put(bn_readyProduction, NO_TRANSITION);
transitionMap.put(bn_inProgress, "191");
transitionMap.put(bn_developmentDone, "211");
transitionMap.put(bn_closed, NO_TRANSITION);
transitionMap.put(bn_deferred, "181");
return transitionMap;
}
}, // business
bn_inProgress("3", "com.ibm.team.workitem.businessneedWorkflow.state.s7", IssueType.BUSINESS_NEED, "In Progress",
StateEnumNoMigr.bug_inProgress) {
@Override
protected StatusCategory createStatusCategory() {
return StatusCategory.createInProgress();
}
@Override
protected Map<StateEnumNoMigr, String> getTransitionMap() {
Map<StateEnumNoMigr, String> transitionMap = new HashMap<StateEnumNoMigr, String>();
transitionMap.put(bn_unqualified, NO_TRANSITION);
transitionMap.put(bn_qualified, NO_TRANSITION);
transitionMap.put(bn_approved, NO_TRANSITION);
transitionMap.put(bn_estimationOk, NO_TRANSITION);
transitionMap.put(bn_readyProduction, "221");
transitionMap.put(bn_inProgress, NO_TRANSITION);
transitionMap.put(bn_developmentDone, "231");
transitionMap.put(bn_closed, NO_TRANSITION);
transitionMap.put(bn_deferred, "291");
return transitionMap;
}
}, //
bn_developmentDone("10108", "com.ibm.team.workitem.businessneedWorkflow.state.s6", IssueType.BUSINESS_NEED,
"Development Done", StateEnumNoMigr.bug_inProgress) {
@Override
protected StatusCategory createStatusCategory() {
return StatusCategory.createInProgress();
}
@Override
protected Map<StateEnumNoMigr, String> getTransitionMap() {
Map<StateEnumNoMigr, String> transitionMap = new HashMap<StateEnumNoMigr, String>();
transitionMap.put(bn_unqualified, NO_TRANSITION);
transitionMap.put(bn_qualified, NO_TRANSITION);
transitionMap.put(bn_approved, NO_TRANSITION);
transitionMap.put(bn_estimationOk, NO_TRANSITION);
transitionMap.put(bn_readyProduction, "241");
transitionMap.put(bn_inProgress, "251");
transitionMap.put(bn_developmentDone, NO_TRANSITION);
transitionMap.put(bn_closed, "261");
transitionMap.put(bn_deferred, "301");
return transitionMap;
}
}, //
bn_deferred("10100", "54", IssueType.BUSINESS_NEED, "Deferred", StateEnumNoMigr.bug_reopened) {
@Override
protected StatusCategory createStatusCategory() {
return StatusCategory.createToDo();
}
@Override
protected Map<StateEnumNoMigr, String> getTransitionMap() {
Map<StateEnumNoMigr, String> transitionMap = new HashMap<StateEnumNoMigr, String>();
transitionMap.put(bn_unqualified, "391");
transitionMap.put(bn_qualified, "371");
transitionMap.put(bn_approved, "321");
transitionMap.put(bn_estimationOk, "351");
transitionMap.put(bn_readyProduction, "381");
transitionMap.put(bn_inProgress, "361");
transitionMap.put(bn_developmentDone, "341");
transitionMap.put(bn_closed, "331");
transitionMap.put(bn_deferred, NO_TRANSITION);
return transitionMap;
}
},
bn_closed("6", "55", IssueType.BUSINESS_NEED, "Closed", StateEnumNoMigr.bug_verified) {
@Override
protected StatusCategory createStatusCategory() {
return StatusCategory.createDone();
}
@Override
protected Map<StateEnumNoMigr, String> getTransitionMap() {
Map<StateEnumNoMigr, String> transitionMap = new HashMap<StateEnumNoMigr, String>();
transitionMap.put(bn_unqualified, "271");
transitionMap.put(bn_qualified, NO_TRANSITION);
transitionMap.put(bn_approved, NO_TRANSITION);
transitionMap.put(bn_estimationOk, NO_TRANSITION);
transitionMap.put(bn_readyProduction, NO_TRANSITION);
transitionMap.put(bn_inProgress, "281");
transitionMap.put(bn_developmentDone, NO_TRANSITION);
transitionMap.put(bn_closed, NO_TRANSITION);
transitionMap.put(bn_deferred, "311");
return transitionMap;
}
@Override
public boolean isFinished() {
return false;
}
},
//
//
imp_neww("1", "com.ibm.team.workitem.impedimentWorkflow.state.s1", IssueType.IMPEDIMENT, "Open", StateEnumNoMigr.bug_neww) {
@Override
protected StatusCategory createStatusCategory() {
return StatusCategory.createToDo();
}
@Override
protected Map<StateEnumNoMigr, String> getTransitionMap() {
Map<StateEnumNoMigr, String> transitionMap = new HashMap<StateEnumNoMigr, String>();
transitionMap.put(imp_neww, NO_TRANSITION);
transitionMap.put(imp_invalid, NO_TRANSITION);
transitionMap.put(imp_resolved, NO_TRANSITION);
return transitionMap;
}
}, //
imp_resolved("5", "com.ibm.team.workitem.impedimentWorkflow.state.s2", IssueType.IMPEDIMENT, "Resolved",
StateEnumNoMigr.bug_resolved) {
@Override
protected StatusCategory createStatusCategory() {
return StatusCategory.createDone();
}
@Override
protected Map<StateEnumNoMigr, String> getTransitionMap() {
Map<StateEnumNoMigr, String> transitionMap = new HashMap<StateEnumNoMigr, String>();
transitionMap.put(imp_neww, NO_TRANSITION);
transitionMap.put(imp_invalid, NO_TRANSITION);
transitionMap.put(imp_resolved, NO_TRANSITION);
return transitionMap;
}
@Override
public boolean isFinished() {
return false;
}
}, //
imp_invalid("10101", "com.ibm.team.workitem.impedimentWorkflow.state.s3", IssueType.IMPEDIMENT, "Invalid",
StateEnumNoMigr.bug_reopened) {
@Override
protected StatusCategory createStatusCategory() {
return StatusCategory.createToDo();
}
@Override
protected Map<StateEnumNoMigr, String> getTransitionMap() {
Map<StateEnumNoMigr, String> transitionMap = new HashMap<StateEnumNoMigr, String>();
transitionMap.put(imp_neww, NO_TRANSITION);
transitionMap.put(imp_invalid, NO_TRANSITION);
transitionMap.put(imp_resolved, NO_TRANSITION);
return transitionMap;
}
}, //
//
//
task_neww("1", "1", IssueType.TASK, "Open", StateEnumNoMigr.bug_neww) {
@Override
protected StatusCategory createStatusCategory() {
return StatusCategory.createToDo();
}
@Override
protected Map<StateEnumNoMigr, String> getTransitionMap() {
Map<StateEnumNoMigr, String> transitionMap = new HashMap<StateEnumNoMigr, String>();
transitionMap.put(task_neww, NO_TRANSITION);
transitionMap.put(task_inProgress, "51");
transitionMap.put(task_invalid, "21");
transitionMap.put(task_resolved, "11");
return transitionMap;
}
}, //
task_inProgress("3", "2", IssueType.TASK, "In Progress", StateEnumNoMigr.bug_neww) {
@Override
protected StatusCategory createStatusCategory() {
return StatusCategory.createToDo();
}
@Override
protected Map<StateEnumNoMigr, String> getTransitionMap() {
Map<StateEnumNoMigr, String> transitionMap = new HashMap<StateEnumNoMigr, String>();
transitionMap.put(task_neww, "71");
transitionMap.put(task_inProgress, NO_TRANSITION);
transitionMap.put(task_invalid, NO_TRANSITION);
transitionMap.put(task_resolved, "61");
return transitionMap;
}
}, //
task_resolved("5", "3", IssueType.TASK, "Resolved", StateEnumNoMigr.bug_resolved) {
@Override
protected StatusCategory createStatusCategory() {
return StatusCategory.createDone();
}
@Override
protected Map<StateEnumNoMigr, String> getTransitionMap() {
Map<StateEnumNoMigr, String> transitionMap = new HashMap<StateEnumNoMigr, String>();
transitionMap.put(task_neww, "31");
transitionMap.put(task_inProgress, NO_TRANSITION);
transitionMap.put(task_invalid, NO_TRANSITION);
transitionMap.put(task_resolved, NO_TRANSITION);
return transitionMap;
}
@Override
public boolean isFinished() {
return false;
}
}, //
task_invalid("10101", "com.ibm.team.workitem.taskWorkflow.state.s4", IssueType.TASK, "Invalid",
StateEnumNoMigr.bug_reopened) {
@Override
protected StatusCategory createStatusCategory() {
return StatusCategory.createToDo();
}
@Override
protected Map<StateEnumNoMigr, String> getTransitionMap() {
Map<StateEnumNoMigr, String> transitionMap = new HashMap<StateEnumNoMigr, String>();
transitionMap.put(task_neww, "41");
transitionMap.put(task_inProgress, NO_TRANSITION);
transitionMap.put(task_invalid, NO_TRANSITION);
transitionMap.put(task_resolved, NO_TRANSITION);
return transitionMap;
}
}; //
public static final String NO_TRANSITION = "noFriggingTransition";
static private final Logger LOGGER = Logger.getLogger(StateEnumNoMigr.class.getName());
static {
LOGGER.addHandler(ExportManager.DEFAULT_LOG_HANDLER);
}
private String rtcId;
private String jiraId;
private IssueType issueType;
private String statusName;
private IssueStatus issueStatus;
private StateEnumNoMigr proxy;
private StateEnumNoMigr(String jiraId, String rtcId, IssueType issueType, String statusName, StateEnumNoMigr proxy) {
this.rtcId = rtcId;
this.jiraId = jiraId;
this.issueType = issueType;
this.statusName = statusName;
this.proxy = proxy;
}
public String getRtcId() {
return rtcId;
}
public String getJiraId() {
return jiraId;
}
public IssueType getIssueType() {
return issueType;
}
public String getStatusName() {
return statusName;
}
public StateEnumNoMigr getProxy() {
return this.proxy;
}
public IssueStatus getIssueStatus() {
if (issueStatus == null) {
IssueStatus result = createIssueStatus();
result.setStatusCategory(StatusCategory.createToDo());
}
IssueStatus result = createIssueStatus();
result.setStatusCategory(StatusCategory.createToDo());
return result;
}
public CustomFieldOption getCustomFieldOption() {
return new CustomFieldOption(getJiraId());
}
public static Optional<StateEnumNoMigr> forJiraId(String jiraId, IssueType issueType) {
EnumSet<StateEnumNoMigr> all = EnumSet.allOf(StateEnumNoMigr.class);
return all
.stream()
.filter(
item -> item.getJiraId().equals(jiraId) && item.getIssueType() != null
&& item.getIssueType().equals(issueType)).findFirst();
}
public static Optional<StateEnumNoMigr> forRtcId(String rtcId, IssueType issueType) {
// handle adoption item
if ("com.ibm.team.rtc.workflow.adoption.state.s1".equals(rtcId)) {
return Optional.of(us_neww);
} else if ("com.ibm.team.rtc.workflow.adoption.state.s2".equals(rtcId)) {
return Optional.of(us_inProgress);
} else if ("com.ibm.team.rtc.workflow.adoption.state.s3".equals(rtcId)) {
return Optional.of(us_invalid);
} else if ("com.ibm.team.rtc.workflow.adoption.state.s4".equals(rtcId)) {
return Optional.of(us_done);
}
EnumSet<StateEnumNoMigr> all = EnumSet.allOf(StateEnumNoMigr.class);
return all
.stream()
.filter(
item -> item.getRtcId().equals(rtcId) && item.getIssueType() != null
&& item.getIssueType().equals(issueType)).findFirst();
}
protected IssueStatus createIssueStatus() {
IssueStatus result = new IssueStatus();
result.setId(this.getJiraId());
result.setName(this.getStatusName());
result.setStatusCategory(createStatusCategory());
return result;
}
public boolean isFinished() {
return false;
}
protected abstract StatusCategory createStatusCategory();
public List<String> getTransitionPath(StateEnumNoMigr targetStatus) {
return getTransitionPath(targetStatus, false);
}
public List<String> forceTransitionPath(StateEnumNoMigr targetStatus) {
return getTransitionPath(targetStatus, true);
}
/**
* The implementation.
*
* @param targetStatus
* @param force useful when need to temporarily navigate to editable state, then back
* @return
*/
private List<String> getTransitionPath(StateEnumNoMigr targetStatus, boolean force) {
List<String> path = new ArrayList<String>();
String directTansId = getTransitionId(targetStatus);
// handle no direct path
if ((NO_TRANSITION.equals(directTansId) && (!this.equals(targetStatus)) || force)) {
Map<StateEnumNoMigr, String> transitionMap = new HashMap<StateEnumNoMigr, String>();
getTransitionMap();
Set<StateEnumNoMigr> keySet = transitionMap.keySet();
for (StateEnumNoMigr stateEnum : keySet) {
if (stateEnum == targetStatus)
continue;
String intermediateTransId = getTransitionId(stateEnum);
if (!NO_TRANSITION.equals(intermediateTransId)) {
String finalTransId = stateEnum.getTransitionId(targetStatus);
if (!NO_TRANSITION.equals(finalTransId)) {
path.add(intermediateTransId);
path.add(finalTransId);
break;
}
}
}
} else {
path.add(directTansId);
}
return path;
}
private String getTransitionId(StateEnumNoMigr targetStatus) {
if (!this.getIssueType().equals(targetStatus.getIssueType()))
throw new IllegalArgumentException("Transition from start state '" + this.name() + "' to target state '"
+ targetStatus.name() + "' is not possible because they don't belong to the same set");
Map<StateEnumNoMigr, String> transitionMap = getTransitionMap();
String result = transitionMap.get(targetStatus);
if (result == null) {
throw new IllegalArgumentException("Target status for transition from start state '" + this.name()
+ "' to target state '" + targetStatus.name() + "' is not handled");
}
return result;
}
abstract protected Map<StateEnumNoMigr, String> getTransitionMap();
// Override this in "done" states
public boolean isEditable() {
return true;
}
}