/* ==================================================================
* Created [2009-4-27 下午11:32:55] by Jon.King
* ==================================================================
* TSS
* ==================================================================
* mailTo:jinpujun@hotmail.com
* Copyright (c) Jon.King, 2009-2012
* ==================================================================
*/
package com.jinhe.tss.um.entity;
import java.util.HashMap;
import java.util.Map;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
import com.jinhe.tss.core.persistence.IEntity;
import com.jinhe.tss.core.web.dispaly.tree.ITreeNode;
import com.jinhe.tss.core.web.dispaly.tree.TreeAttributesMap;
import com.jinhe.tss.core.web.dispaly.xform.IXForm;
import com.jinhe.tss.um.UMConstants;
import com.jinhe.tss.um.permission.dispaly.IPermissionOption;
/**
* 权限操作选项。如新增、删除等操作
*/
@Entity
@Table(name = "um_Operation", uniqueConstraints = {
@UniqueConstraint(columnNames = { "applicationId", "resourceTypeId", "operationId" })
})
@SequenceGenerator(name = "Operation_sequence", sequenceName = "Operation_sequence", initialValue = 1000, allocationSize = 10)
public class Operation implements IEntity, ITreeNode, IXForm, IPermissionOption {
private static final long serialVersionUID = 2035497905502136265L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "Operation_sequence")
private Long id; // 权限选项ID:权限选项主键
@Column(nullable = false)
private String name; // 名称:权限选项名称
@Column(nullable = false)
private String operationId; // 操作Id
@Column(nullable = false)
private String resourceTypeId; // 资源类型ID
@Column(nullable = false)
private String applicationId; // 应用系统ID:主键
private Integer seqNo; // 权限选项序号
private String description; // 描述:权限选项描述
/** (以opt+id,opt+id...方式保存依赖的权限id) */
private String dependId; // 权限项横向依赖的id
/**
* 类型分为一下几种
* y1.一个节点打钩,所有子节点打钩
* y2.一个节点打钩,所有父节点打钩
* y3.一个节点打钩,所有子节点、父节点打钩
* n1.一个节点去钩,所有子节点去钩
* n2.一个节点去钩,所有父节点去钩
* n3.一个节点去钩,所有子节点、父节点去钩
*/
private String dependParent; // 权限项纵向依赖的类型(1:向上兼向下,2:向上,3:向下)
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getDependParent() {
return dependParent;
}
public void setDependParent(String trigger) {
this.dependParent = trigger;
}
public String getApplicationId() {
return applicationId;
}
public void setApplicationId(String applicationId) {
this.applicationId = applicationId;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getDependId() {
return dependId;
}
public void setDependId(String dependId) {
this.dependId = dependId;
}
public String getOperationId() {
return operationId;
}
public void setOperationId(String operationId) {
this.operationId = operationId;
}
public String getName() {
return name;
}
public void setName(String operationName) {
this.name = operationName;
}
public Integer getSeqNo() {
return seqNo;
}
public void setSeqNo(Integer operationOrder) {
this.seqNo = operationOrder;
}
public String getResourceTypeId() {
return resourceTypeId;
}
public void setResourceTypeId(String resourceTypeId) {
this.resourceTypeId = resourceTypeId;
}
public TreeAttributesMap getAttributes() {
TreeAttributesMap map = new TreeAttributesMap(id, name);
map.put("icon", UMConstants.OPERATION_TREENODE_ICON);
map.put("appType", UMConstants.OPERATION_TREE_NODE);
map.put("applicationId", applicationId);
return map;
}
public Map<String, Object> getAttributesForXForm() {
Map<String, Object> map = new HashMap<String, Object>();
map.put("id", id);
map.put("name", name);
map.put("applicationId", applicationId);
map.put("resourceTypeId", resourceTypeId);
map.put("operationId", operationId);
map.put("description", description);
return map;
}
public Map<String, Object> getOptionAttributes() {
Map<String, Object> map = new HashMap<String, Object>();
map.put("operationId", "opt" + operationId);
map.put("operationName", name);
map.put("dependId", dependId);
map.put("dependParent", dependParent);
return map;
}
public void putOptionAttribute(String key, Object value) {
}
}