package com.perforce.polarion.element.field; import java.util.Iterator; import com.perforce.p4java.Log; import com.polarion.alm.projects.model.IUser; import com.polarion.alm.tracker.model.IStatusOpt; import com.polarion.alm.tracker.model.IWorkItem; import com.polarion.core.util.types.Text; import com.polarion.platform.persistence.model.IPObjectList; import com.polarion.platform.persistence.model.IRevision; public enum WorkItemField { ID("id"), DESCRIPTION("description"), TITLE("title"), STATUS("status"), AUTHOR("author"), ASSIGNEE("assignee"), LINKED_REVISIONS( "linkedRevisions"); private final String name; WorkItemField(String name) { this.name = name; } public String get(IWorkItem workItem) { switch (this) { case ID: return workItem.getId(); case DESCRIPTION: String description = ""; Text text = workItem.getDescription(); if(text != null) { description = text.toString(); } return description; case TITLE: return workItem.getTitle(); case STATUS: IStatusOpt status = workItem.getStatus(); return status.getId(); case AUTHOR: IUser user = workItem.getAuthor(); return user.getId(); case ASSIGNEE: @SuppressWarnings("unchecked") IPObjectList<IUser> users = workItem.getAssignees(); return assigneesToString(users); case LINKED_REVISIONS: @SuppressWarnings("unchecked") IPObjectList<IRevision> revisions = workItem.getLinkedRevisions(); return linkedRevisionsToString(revisions); default: Log.info("Unsupported Polarion field: " + this.toString()); return null; } } public static WorkItemField parse(String type) { if (type != null) { for (WorkItemField t : WorkItemField.values()) { if (type.equalsIgnoreCase(t.getName())) { return t; } } } Log.info("No definition for Polarion field: " + type); return null; } private String assigneesToString(IPObjectList<IUser> users) { StringBuffer sb = new StringBuffer(); Iterator<IUser> itr = users.iterator(); while (itr.hasNext()) { IUser user = itr.next(); sb.append(user.getId()); if (itr.hasNext()) { sb.append(" "); } } return sb.toString(); } private String linkedRevisionsToString(IPObjectList<IRevision> revisions) { StringBuffer sb = new StringBuffer(); Iterator<IRevision> itr = revisions.iterator(); while (itr.hasNext()) { IRevision rev = itr.next(); sb.append(rev.getRevision()); if (itr.hasNext()) { sb.append(" "); } } return sb.toString(); } public String getName() { return name; } }
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#5 | 18028 | Paul Allen |
Polarion WorkItem link for Swarm. Uses Perforce counter 'Polarion.Server.Url' for the Polarion Server e.g. http://phooey-win.das.perforce.com |
||
#4 | 17833 | Paul Allen | Status and Linked Revisions now bi-directional. | ||
#3 | 17338 | Paul Allen | Job scanner - looks for changes to Perforce Jobs and updates the linked WorkItems. | ||
#2 | 16772 | Paul Allen | Basic Job Field replication and framework for Fixes. | ||
#1 | 16771 | Paul Allen |
Added Perforce JOB Create/Update/Delete support. Updated p4java to 15.1 |