package org.fireflow.simulation.enginemodules.ousystem;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.fireflow.engine.context.RuntimeContext;
import org.fireflow.engine.exception.EngineException;
import org.fireflow.engine.modules.ousystem.Department;
import org.fireflow.engine.modules.ousystem.Group;
import org.fireflow.engine.modules.ousystem.OUSystemConnector;
import org.fireflow.engine.modules.ousystem.Role;
import org.fireflow.engine.modules.ousystem.User;
import org.fireflow.engine.modules.ousystem.impl.UserImpl;
import org.fireflow.simulation.client.SimulatorSessionFactory;
/**
* 测试用组织机构子系统链接器
*
* @author 非也 nychen2000@163.com
* Fire Workflow 官方网站:www.firesoa.com 或者 www.fireflow.org
*
*/
public class OUSystemConnector4Simulator implements OUSystemConnector {
Map<String,User> usersList = new HashMap<String,User>();
Map<String,List<User>> departmentUsersMap = new HashMap<String,List<User>>();
Map<String,List<User>> roleUsersMap = new HashMap<String,List<User>>();
Map<String,List<User>> groupUsersMap = new HashMap<String,List<User>>();
public OUSystemConnector4Simulator(){
//构造用户列表
UserImpl u = new UserImpl();
u.setDeptId("ResearchDept");
u.setDeptName("研发部");
u.setId("zhang");
u.setName("张三");
usersList.put(u.getId(), u);
u = new UserImpl();
u.setDeptId("ResearchDept");
u.setDeptName("研发部");
u.setId("li");
u.setName("李四");
usersList.put(u.getId(), u);
u = new UserImpl();
u.setDeptId("ResearchDept");
u.setDeptName("研发部");
u.setId("wang");
u.setName("王五");
usersList.put(u.getId(), u);
u = new UserImpl();
u.setDeptId("ResearchDept");
u.setDeptName("研发部");
u.setId("chen");
u.setName("陈经理");
usersList.put(u.getId(), u);
u = new UserImpl();
u.setDeptId("TestDept");
u.setDeptName("测试部");
u.setId("zhao");
u.setName("赵六");
usersList.put(u.getId(), u);
u = new UserImpl();
u.setDeptId("Sales");
u.setDeptName("市场部");
u.setId("qian");
u.setName("钱七");
usersList.put(u.getId(), u);
u = new UserImpl();
u.setDeptId("Sales");
u.setDeptName("市场部");
u.setId("sun");
u.setName("孙八");
usersList.put(u.getId(), u);
u = new UserImpl();
u.setDeptId("AdmDept");
u.setDeptName("行政部");
u.setId(SimulatorSessionFactory.SIMULATOR_DEFAULT_USER_NAME);
u.setName("FireWorkflow模拟器");
usersList.put(u.getId(), u);
//构造depargmentUser Map
List<User> deptUsersList = new ArrayList<User>();
for (User tmpU : usersList.values()){
if (tmpU.getDeptId().equals("ResearchDept")){
deptUsersList.add(tmpU);
}
}
departmentUsersMap.put("ResearchDept", deptUsersList);
deptUsersList = new ArrayList<User>(); ;
for (User tmpU : usersList.values()){
if (tmpU.getDeptId().equals("TestDept")){
deptUsersList.add(tmpU);
}
}
departmentUsersMap.put("TestDept", deptUsersList);
deptUsersList = new ArrayList<User>();
for (User tmpU : usersList.values()){
if (tmpU.getDeptId().equals("Sales")){
deptUsersList.add(tmpU);
}
}
departmentUsersMap.put("Sales", deptUsersList);
//构造roleUser Map
List<User> tmp = new ArrayList<User>();
tmp.add(usersList.get("zhang"));
tmp.add(usersList.get("li"));
tmp.add(usersList.get("wang"));
roleUsersMap.put("coder", tmp);
tmp = new ArrayList<User>();
tmp.add(usersList.get("chen"));
roleUsersMap.put("manager",tmp );
}
public User login(String userId,String password){
User u = this.findUserById(userId);
if (u!=null)return u;
u = new UserImpl();//对于不在虚拟用户系统中的而用户,直接构造UserImpl,
((UserImpl)u).setId(userId);
return u;
}
public User findUserById(String userId) {
return usersList.get(userId);
}
public List<User> findUsersInDepartment(String deptId) {
return departmentUsersMap.get(deptId);
}
public List<User> findUsersInRole(String roleId) {
return roleUsersMap.get(roleId);
}
public List<User> findUsersInGroup(String groupId) {
return groupUsersMap.get(groupId);
}
public Department findDepartmentById(String id) {
// TODO Auto-generated method stub
return null;
}
public List<Department> findAllTopDepartments() {
// TODO Auto-generated method stub
return null;
}
public List<Department> findChildDepartments(String parentId) {
// TODO Auto-generated method stub
return null;
}
public Role findRoleById(String id) {
// TODO Auto-generated method stub
return null;
}
public List<Role> findAllTopRoles() {
// TODO Auto-generated method stub
return null;
}
public List<Role> findChildRoles(String parentRoleId) {
// TODO Auto-generated method stub
return null;
}
public List<Role> findRolesInDepartment(String deptId) {
// TODO Auto-generated method stub
return null;
}
public Group findGroupById(String id) {
// TODO Auto-generated method stub
return null;
}
public List<Group> findAllGroups() {
// TODO Auto-generated method stub
return null;
}
public List<Group> findGroupsInDepartment(String deptId) {
// TODO Auto-generated method stub
return null;
}
/* (non-Javadoc)
* @see org.fireflow.engine.context.EngineModule#init(org.fireflow.engine.context.RuntimeContext)
*/
public void init(RuntimeContext runtimeContext) throws EngineException {
// TODO Auto-generated method stub
}
}