我正在自定義PLM Windchill Workflow,它提供了執行java代碼片段的機制。不幸的是,他們'插入'到準備服務的方法,這意味着有沒有辦法導入類,所以我必須包括完整的包名稱來使用它。不要試圖理解下面的代碼片段,只要看看它是如何看起來像:在方法中導入類?
wt.fc.QueryResult activities = wt.fc.PersistenceHelper.manager.find((wt.pds.StatementSpec) activitiesQuery);
while (activities.hasMoreElements()) {
wt.workflow.work.WfAssignedActivity activity = (wt.workflow.work.WfAssignedActivity) activities.nextElement();
if(activity.getDisplayIdentifier().toString().equals("Analyze Image Request")){
java.util.List<wt.workflow.work.WorkItem> workItems = wt.workflow.status.WfWorkflowStatusHelper.service.getWorkItems(activity);
for (wt.workflow.work.WorkItem workItem : workItems){
String action = workItem.getActionPerformed();
if(action != null && action.equals("Accepted")){
wt.org.WTPrincipalReference approver = workItem.getOwnership().getOwner();
n_approver = approver.getFullName() + " ("+approver.getDisplayName()+")";
wt.fc.collections.WTHashSet approverSet = new wt.fc.collections.WTHashSet(java.util.Arrays.asList(approver));
wt.project.Role role = wt.project.Role.toRole("APPROVER");
com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.setChangeItemParticipants(report, role, approverSet);
break;
}
}
break;
}
}
我的問題是 - 如何使這個代碼的可讀性更強?當然,沒有辦法在方法內部導入類,甚至沒有辦法將這個片段分成單獨的方法(因爲它被「粘貼」成一個),所以我正在尋找其他的想法。
在自定義類中編寫代碼,然後調用它? – Andreas
@Andreas我可以將一些代碼提取到分離的類並調用它,但是我必須在此代碼段中留下很多邏輯,所以是的,這是一個非常好的選項,但仍然無法解決我的主要問題。謝謝。 – Damiano