/src/main/java/com/sogou/qadev/service/cynthia/bean/impl/FlowImpl.java
Java | 1660 lines | 933 code | 209 blank | 518 comment | 227 complexity | 47d277f048997fdf63b2ad3b021289bf MD5 | raw file
Possible License(s): GPL-2.0
- package com.sogou.qadev.service.cynthia.bean.impl;
-
- import java.util.Arrays;
- import java.util.HashMap;
- import java.util.HashSet;
- import java.util.Iterator;
- import java.util.LinkedHashMap;
- import java.util.LinkedHashSet;
- import java.util.List;
- import java.util.Map;
- import java.util.Set;
-
- import org.w3c.dom.Document;
- import org.w3c.dom.Node;
-
- import bsh.This;
-
- import com.sogou.qadev.service.cynthia.bean.Action;
- import com.sogou.qadev.service.cynthia.bean.ActionRole;
- import com.sogou.qadev.service.cynthia.bean.Flow;
- import com.sogou.qadev.service.cynthia.bean.Right;
- import com.sogou.qadev.service.cynthia.bean.Role;
- import com.sogou.qadev.service.cynthia.bean.Stat;
- import com.sogou.qadev.service.cynthia.bean.UUID;
- import com.sogou.qadev.service.cynthia.bean.UserInfo;
- import com.sogou.qadev.service.cynthia.factory.DataAccessFactory;
- import com.sogou.qadev.service.cynthia.service.ConfigManager;
- import com.sogou.qadev.service.cynthia.service.DataAccessSession;
- import com.sogou.qadev.service.cynthia.service.ProjectInvolveManager;
- import com.sogou.qadev.service.cynthia.util.ArrayUtil;
- import com.sogou.qadev.service.cynthia.util.CynthiaUtil;
- import com.sogou.qadev.service.cynthia.util.XMLUtil;
-
- /**
- * @description:flow
- * @author:liming
- * @mail:liming@sogou-inc.com
- * @date:2014-5-6 下午2:15:06
- * @version:v1.0
- */
- public class FlowImpl implements Flow{
-
- private static final long serialVersionUID = -1L;
- private Map<UUID, Action> actionMap = new HashMap<UUID, Action>();
- private Set<ActionRole> actionRoleSet = new HashSet<ActionRole>();
- /**
- * flow createuser
- */
- private String createUser = "";
- /**
- * flow id
- */
- private UUID id = null;
- private boolean isProFlow = false; //是否项目管理相关流程
- /**
- * flow name
- */
- private String name = null;
-
- private Set<Right> rightSet = new HashSet<Right>();
-
- private Map<UUID, Role> roleMap = new HashMap<UUID, Role>();
-
- private Map<UUID, Stat> statMap = new HashMap<UUID, Stat>();
- /**
- *
- * <h1> Title:</h1>
- * <p> Description:init flow from root</p>
- * @date:2014-5-6
- * @param root
- * @param createUser
- */
- public FlowImpl(org.w3c.dom.Node root,String createUser){
- this.createUser = createUser;
- DataAccessFactory daf = DataAccessFactory.getInstance();
-
- Node flowNode = XMLUtil.getSingleNode(root, "flow");
-
- this.id = daf.createUUID(XMLUtil.getSingleNodeTextContent(flowNode, "id"));
- this.name = XMLUtil.getSingleNodeTextContent(flowNode, "name");
- this.isProFlow = Boolean.parseBoolean(XMLUtil.getSingleNodeTextContent(flowNode, "isProFlow"));
- List<org.w3c.dom.Node> statNodeList = XMLUtil.getNodes(flowNode, "stats/stat");
- for(org.w3c.dom.Node statNode : statNodeList){
- UUID statId = daf.createUUID(XMLUtil.getSingleNodeTextContent(statNode, "id"));
- String statName = XMLUtil.getSingleNodeTextContent(statNode, "name");
-
- StatImpl statImpl = new StatImpl(statId, this.id);
- statImpl.setName(statName);
-
- this.statMap.put(statId, statImpl);
- }
-
- List<org.w3c.dom.Node> actionNodeList = XMLUtil.getNodes(flowNode, "actions/action");
- for(org.w3c.dom.Node actionNode : actionNodeList){
- UUID actionId = daf.createUUID(XMLUtil.getSingleNodeTextContent(actionNode, "id"));
- String actionName = XMLUtil.getSingleNodeTextContent(actionNode, "name");
- String assignToMore = XMLUtil.getSingleNodeTextContent(actionNode, "assignToMore");
- UUID beginStatId = daf.createUUID(XMLUtil.getSingleNodeTextContent(actionNode, "startStatId"));
- UUID endStatId = daf.createUUID(XMLUtil.getSingleNodeTextContent(actionNode, "endStatId"));
-
- ActionImpl actionImpl = new ActionImpl(actionId, this.id);
- actionImpl.setName(actionName);
- actionImpl.setBeginStatId(beginStatId);
- actionImpl.setEndStatId(endStatId);
- actionImpl.setAssignToMore(CynthiaUtil.isNull(assignToMore) ? false : assignToMore.equals("true"));
-
- this.actionMap.put(actionId, actionImpl);
- }
-
- List<org.w3c.dom.Node> roleNodeList = XMLUtil.getNodes(flowNode, "roles/role");
- for(org.w3c.dom.Node roleNode : roleNodeList){
- UUID roleId = daf.createUUID(XMLUtil.getSingleNodeTextContent(roleNode, "id"));
- String roleName = XMLUtil.getSingleNodeTextContent(roleNode, "name");
-
- RoleImpl roleImpl = new RoleImpl(roleId, this.id);
- roleImpl.setName(roleName);
-
- this.roleMap.put(roleId, roleImpl);
- }
-
- List<org.w3c.dom.Node> actionRoleNodeList = XMLUtil.getNodes(flowNode, "actionRoles/actionRole");
- for(org.w3c.dom.Node actionRoleNode : actionRoleNodeList){
- UUID actionId = daf.createUUID(XMLUtil.getSingleNodeTextContent(actionRoleNode, "actionId"));
- UUID roleId = daf.createUUID(XMLUtil.getSingleNodeTextContent(actionRoleNode, "roleId"));
-
- this.actionRoleSet.add(new ActionRole(actionId, roleId));
- }
-
- List<org.w3c.dom.Node> rightNodeList = XMLUtil.getNodes(flowNode, "rights/right");
- for(org.w3c.dom.Node rightNode : rightNodeList){
- String username = XMLUtil.getSingleNodeTextContent(rightNode, "username");
- String nickname = CynthiaUtil.getUserAlias(username);
- UUID roleId = daf.createUUID(XMLUtil.getSingleNodeTextContent(rightNode, "roleId"));
- UUID templateId = daf.createUUID(XMLUtil.getSingleNodeTextContent(rightNode, "templateId"));
- if (templateId == null) {
- continue;
- }
- this.rightSet.add(new Right(username, templateId, roleId,nickname));
- }
- }
-
- public FlowImpl(UUID id){
- this.id = id;
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:addAction</p>
- * <p> Description:TODO</p>
- * @param beginStatId
- * @param endStatId
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#addAction(com.sogou.qadev.service.cynthia.bean.UUID, com.sogou.qadev.service.cynthia.bean.UUID)
- */
- public Action addAction(UUID beginStatId, UUID endStatId){
- UUID actionId = DataAccessFactory.getInstance().newUUID("ACTI");
- ActionImpl action = new ActionImpl(actionId, this.id);
- action.setBeginStatId(beginStatId);
- action.setEndStatId(endStatId);
- this.actionMap.put(actionId, action);
-
- return action;
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:addActionRole</p>
- * <p> Description:TODO</p>
- * @param actionId
- * @param roleId
- * @see com.sogou.qadev.service.cynthia.bean.Flow#addActionRole(com.sogou.qadev.service.cynthia.bean.UUID, com.sogou.qadev.service.cynthia.bean.UUID)
- */
- public void addActionRole(UUID actionId, UUID roleId){
- this.actionRoleSet.add(new ActionRole(actionId, roleId));
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:addRight</p>
- * <p> Description:TODO</p>
- * @param right
- * @see com.sogou.qadev.service.cynthia.bean.Flow#addRight(com.sogou.qadev.service.cynthia.bean.Right)
- */
- public void addRight(Right right){
- this.rightSet.add(right);
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:addRight</p>
- * <p> Description:TODO</p>
- * @param username
- * @param templateId
- * @param roleId
- * @see com.sogou.qadev.service.cynthia.bean.Flow#addRight(java.lang.String, com.sogou.qadev.service.cynthia.bean.UUID, com.sogou.qadev.service.cynthia.bean.UUID)
- */
- public void addRight(String username, UUID templateId, UUID roleId){
- String nickname = CynthiaUtil.getUserAlias(username);
- this.rightSet.add(new Right(username, templateId, roleId,nickname));
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:addRole</p>
- * <p> Description:TODO</p>
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#addRole()
- */
- public Role addRole(){
- UUID roleId = DataAccessFactory.getInstance().newUUID("ROLE");
- RoleImpl role = new RoleImpl(roleId, this.id);
- this.roleMap.put(roleId, role);
-
- return role;
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:addStat</p>
- * <p> Description:TODO</p>
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#addStat()
- */
- public Stat addStat(){
- UUID statId = DataAccessFactory.getInstance().newUUID("STAT");
- StatImpl statImpl = new StatImpl(statId, this.id);
- this.statMap.put(statId, statImpl);
-
- return statImpl;
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:authenticate</p>
- * <p> Description:TODO</p>
- * @param username
- * @param templateId
- * @param actionId
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#authenticate(java.lang.String, com.sogou.qadev.service.cynthia.bean.UUID, com.sogou.qadev.service.cynthia.bean.UUID)
- */
- public boolean authenticate(String username, UUID templateId, UUID actionId){
- if (username.indexOf(",") != -1) {
- username = username.split(",")[0];
- }
- Action[] actionArray = this.queryUserNodeBeginActions(username, templateId);
- for(Action action : actionArray){
- if(action.getId().equals(actionId)){
- return true;
- }
- }
-
- return false;
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:authenticate</p>
- * <p> Description:TODO</p>
- * @param username
- * @param templateId
- * @param statId
- * @param actionId
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#authenticate(java.lang.String, com.sogou.qadev.service.cynthia.bean.UUID, com.sogou.qadev.service.cynthia.bean.UUID, com.sogou.qadev.service.cynthia.bean.UUID)
- */
- public boolean authenticate(String username, UUID templateId, UUID statId, UUID actionId){
- if (username.indexOf(",") != -1) {
- username = username.split(",")[0];
- }
- Action[] actionArray = this.queryUserNodeStatActions(username, templateId, statId);
- for(Action action : actionArray){
- if(action.getId().equals(actionId)){
- return true;
- }
- }
-
- return false;
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:clone</p>
- * <p> Description:flow clone</p>
- * @return
- * @see java.lang.Object#clone()
- */
- public Flow clone(){
- FlowImpl flowImpl = new FlowImpl(this.id);
- flowImpl.name = this.name;
- flowImpl.isProFlow = this.isProFlow;
- flowImpl.createUser = this.createUser;
-
- for(UUID statId : this.statMap.keySet()){
- flowImpl.statMap.put(statId, this.statMap.get(statId).clone());
- }
-
- for(UUID actionId : this.actionMap.keySet()){
- flowImpl.actionMap.put(actionId, this.actionMap.get(actionId).clone());
- }
-
- for(UUID roleId : this.roleMap.keySet()){
- flowImpl.roleMap.put(roleId, this.roleMap.get(roleId).clone());
- }
-
- for(Right right : this.rightSet){
- flowImpl.rightSet.add(right);
- }
-
- for(ActionRole actionRole : this.actionRoleSet){
- flowImpl.actionRoleSet.add(actionRole);
- }
-
- return flowImpl;
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:equals</p>
- * <p> Description:TODO</p>
- * @param obj
- * @return
- * @see java.lang.Object#equals(java.lang.Object)
- */
- public boolean equals(Object obj){
- return this.id.equals(((FlowImpl)obj).id);
- }
- /**
- * (non-Javadoc)
- * <p> Title:getAction</p>
- * <p> Description:TODO</p>
- * @param actionName
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#getAction(java.lang.String)
- */
- public Action getAction(String actionName){
- for(Action action : this.actionMap.values()){
- if(action.getName().equals(actionName)){
- return action;
- }
- }
-
- return null;
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:getAction</p>
- * <p> Description:TODO</p>
- * @param actionId
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#getAction(com.sogou.qadev.service.cynthia.bean.UUID)
- */
- public Action getAction(UUID actionId){
- return this.actionMap.get(actionId);
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:getActionMap</p>
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#getActionMap()
- */
- public Map<UUID, Action> getActionMap() {
- return this.actionMap;
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:getActionRoleSet</p>
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#getActionRoleSet()
- */
- public Set<ActionRole> getActionRoleSet() {
- return this.actionRoleSet;
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:getActions</p>
- * <p> Description:TODO</p>
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#getActions()
- */
- public Action[] getActions(){
- return this.actionMap.values().toArray(new Action[this.actionMap.size()]);
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:getBeginStats</p>
- * <p> Description:TODO</p>
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#getBeginStats()
- */
- public Stat[] getBeginStats(){
- HashSet<Stat> statSet = new HashSet<Stat>();
- for(Action action : this.actionMap.values()){
- if(action.getBeginStatId() != null){
- continue;
- }
-
- Stat endStat = this.statMap.get(action.getEndStatId());
- if(endStat != null){
- statSet.add(endStat);
- }
- }
-
- return statSet.toArray(new Stat[statSet.size()]);
- }
-
- @Override
- public String getCreateUser() {
- return this.createUser;
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:getEndActions</p>
- * <p> Description:TODO</p>
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#getEndActions()
- */
- public Action[] getEndActions(){
- Stat[] endStats = getEndStats();
- HashSet<Action> actionSet = new HashSet<Action>();
- for(Stat stat : endStats){
- for(Action action : this.actionMap.values()){
- if(action.getEndStatId()!=null&&action.getEndStatId().equals(stat.getId()))
- actionSet.add(action);
- }
- }
-
- return actionSet.toArray(new Action[actionSet.size()]);
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:getEndStats</p>
- * <p> Description:TODO</p>
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#getEndStats()
- */
- public Stat[] getEndStats(){
- HashSet<Stat> statSet = new HashSet<Stat>();
- for(Stat stat : this.statMap.values()){
- boolean isEnd = true;
- for(Action action : this.actionMap.values()){
- if(action.getBeginStatId() != null && action.getBeginStatId().equals(stat.getId())){
- isEnd = false;
- break;
- }
- }
-
- if(isEnd){
- statSet.add(stat);
- }
- }
-
- return statSet.toArray(new Stat[statSet.size()]);
- }
-
- @Override
- public UUID getId(){
- return this.id;
- }
-
- @Override
- public String getName(){
- return this.name;
- }
-
- @Override
- public Set<Right> getRightSet() {
- return this.rightSet;
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:getRole</p>
- * <p> Description:TODO</p>
- * @param roleName
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#getRole(java.lang.String)
- */
- public Role getRole(String roleName){
- for(Role role : this.roleMap.values()){
- if(role.getName().equals(roleName)){
- return role;
- }
- }
-
- return null;
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:getRole</p>
- * <p> Description:TODO</p>
- * @param roleId
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#getRole(com.sogou.qadev.service.cynthia.bean.UUID)
- */
- public Role getRole(UUID roleId){
- return this.roleMap.get(roleId);
- }
-
- @Override
- public Map<UUID, Role> getRoleMap() {
- return this.roleMap;
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:getRoles</p>
- * <p> Description:TODO</p>
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#getRoles()
- */
- public Role[] getRoles(){
- if (ConfigManager.getProjectInvolved() && this.isProFlow) {
- return ProjectInvolveManager.getInstance().getAllRole(this.createUser).toArray(new Role[0]);
- }else {
- return this.roleMap.values().toArray(new Role[this.roleMap.size()]);
- }
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:getStartActions</p>
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#getStartActions()
- */
- public Set<Action> getStartActions(){
- HashSet<Action> actionSet = new HashSet<Action>();
- for(Action action : this.actionMap.values()){
- if(action.getBeginStatId()==null)
- actionSet.add(action);
- }
-
- return actionSet;
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:getStat</p>
- * <p> Description:TODO</p>
- * @param statName
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#getStat(java.lang.String)
- */
- public Stat getStat(String statName){
- for(Stat stat : this.statMap.values()){
- if(stat.getName().equals(statName)){
- return stat;
- }
- }
-
- return null;
- }
-
- public Stat getStat(UUID statId){
- return this.statMap.get(statId);
- }
-
- @Override
- public Map<UUID, Stat> getStatMap() {
- return this.statMap;
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:getStats</p>
- * <p> Description:TODO</p>
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#getStats()
- */
- public Stat[] getStats(){
- return this.statMap.values().toArray(new Stat[this.statMap.size()]);
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:hasActionRole</p>
- * <p> Description:TODO</p>
- * @param actionId
- * @param roleId
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#hasActionRole(com.sogou.qadev.service.cynthia.bean.UUID, com.sogou.qadev.service.cynthia.bean.UUID)
- */
- public boolean hasActionRole(UUID actionId, UUID roleId){
- return this.actionRoleSet.contains(new ActionRole(actionId, roleId));
- }
-
- public int hashCode(){
- return this.id.hashCode();
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:hasRight</p>
- * <p> Description:TODO</p>
- * @param username
- * @param templateId
- * @param roleId
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#hasRight(java.lang.String, com.sogou.qadev.service.cynthia.bean.UUID, com.sogou.qadev.service.cynthia.bean.UUID)
- */
- public boolean hasRight(String username, UUID templateId, UUID roleId){
- if (this.isProFlow) {
- return ProjectInvolveManager.getInstance().isUserInRole(username, roleId);
- }else {
- String nickname = CynthiaUtil.getUserAlias(username);
- if (username.indexOf(",") != -1) {
- username = username.split(",")[0];
- }
- return this.rightSet.contains(new Right(username, templateId, roleId,nickname));
- }
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:isActionEveryoneRole</p>
- * <p> Description:TODO</p>
- * @param actionId
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#isActionEveryoneRole(com.sogou.qadev.service.cynthia.bean.UUID)
- */
- public boolean isActionEveryoneRole(UUID actionId){
- for(ActionRole actionRole : this.actionRoleSet){
- if(actionRole.actionId.equals(actionId) && actionRole.roleId.equals(Role.everyoneUUID)){
- return true;
- }
- }
-
- return false;
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:isDeleteActionAllow</p>
- * <p> Description:TODO</p>
- * @param user
- * @param templateId
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#isDeleteActionAllow(java.lang.String, com.sogou.qadev.service.cynthia.bean.UUID)
- */
- @Override
- public boolean isDeleteActionAllow(String user, UUID templateId) {
- if(isActionEveryoneRole(Action.deleteUUID))
- return true;
-
- Role[] roleArray = queryUserNodeRoles(user, templateId);
- if(roleArray != null)
- {
- for(Role role : roleArray)
- {
- if(isRoleDeleteAction(role.getId()))
- return true;
- }
- }
- return false;
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:isEditActionAllow</p>
- * <p> Description:TODO</p>
- * @param user
- * @param templateId
- * @param assignUser
- * @param actionUser
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#isEditActionAllow(java.lang.String, com.sogou.qadev.service.cynthia.bean.UUID, java.lang.String, java.lang.String)
- */
- public boolean isEditActionAllow(String user, UUID templateId, String assignUser, String actionUser)
- {
- if(isActionEveryoneRole(Action.editUUID))
- return true;
-
- Role[] roleArray = queryUserNodeRoles(user, templateId);
- if(roleArray != null)
- {
- for(Role role : roleArray)
- {
- if(isRoleEditAction(role.getId()))
- return true;
- }
- }
-
- Set<UUID> roleIdSet = new HashSet<UUID>();
- if(roleArray != null)
- {
- for(Role role : roleArray)
- roleIdSet.add(role.getId());
- }
-
- return false;
- }
-
- public boolean isProFlow() {
- return isProFlow;
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:isReadActionAllow</p>
- * <p> Description:TODO</p>
- * @param user
- * @param templateId
- * @param assignUser
- * @param logUserArray
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#isReadActionAllow(java.lang.String, com.sogou.qadev.service.cynthia.bean.UUID, java.lang.String, java.lang.String[])
- */
- public boolean isReadActionAllow(String user, UUID templateId, String assignUser, String[] logUserArray)
- {
- if(isActionEveryoneRole(Action.readUUID))
- return true;
-
- Role[] roleArray = queryUserNodeRoles(user, templateId);
- if(roleArray != null)
- {
- for(Role role : roleArray)
- {
- if(isRoleReadAction(role.getId()))
- return true;
- }
- }
-
- Set<UUID> roleIdSet = new HashSet<UUID>();
- if(roleArray != null)
- {
- for(Role role : roleArray)
- roleIdSet.add(role.getId());
- }
-
- if(assignUser != null)
- {
- Role[] assignUserRoleArray = queryUserNodeRoles(assignUser, templateId);
- if(assignUserRoleArray != null)
- {
- for(Role assignUserRole : assignUserRoleArray)
- {
- if(roleIdSet.contains(assignUserRole.getId()))
- return true;
- }
- }
- }
-
- for(String logUser : logUserArray)
- {
- Role[] logUserRoleArray = queryUserNodeRoles(logUser, templateId);
- if(logUserRoleArray != null)
- {
- for(Role logUserRole : logUserRoleArray)
- {
- if(roleIdSet.contains(logUserRole.getId()))
- return true;
- }
- }
- }
-
- return false;
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:isRoleDeleteAction</p>
- * <p> Description:TODO</p>
- * @param roleId
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#isRoleDeleteAction(com.sogou.qadev.service.cynthia.bean.UUID)
- */
- public boolean isRoleDeleteAction(UUID roleId) {
- for(ActionRole actionRole : this.actionRoleSet){
- if(actionRole.roleId.equals(roleId) && actionRole.actionId.equals(Action.deleteUUID)){
- return true;
- }
- }
-
- return false;
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:isRoleEditAction</p>
- * <p> Description:TODO</p>
- * @param roleId
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#isRoleEditAction(com.sogou.qadev.service.cynthia.bean.UUID)
- */
- public boolean isRoleEditAction(UUID roleId){
- for(ActionRole actionRole : this.actionRoleSet){
- if(actionRole.roleId.equals(roleId) && actionRole.actionId.equals(Action.editUUID)){
- return true;
- }
- }
- return false;
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:isRoleReadAction</p>
- * <p> Description:TODO</p>
- * @param roleId
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#isRoleReadAction(com.sogou.qadev.service.cynthia.bean.UUID)
- */
- public boolean isRoleReadAction(UUID roleId){
- for(ActionRole actionRole : this.actionRoleSet){
- if(actionRole.roleId.equals(roleId) && actionRole.actionId.equals(Action.readUUID)){
- return true;
- }
- }
-
- return false;
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:queryActionRoles</p>
- * <p> Description:TODO</p>
- * @param actionId
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#queryActionRoles(com.sogou.qadev.service.cynthia.bean.UUID)
- */
- public Role[] queryActionRoles(UUID actionId){
- if (this.isProFlow) {
- return ProjectInvolveManager.getInstance().queryActionRoles(this.createUser, this, actionId);
- }else {
- Set<Role> roleSet = new HashSet<Role>();
-
- for(ActionRole actionRole : this.actionRoleSet){
- if(actionRole.actionId.equals(actionId)){
- Role role = this.roleMap.get(actionRole.roleId);
- if(role != null){
- roleSet.add(role);
- }
- }
- }
-
- return roleSet.toArray(new Role[roleSet.size()]);
- }
- }
-
- @Override
- public Set<Action> queryActionsByStartStatId(UUID statId){
- Set<Action> allActions = new HashSet<Action>();
- for (Action action : this.getActions()) {
- if (action.getBeginStatId() != null && action.getBeginStatId().equals(statId)) {
- allActions.add(action);
- }
- }
- return allActions;
- }
-
- @Override
- public Set<Action> queryActionsByEndStatId(UUID statId){
- Set<Action> allActions = new HashSet<Action>();
- for (Action action : this.getActions()) {
- if (action.getEndStatId() != null && action.getEndStatId().equals(statId)) {
- allActions.add(action);
- }
- }
- return allActions;
- }
-
- @Override
- public String queryNextActionRoleIdsByActionId(UUID actionId){
- Action action = getAction(actionId);
- if (action == null) {
- return "";
- }
-
- Set<String> allRoleSet = new HashSet<String>();
-
- Set<Action> allActions = queryActionsByStartStatId(action.getEndStatId());
- for (Action action2 : allActions) {
- for(ActionRole actionRole : this.actionRoleSet){
- if(actionRole.actionId.equals(action2.getId())){
- allRoleSet.add(actionRole.getRoleId().getValue());
- }
- }
- }
- return ArrayUtil.strArray2String(allRoleSet.toArray(new String[0]));
- }
-
-
- @Override
- public String queryNextActionRoleIdsByStatId(UUID statId){
- Set<String> allRoleSet = new HashSet<String>();
- Set<Action> allActions = queryActionsByStartStatId(statId);
- for (Action action : allActions) {
- for(ActionRole actionRole : this.actionRoleSet){
- if(actionRole.actionId.equals(action.getId())){
- allRoleSet.add(actionRole.getRoleId().getValue());
- }
- }
- }
- return ArrayUtil.strArray2String(allRoleSet.toArray(new String[0]));
- }
-
- @Override
- public String queryActionRoleIds(UUID actionId){
- StringBuffer roleIds = new StringBuffer();
-
- for(ActionRole actionRole : this.actionRoleSet){
- if(actionRole.actionId.equals(actionId)){
- roleIds.append(roleIds.length() > 0 ? "," : "").append(actionRole.getRoleId().getValue());
- }
- }
- return roleIds.toString();
- }
-
-
- /**
- * (non-Javadoc)
- * <p> Title:queryAllQuitUserInfo</p>
- * <p> Description:TODO</p>
- * @param roleId
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#queryAllQuitUserInfo(com.sogou.qadev.service.cynthia.bean.UUID)
- */
- @Override
- public List<UserInfo> queryAllQuitUserInfo(UUID roleId) {
- Set<String> allRoleUser = queryAllUserByRole(roleId);
- DataAccessSession das = DataAccessFactory.getInstance().getSysDas();
- return das.queryAllUserInfo(allRoleUser.toArray(new String[0]),true);
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:queryAllUser</p>
- * <p> Description:TODO</p>
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#queryAllUser()
- */
- public Set<String> queryAllUser(){
- Set<String> allUser = new HashSet<String>();
- for (Right right : this.rightSet) {
- allUser.add(right.getUsername());
- }
- return allUser;
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:queryAllUserByRole</p>
- * <p> Description:TODO</p>
- * @param roleId
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#queryAllUserByRole(com.sogou.qadev.service.cynthia.bean.UUID)
- */
- public Set<String> queryAllUserByRole(UUID roleId){
- Set<String> allUser = new HashSet<String>();
- for (Right right : this.rightSet) {
- if (right.roleId.equals(roleId)) {
- allUser.add(right.getUsername());
- }
- }
- return allUser;
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:queryAllUserInfo</p>
- * <p> Description:TODO</p>
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#queryAllUserInfo()
- */
- @Override
- public List<UserInfo> queryAllUserInfo() {
- Set<String> allRoleUser = queryAllUser();
- DataAccessSession das = DataAccessFactory.getInstance().getSysDas();
- return das.queryAllUserInfo(allRoleUser.toArray(new String[0]),false);
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:queryAllUserInfo</p>
- * <p> Description:TODO</p>
- * @param roleId
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#queryAllUserInfo(com.sogou.qadev.service.cynthia.bean.UUID)
- */
- @Override
- public List<UserInfo> queryAllUserInfo(UUID roleId) {
- Set<String> allRoleUser = queryAllUserByRole(roleId);
- DataAccessSession das = DataAccessFactory.getInstance().getSysDas();
- return das.queryAllUserInfo(allRoleUser.toArray(new String[0]),false);
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:queryBeginActions</p>
- * <p> Description:TODO</p>
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#queryBeginActions()
- */
- public Action[] queryBeginActions(){
- Set<Action> actionSet = new LinkedHashSet<Action>();
-
- for(Action action : this.actionMap.values()){
- if(action.getBeginStatId() == null){
- actionSet.add(action);
- }
- }
-
- return actionSet.toArray(new Action[actionSet.size()]);
- }
-
-
- public boolean isEndAction(UUID actionId){
- for (Action action : this.getEndActions()) {
- if (action != null && action.getId().equals(actionId)) {
- return true;
- }
- }
- return false;
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:queryEditActionRoles</p>
- * <p> Description:TODO</p>
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#queryEditActionRoles()
- */
- public Role[] queryEditActionRoles()
- {
- if (this.isProFlow) {
- return ProjectInvolveManager.getInstance().getAllRole(this.createUser).toArray(new Role[0]);
- }else {
- if(this.actionRoleSet == null)
- return new Role[0];
-
- Set<Role> roleSet = new LinkedHashSet<Role>();
-
- for(ActionRole actionRole : this.actionRoleSet)
- {
- if(!actionRole.actionId.equals(Action.editUUID))
- continue;
-
- Role role = this.roleMap.get(actionRole.roleId);
- if(role != null)
- roleSet.add(role);
- }
-
- return roleSet.toArray(new Role[0]);
- }
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:queryEveryoneRoleActions</p>
- * <p> Description:TODO</p>
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#queryEveryoneRoleActions()
- */
- public Action[] queryEveryoneRoleActions()
- {
- if(this.actionRoleSet == null)
- return new Action[0];
-
- Set<Action> actionSet = new LinkedHashSet<Action>();
-
- for(ActionRole actionRole : this.actionRoleSet)
- {
- if(!actionRole.roleId.equals(Role.everyoneUUID))
- continue;
-
- Action action = this.actionMap.get(actionRole.actionId);
- if(action != null)
- actionSet.add(action);
- }
-
- return actionSet.toArray(new Action[0]);
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:queryNodeRoles</p>
- * <p> Description:TODO</p>
- * @param templateId
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#queryNodeRoles(com.sogou.qadev.service.cynthia.bean.UUID)
- */
- public Role[] queryNodeRoles(UUID templateId)
- {
- Map<UUID, Role> roleMap = new LinkedHashMap<UUID, Role>();
- for(Right right: this.rightSet)
- {
- if(right.templateId.equals(templateId))
- {
- Role role = this.roleMap.get(right.roleId);
- if(role != null)
- roleMap.put(role.getId(), role);
- }
- }
-
- return roleMap.values().toArray(new Role[0]);
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:queryNodeRoleUsers</p>
- * <p> Description:TODO</p>
- * @param templateId
- * @param roleId
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#queryNodeRoleUsers(com.sogou.qadev.service.cynthia.bean.UUID, com.sogou.qadev.service.cynthia.bean.UUID)
- */
- public String[] queryNodeRoleUsers(UUID templateId, UUID roleId)
- {
- HashSet<String> userSet = new HashSet<String>();
- for (Right right : this.rightSet)
- {
- if(right.templateId.equals(templateId) && right.roleId.equals(roleId))
- userSet.add(right.username);
- }
-
- return userSet.toArray(new String[0]);
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:queryNodeStatAssignUsers</p>
- * <p> Description:TODO</p>
- * @param templateId
- * @param statId
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#queryNodeStatAssignUsers(com.sogou.qadev.service.cynthia.bean.UUID, com.sogou.qadev.service.cynthia.bean.UUID)
- */
- public String[] queryNodeStatAssignUsers(UUID templateId, UUID statId){
- Set<UUID> roleIdSet = new HashSet<UUID>();
-
- Action[] actionArray = this.queryStatActions(statId);
- for(Action action : actionArray){
- Role[] roleArray = this.queryActionRoles(action.getId());
- for(Role role : roleArray){
- roleIdSet.add(role.getId());
- }
- }
-
- Set<String> userSet = new HashSet<String>();
-
- for(Right right : this.rightSet){
- if(right.templateId.equals(templateId) && roleIdSet.contains(right.roleId)){
- userSet.add(right.username);
- }
- }
-
- String[] allUser = userSet.toArray(new String[userSet.size()]);
-
- Arrays.sort(allUser);
-
- return allUser;
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:queryNodeUserRight</p>
- * @param templateId
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#queryNodeUserRight(com.sogou.qadev.service.cynthia.bean.UUID)
- */
- public Right[] queryNodeUserRight(UUID templateId){
- HashSet<Right> userSet = new HashSet<Right>();
- for (Right right : this.rightSet)
- {
- if(right.templateId.equals(templateId))
- userSet.add(right);
- }
-
- Right[] userRights = userSet.toArray(new Right[userSet.size()]);
- Arrays.sort(userRights);
- return userRights;
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:queryNodeUsers</p>
- * <p> Description:TODO</p>
- * @param templateId
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#queryNodeUsers(com.sogou.qadev.service.cynthia.bean.UUID)
- */
- public String[] queryNodeUsers(UUID templateId)
- {
- HashSet<String> userSet = new HashSet<String>();
- for (Right right : this.rightSet)
- {
- if(right.templateId.equals(templateId))
- userSet.add(right.username);
- }
-
- String[] userArray = userSet.toArray(new String[userSet.size()]);
- Arrays.sort(userArray);
- return userArray;
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:queryReadActionRoles</p>
- * <p> Description:TODO</p>
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#queryReadActionRoles()
- */
- public Role[] queryReadActionRoles()
- {
- if(this.actionRoleSet == null)
- return new Role[0];
-
- Set<Role> roleSet = new LinkedHashSet<Role>();
-
- for(ActionRole actionRole : this.actionRoleSet)
- {
- if(!actionRole.actionId.equals(Action.readUUID))
- continue;
-
- Role role = this.roleMap.get(actionRole.roleId);
- if(role != null)
- roleSet.add(role);
- }
-
- return roleSet.toArray(new Role[0]);
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:queryRightsByRole</p>
- * <p> Description:TODO</p>
- * @param roleId
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#queryRightsByRole(com.sogou.qadev.service.cynthia.bean.UUID)
- */
- @Override
- public Set<Right> queryRightsByRole(UUID roleId) {
- Set<Right> allRightSet = new HashSet<Right>();
- for (Right right : this.rightSet) {
- if (right.roleId.equals(roleId)) {
- allRightSet.add(right);
- }
- }
- return allRightSet;
- }
-
- @Override
- public Set<Right> queryRightsByRole(UUID roleId, UUID templateId) {
-
- Set<Right> allRightSet = new HashSet<Right>();
- for (Right right : this.rightSet) {
- if (right.roleId.equals(roleId) && right.templateId.equals(templateId)) {
- allRightSet.add(right);
- }
- }
- return allRightSet;
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:queryRoleActions</p>
- * <p> Description:TODO</p>
- * @param roleId
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#queryRoleActions(com.sogou.qadev.service.cynthia.bean.UUID)
- */
- public Action[] queryRoleActions(UUID roleId){
- Set<Action> actionSet = new HashSet<Action>();
-
- for(ActionRole actionRole : this.actionRoleSet){
- if(actionRole.roleId.equals(roleId)){
- Action action = this.actionMap.get(actionRole.actionId);
- if(action != null){
- actionSet.add(action);
- }
- }
- }
-
- return actionSet.toArray(new Action[actionSet.size()]);
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:queryStatActions</p>
- * <p> Description:TODO</p>
- * @param statId
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#queryStatActions(com.sogou.qadev.service.cynthia.bean.UUID)
- */
- public Action[] queryStatActions(UUID statId){
- Set<Action> actionSet = new HashSet<Action>();
-
- for(Action action : this.actionMap.values()){
- if(action.getBeginStatId() != null && action.getBeginStatId().equals(statId)){
- actionSet.add(action);
- }
- }
- return actionSet.toArray(new Action[actionSet.size()]);
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:queryUserNodeBeginActions</p>
- * <p> Description:TODO</p>
- * @param username
- * @param templateId
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#queryUserNodeBeginActions(java.lang.String, com.sogou.qadev.service.cynthia.bean.UUID)
- */
- public Action[] queryUserNodeBeginActions(String username, UUID templateId)
- {
- if(username == null || templateId == null)
- return new Action[0];
-
- //TODO 根据角色来处理
- if (isProFlow) {
- return this.getStartActions().toArray(new Action[0]);
- }
-
- Role[] roleArray = this.queryUserNodeRoles(username, templateId);
- if(roleArray == null)
- return new Action[0];
-
- Map<UUID, Action> actionMap = new LinkedHashMap<UUID, Action>();
-
- for(Role role : roleArray)
- {
- Action[] actionArray = this.queryRoleActions(role.getId());
- if(actionArray == null)
- continue;
-
- for(Action action : actionArray)
- {
- if(action.getBeginStatId() == null)
- actionMap.put(action.getId(), action);
- }
- }
-
- Action[] beginActionArray = queryBeginActions();
- for(int i = 0; beginActionArray != null && i < beginActionArray.length; i++)
- {
- if(isActionEveryoneRole(beginActionArray[i].getId())) //取消everyone控制
- actionMap.put(beginActionArray[i].getId(), beginActionArray[i]);
- }
-
- return actionMap.values().toArray(new Action[0]);
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:queryUserNodeRoles</p>
- * <p> Description:TODO</p>
- * @param user
- * @param templateId
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#queryUserNodeRoles(java.lang.String, com.sogou.qadev.service.cynthia.bean.UUID)
- */
- public Role[] queryUserNodeRoles(String user, UUID templateId)
- {
- if (this.isProFlow && ConfigManager.getProjectInvolved()) {
- return ProjectInvolveManager.getInstance().getAllRole(user).toArray(new Role[0]);
- }else {
- if (user.indexOf(",") != -1) {
- user = user.split(",")[0];
- }
- Set<Role> roleSet = new LinkedHashSet<Role>();
-
- for(Right right: this.rightSet)
- {
- if(right.username.equals(user) && right.templateId.equals(templateId))
- {
- Role role = this.roleMap.get(right.roleId);
- if(role != null)
- roleSet.add(role);
- }
- }
-
- return roleSet.toArray(new Role[0]);
- }
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:queryUserNodeStatActions</p>
- * <p> Description:TODO</p>
- * @param username
- * @param templateId
- * @param statId
- * @return
- * @see com.sogou.qadev.service.cynthia.bean.Flow#queryUserNodeStatActions(java.lang.String, com.sogou.qadev.service.cynthia.bean.UUID, com.sogou.qadev.service.cynthia.bean.UUID)
- */
- public Action[] queryUserNodeStatActions(String username, UUID templateId, UUID statId){
- if (username.indexOf(",") != -1) {
- username = username.split(",")[0];
- }
- Set<Action> actionSet = new HashSet<Action>();
-
- Role[] roleArray = this.queryUserNodeRoles(username, templateId);
- for(Role role : roleArray){
- Action[] actionArray = this.queryRoleActions(role.getId());
- for(Action action : actionArray){
- if(action.getBeginStatId() != null && action.getBeginStatId().equals(statId)){
- actionSet.add(action);
- }
- }
- }
-
- Action[] statActionArray = this.queryStatActions(statId);
- for(Action action : statActionArray){
- if(this.isActionEveryoneRole(action.getId())){
- actionSet.add(action);
- }
- }
-
- return actionSet.toArray(new Action[actionSet.size()]);
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:removeAction</p>
- * <p> Description:TODO</p>
- * @param actionId
- * @see com.sogou.qadev.service.cynthia.bean.Flow#removeAction(com.sogou.qadev.service.cynthia.bean.UUID)
- */
- public void removeAction(UUID actionId){
- this.actionMap.remove(actionId);
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:removeActionRole</p>
- * <p> Description:TODO</p>
- * @param actionId
- * @param roleId
- * @see com.sogou.qadev.service.cynthia.bean.Flow#removeActionRole(com.sogou.qadev.service.cynthia.bean.UUID, com.sogou.qadev.service.cynthia.bean.UUID)
- */
- public void removeActionRole(UUID actionId, UUID roleId){
- this.actionRoleSet.remove(new ActionRole(actionId, roleId));
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:removeRight</p>
- * <p> Description:TODO</p>
- * @param username
- * @see com.sogou.qadev.service.cynthia.bean.Flow#removeRight(java.lang.String)
- */
- public void removeRight(String username) {
- Iterator it=this.rightSet.iterator();
- while(it.hasNext())
- {
- Right rt = (Right)it.next();
- if(rt.username.equals(username)){
- it.remove();
- }
- }
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:removeRight</p>
- * <p> Description:TODO</p>
- * @param username
- * @param templateId
- * @param roleId
- * @see com.sogou.qadev.service.cynthia.bean.Flow#removeRight(java.lang.String, com.sogou.qadev.service.cynthia.bean.UUID, com.sogou.qadev.service.cynthia.bean.UUID)
- */
- public void removeRight(String username, UUID templateId, UUID roleId){
- String nickname = CynthiaUtil.getUserAlias(username);
- this.rightSet.remove(new Right(username, templateId, roleId,nickname));
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:removeRole</p>
- * <p> Description:TODO</p>
- * @param roleId
- * @see com.sogou.qadev.service.cynthia.bean.Flow#removeRole(com.sogou.qadev.service.cynthia.bean.UUID)
- */
- public void removeRole(UUID roleId){
- this.roleMap.remove(roleId);
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:removeStat</p>
- * <p> Description:TODO</p>
- * @param statId
- * @see com.sogou.qadev.service.cynthia.bean.Flow#removeStat(com.sogou.qadev.service.cynthia.bean.UUID)
- */
- public void removeStat(UUID statId){
- this.statMap.remove(statId);
- }
-
- @Override
- public void setActionMap(Map<UUID, Action> actionMap) {
- this.actionMap = actionMap;
- }
-
- @Override
- public void setActionRoleSet(Set<ActionRole> actionRoleSet) {
- this.actionRoleSet = actionRoleSet;
- }
-
- @Override
- public void setCreateUser(String userName) {
- this.createUser = userName;
- }
-
- @Override
- public void setName(String name){
- this.name = name;
- }
-
- public void setProFlow(boolean isProFlow) {
- this.isProFlow = isProFlow;
- }
-
- @Override
- public void setRightSet(Set<Right> rightSet) {
- this.rightSet = rightSet;
- }
-
- @Override
- public void setRoleMap(Map<UUID, Role> roleMap) {
- this.roleMap = roleMap;
- }
-
- @Override
- public void setStatMap(Map<UUID, Stat> statMap) {
- this.statMap = statMap;
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:toXMLDocument</p>
- * <p> Description:TODO</p>
- * @return
- * @throws Exception
- * @see com.sogou.qadev.service.cynthia.bean.BaseType#toXMLDocument()
- */
- public Document toXMLDocument() throws Exception{
- return XMLUtil.string2Document(toXMLString(), "UTF-8");
- }
-
- /**
- * (non-Javadoc)
- * <p> Title:toXMLString</p>
- * <p> Description:TODO</p>
- * @return
- * @throws Exception
- * @see com.sogou.qadev.service.cynthia.bean.BaseType#toXMLString()
- */
- public String toXMLString() throws Exception{
- StringBuffer xmlb = new StringBuffer();
- xmlb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
- xmlb.append("<flow>");
- xmlb.append("<id>").append(this.id).append("</id>");
- xmlb.append("<name>").append(XMLUtil.toSafeXMLString(this.name)).append("</name>");
- xmlb.append("<isProFlow>").append(XMLUtil.toSafeXMLString(String.valueOf(this.isProFlow))).append("</isProFlow>");
-
- if(this.statMap.size() == 0){
- xmlb.append("<stats/>");
- }
- else{
- xmlb.append("<stats>");
-
- for(Stat stat : this.statMap.values()){
- xmlb.append("<stat>");
- xmlb.append("<id>").append(stat.getId()).append("</id>");
- xmlb.append("<name>").append(XMLUtil.toSafeXMLString(stat.getName())).append("</name>");
- xmlb.append("</stat>");
- }
-
- xmlb.append("</stats>");
- }
-
- if(this.actionMap.size() == 0){
- xmlb.append("<actions/>");
- }else{
- xmlb.append("<actions>");
-
- for(Action action : this.actionMap.values()){
- xmlb.append("<action>");
- xmlb.append("<id>").append(action.getId()).append("</id>");
- xmlb.append("<name>").append(XMLUtil.toSafeXMLString(action.getName())).append("</name>");
-
- if(action.getBeginStatId() == null){
- xmlb.append("<startStatId/>");
- }else{
- xmlb.append("<startStatId>").append(action.getBeginStatId()).append("</startStatId>");
- }
-
- if(action.getEndStatId() == null){
- xmlb.append("<endStatId/>");
- }else{
- xmlb.append("<endStatId>").append(action.getEndStatId()).append("</endStatId>");
- }
-
- xmlb.append("<assignToMore>").append(action.getAssignToMore()).append("</assignToMore>");
- xmlb.append("</action>");
- }
-
- xmlb.append("</actions>");
- }
-
- if(this.roleMap.size() == 0){
- xmlb.append("<roles/>");
- }else{
- xmlb.append("<roles>");
-
- for(Role role : this.roleMap.values()){
- xmlb.append("<role>");
- xmlb.append("<id>").append(role.getId()).append("</id>");
- xmlb.append("<name>").append(XMLUtil.toSafeXMLString(role.getName())).append("</name>");
- xmlb.append("</role>");
- }
-
- xmlb.append("</roles>");
- }
-
- if(this.actionRoleSet.size() == 0){
- xmlb.append("<actionRoles/>");
- }else{
- xmlb.append("<actionRoles>");
-
- for(ActionRole actionRole : this.actionRoleSet){
- xmlb.append("<actionRole>");
- xmlb.append("<actionId>").append(actionRole.actionId).append("</actionId>");
- xmlb.append("<roleId>").append(actionRole.roleId).append("</roleId>");
- xmlb.append("</actionRole>");
- }
-
- xmlb.append("</actionRoles>");
- }
-
- if(this.rightSet.size() == 0){
- xmlb.append("<rights/>");
- }else{
- xmlb.append("<rights>");
-
- for(Right right : this.rightSet){
- xmlb.append("<right>");
- xmlb.append("<username>").append(XMLUtil.toSafeXMLString(right.username)).append("</username>");
- xmlb.append("<templateId>").append(right.templateId).append("</templateId>");
- xmlb.append("<roleId>").append(right.roleId).append("</roleId>");
- xmlb.append("</right>");
- }
-
- xmlb.append("</rights>");
- }
-
- xmlb.append("</flow>");
-
- return xmlb.toString();
- }
-
- }