📄 hpdlfacade.java
字号:
/*
* Created on 2004-10-16
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package com.hongsoft.agile.hpdl;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import com.hongsoft.res.pojo.PrivilegeType;
/**
* @author hongsoft.com
*
* TODO 这里只考虑了一个流程定义文件,以后可能要考虑多个文件的解析问题
*/
public class HpdlFacade {
private static final String PROCESS_DEF_FILE_NAME = "processDefine.xml";
private static ProcessesObject po;
/**
* 解析流程定义文件
*
* @return @throws
* HpdlException
*/
public static ProcessesObject getProcessesObject(Session session)
throws HpdlException, HibernateException {
po = HpdlFactory.createPackageObject(session, PROCESS_DEF_FILE_NAME);
return po;
}
/**
* 得到流程定义中的所有的流程的LIST
* @return ProcessObject的list
*/
public static List getProcessList()
{
return po.getProcessObjectList();
}
/**
* 得到活动定义对应的流程定义ID,如果没有,则返回""
*
* @param activityDefId
* @return @throws
* HpdlException
*/
public static String getCorrespondingSubProcessId(String activityDefId) {
List pList = po.getProcessObjectList();
for (int i = 0; i < pList.size(); i++) {
ProcessObject process = (ProcessObject) pList.get(i);
List aList = process.getActivityObjectList();
for (int j = 0; j < aList.size(); j++) {
ActivityObject ao = (ActivityObject) aList.get(j);
if (ao.getActivityDefId().equals(activityDefId))
return ao.getCorrespondingSubProcessDefId();
}
}
return "";
}
/**
* 得到活动定义对应的joinType,如果没有,则返回""
*
* @param activityDefId
* @return @throws
* HpdlException
*/
public static String getJoinType(String activityDefId) {
List pList = po.getProcessObjectList();
for (int i = 0; i < pList.size(); i++) {
ProcessObject process = (ProcessObject) pList.get(i);
List aList = process.getActivityObjectList();
for (int j = 0; j < aList.size(); j++) {
ActivityObject ao = (ActivityObject) aList.get(j);
if (ao.getActivityDefId().equals(activityDefId))
return ao.getJoinType();
}
}
return "";
}
/**
* 得到活动定义对应的活动名称,如果没有,则返回""
*
* @param activityDefId
* @return @throws
* HpdlException
*/
public static String getActivityName(String activityDefId) {
List pList = po.getProcessObjectList();
for (int i = 0; i < pList.size(); i++) {
ProcessObject process = (ProcessObject) pList.get(i);
List aList = process.getActivityObjectList();
for (int j = 0; j < aList.size(); j++) {
ActivityObject ao = (ActivityObject) aList.get(j);
if (ao.getActivityDefId().equals(activityDefId))
return ao.getActivityDefName();
}
}
return "";
}
/**
* 得到流程定义对应的流程名称,如果没有,则返回""
*
* @param activityDefId
* @return @throws
* HpdlException
*/
public static String getProcessName(String processDefId) {
List pList = po.getProcessObjectList();
for (int i = 0; i < pList.size(); i++) {
ProcessObject process = (ProcessObject) pList.get(i);
if (process.getProcessDefId().equals(processDefId))
return process.getProcessName();
}
return "";
}
/**
* 得到某流程的某个活动后面的活动的nextActivity的list 如果没有,返回null
*
* @param processDefId
* @return
*/
public static List getNextActivityDefList(String processDefId,
String activityDefId) {
List pList = po.getProcessObjectList();
for (int i = 0; i < pList.size(); i++) {
ProcessObject process = (ProcessObject) pList.get(i);
if (processDefId.equalsIgnoreCase(process.getProcessDefId())) {
List aList = process.getActivityObjectList();
for (int j = 0; j < aList.size(); j++) {
ActivityObject ao = (ActivityObject) aList.get(j);
if (activityDefId.equalsIgnoreCase(ao.getActivityDefId()))
return ao.getNextActivityList();
}
}
}
return null;
}
/**
* 得到某流程的某个活动前面的活动的preActivity的list 如果没有,返回null
*
* @param processDefId
* @return
*/
public static List getPreActivityDefList(String processDefId,
String activityDefId) {
List pList = po.getProcessObjectList();
for (int i = 0; i < pList.size(); i++) {
ProcessObject process = (ProcessObject) pList.get(i);
if (processDefId.equalsIgnoreCase(process.getProcessDefId())) {
List aList = process.getActivityObjectList();
for (int j = 0; j < aList.size(); j++) {
ActivityObject ao = (ActivityObject) aList.get(j);
if (activityDefId.equalsIgnoreCase(ao.getActivityDefId()))
return ao.getPreActivityList();
}
}
}
return null;
}
/**
* 得到所有活动的ID/NAME,并从2开始排序,准备存到数据库中
*
* @param processDefId
* @return
*/
public static List getPrivelegeList(ProcessesObject po) {
List list = new ArrayList();
int typeId = 2;
List pList = po.getProcessObjectList();
for (int i = 0; i < pList.size(); i++) {
ProcessObject process = (ProcessObject) pList.get(i);
List aList = process.getActivityObjectList();
for (int j = 0; j < aList.size(); j++) {
ActivityObject ao = (ActivityObject) aList.get(j);
if (!ao.getActivityDefId().equalsIgnoreCase("start")
&& !ao.getActivityDefId().equalsIgnoreCase("end")) {
PrivilegeType pt = new PrivilegeType();
pt.setTypeID(typeId);
typeId++;
pt.setName(ao.getActivityDefId());
pt.setDescription(ao.getActivityDefName());
list.add(pt);
pt = null;
}
}
}
return list;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -