Java tutorial
/** * PureInfo Quake * @(#)WorkflowMgrImpl.java 1.0 Oct 14, 2005 * * Copyright(c) 2004-2005, PureInfo Information Technology Corp. Ltd. * All rights reserved, see the license file. * * www.pureinfo.com.cn */ package com.pureinfo.srm.config.workflow.domain; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.dom4j.Element; import com.pureinfo.force.exception.PureException; import com.pureinfo.srm.config.workflow.model.WfProcess; import com.pureinfo.srm.config.workflow.model.WfRole; /** * <P> * Created on Oct 14, 2005 9:10:03 AM <BR> * Last modified on Oct 14, 2005 * </P> * * @author Freeman.Hu * @version 1.0, Oct 14, 2005 * @since Quake 1.0 */ public class WorkflowMgrImpl implements IWorkflowMgr { public final static String ELEMENT_ROLE = "role"; public final static String ELEMENT_PROCESS = "process"; public final static String ELEMENT_ROLES = "roles"; public final static String ELEMENT_PROCESSES = "processes"; private Map /* WfRole */ m_roles; private Map /* WfProcess */ m_processes; public WfRole getRole(String _sId) throws PureException { if (m_roles == null) { throw new PureException(PureException.UNKNOWN, "init role"); } return (WfRole) m_roles.get(_sId); } public Map /* WfRole */ getRoles() throws PureException { if (m_roles == null) { throw new PureException(PureException.UNKNOWN, "init role"); } return m_roles; } /** * @see com.pureinfo.srm.config.workflow.domain.IWorkflowMgr#loadRolesFromXML(org.dom4j.Element) */ public void loadRolesFromXML(Element _element) throws PureException { m_roles = new HashMap(); List roleEles = _element.elements(ELEMENT_ROLE); for (Iterator iter = roleEles.iterator(); iter.hasNext();) { Element roleEle = (Element) iter.next(); WfRole role = new WfRole(); role.fromXML(roleEle); m_roles.put(role.getName(), role); } } /** * @see com.pureinfo.srm.config.workflow.domain.IWorkflowMgr#storeRoleToXML(org.dom4j.Element) */ public void storeRolesToXML(Element _element) throws PureException { if (m_roles == null) { throw new PureException(PureException.UNKNOWN, "init role"); } for (Iterator iter = m_roles.keySet().iterator(); iter.hasNext();) { WfRole role = (WfRole) m_roles.get(iter.next()); Element roleEle = _element.addElement(ELEMENT_ROLE); role.toXMLElement(roleEle); } } public void loadProcessesFromXML(Element _element) throws PureException { m_processes = new HashMap(); List processEles = _element.elements(ELEMENT_PROCESS); for (Iterator iter = processEles.iterator(); iter.hasNext();) { Element processEle = (Element) iter.next(); WfProcess process = new WfProcess(); process.fromXML(processEle); m_processes.put(process.getName(), process); } } public void storeProcessesToXML(Element _element) throws PureException { if (m_roles == null) { throw new PureException(PureException.UNKNOWN, "init role"); } for (Iterator iter = m_processes.keySet().iterator(); iter.hasNext();) { WfProcess process = (WfProcess) m_processes.get(iter.next()); Element processEle = _element.addElement(ELEMENT_PROCESS); process.toXMLElement(processEle); } } /** * @see com.pureinfo.srm.config.workflow.domain.IWorkflowMgr#getProcess(java.lang.String) */ public WfProcess getProcess(String _sName) throws PureException { if (m_processes == null) { throw new PureException(PureException.UNKNOWN, "init process"); } return (WfProcess) m_processes.get(_sName); } public void setProcess(String _sName, WfProcess _process) throws PureException { if (m_processes == null) { throw new PureException(PureException.UNKNOWN, "init process"); } if (_process.getActivities().size() == 0) { m_processes.remove(_process.getName()); } else { m_processes.put(_sName, _process); } } /** * @see com.pureinfo.srm.config.workflow.domain.IWorkflowMgr#loadWorkflow(org.dom4j.Element) */ public void loadWorkflow(Element _element) throws PureException { loadRolesFromXML(_element.element(ELEMENT_ROLES)); loadProcessesFromXML(_element.element(ELEMENT_PROCESSES)); } /** * @see com.pureinfo.srm.config.workflow.domain.IWorkflowMgr#storeWorkflow(org.dom4j.Element) */ public void storeWorkflow(Element _element) throws PureException { storeRolesToXML(_element.addElement(ELEMENT_ROLES)); storeProcessesToXML(_element.addElement(ELEMENT_PROCESSES)); } /** * @see com.pureinfo.srm.config.workflow.domain.IWorkflowMgr#getProcesses() */ public Map getProcesses() throws PureException { return m_processes; } }