📄 entitybean.java
字号:
}
if (hasRole) // 角色权限中没有删除权限
return false;
return isDel();
}
/**
* 检查角色列表是否能够对此表进行修改操作
*/
public boolean isModify(List roleList) {
MetaDataSet entitySet = MetaDataSet.getInstance();
Iterator iter = roleList.iterator();
boolean hasRole = false;
while (iter.hasNext()) {
String role = (String) iter.next();
RoleEntity roleEntity = entitySet.getRoleEntity(role, ENTITYNAME);
if (roleEntity != null) {
hasRole = true;
if (roleEntity.isModify())
return true;
}
}
if (hasRole) // 角色权限中没有修改权限
return false;
return isModify();
}
/**
* 检查角色列表是否能够对此查看此表
*/
public boolean isView(List roleList) {
MetaDataSet entitySet = MetaDataSet.getInstance();
Iterator iter = roleList.iterator();
boolean hasRole = false;
while (iter.hasNext()) {
String role = (String) iter.next();
RoleEntity roleEntity = entitySet.getRoleEntity(role, ENTITYNAME);
if (roleEntity != null) {
hasRole = true;
//如果权限控制中设置了此角色的查看权限,则返回true
if (roleEntity.isView())
return true;
}
}
if (hasRole) // 角色权限中没有查看权限
return false;
return isView();
}
/**
* 产生字段所有信息的EOSEntityList
*/
public void getFieldList(Element list)
{
Document doc = list.getOwnerDocument();
Iterator iter = fieldList.iterator();
int row = 0;
while (iter.hasNext()) {
FieldBean field = (FieldBean)iter.next();
Element f = doc.createElement("EOSFIELDDEF");
f.setAttribute("rowNum", String.valueOf(row));
field.toXmlNode(f);
list.appendChild(f);
row++;
}
list.setAttribute("rowNum", String.valueOf(row));
}
/**
* 根据显示顺序获得字段列表
* @return
*/
public void sort()
{
Collections.sort(fieldList);
}
public void buildDesc()
{
for (int i=0; i<fieldList.size(); i++) {
FieldBean f = (FieldBean) fieldList.get(i);
if (f.isFK()) {
if (f.getDESC_FIELDNAME() != null && !f.getDESC_FIELDNAME().equals("")) {
MetaDataSet entitySet = MetaDataSet.getInstance();
FieldBean fb = (FieldBean)entitySet.getFieldList().get(f.getENTITYNAME() + "/" + f.getDESC_FIELDNAME());
if (fb != null) {
f.setDescField(fb);
fb.setDesc(true);
fb.setDescField(f);
}
}
}
}
}
/**
* 将实现信息产生XML节点并添加到EOSEntity节点中
* @param e
*/
public void toXmlNode(Element e)
{
Document doc = e.getOwnerDocument();
Node n = doc.createElement("ENTITYNAME");
XmlUtil.setNodeValue(n, ENTITYNAME);
e.appendChild(n);
n = doc.createElement("TABLENAME");
XmlUtil.setNodeValue(n, TABLENAME);
e.appendChild(n);
n = doc.createElement("ENTITYDESC");
XmlUtil.setNodeValue(n, ENTITYDESC);
e.appendChild(n);
n = doc.createElement("ENTITYTYPE");
XmlUtil.setNodeValue(n, ENTITYTYPE);
e.appendChild(n);
n = doc.createElement("ISADD");
XmlUtil.setNodeValue(n, ISADD);
e.appendChild(n);
n = doc.createElement("ISDEL");
XmlUtil.setNodeValue(n, ISDEL);
e.appendChild(n);
n = doc.createElement("ISPAGE");
XmlUtil.setNodeValue(n, ISPAGE);
e.appendChild(n);
n = doc.createElement("CHECK_REF");
XmlUtil.setNodeValue(n, CHECK_REF);
e.appendChild(n);
n = doc.createElement("PAGELEN");
XmlUtil.setNodeValue(n, String.valueOf(PAGELEN));
e.appendChild(n);
n = doc.createElement("DISPLAYORDER");
XmlUtil.setNodeValue(n, String.valueOf(DISPLAYORDER));
e.appendChild(n);
}
public EntityBean ()
{
fieldList = new ArrayList();
}
/**
* @return 返回 fieldList。
*/
public ArrayList getFieldList() {
return fieldList;
}
/**
* 创建时间: 2006-06-13
* 创建人: caisy
* 创建原因:需要查询出的字段应该通过角色过滤
* @param cond 对实体的查询条件
* @return 查询语句
*/
public String getLimitQuerySql(String cond,Node session) {
StringBuffer buff = new StringBuffer("SELECT ");
StringBuffer from = new StringBuffer(TABLENAME);
if(!isView(session)){
buff.append(" * from ").append(from).append(" where 1=2");
}else{
ArrayList rolelist=getRoleList(session);
StringBuffer where = new StringBuffer(" 1=1 ");
if (cond != null && !cond.equals(""))
where.append(" and (").append(cond).append(") ");
FieldBean f = null;
int i=0;
DataPrivilegeHelper bizPrvHelper = DataPrivilegeHelper.getDataPrivilegeHelper(EOSAppConfiguration.getDefaultAppID());
String bizFilter = bizPrvHelper.getFilterString(session.getOwnerDocument(), ENTITYNAME, 2);
if (bizFilter != null && !bizFilter.equals(""))
where.append(" and (").append(bizFilter).append(") ");
for (; i<fieldList.size(); i++) {
f = (FieldBean)fieldList.get(i);
//--------->>add by zhangxy
if(f.isPK()){
buff.append(TABLENAME);
buff.append(".");
buff.append(f.getCOLUMNNAME());
if (i < (fieldList.size()-1))
buff.append(", ");
//<<----------
}else if(f.isDisplay(rolelist)){
buff.append(TABLENAME);
buff.append(".");
buff.append(f.getCOLUMNNAME());
if (f.isFK() && !f.hasDescField()) {
if (f.getFK_FIELDDESC() != null && !f.getFK_FIELDDESC().equals("")) {
//关联表的别名
String otherTableName ="A" + i;
buff.append(", ");
//将关联表的表名写入SQL中的字段名列表
buff.append(otherTableName).append(".").append(f.getFK_FIELDDESC()).append(" as ").append(f.getFK_FIELDDESC_ALIAS());
//将关联表的表名写到SQL中的查询目标表处
from.append(" LEFT OUTER JOIN ").append(f.getFK_TABLENAME()).append(" ").append(otherTableName);
//增加使用查询表的别名
from.append(" ON ").append(otherTableName).append(".").append(f.getFK_COLUMNNAME());
from.append(" = ").append(TABLENAME).append(".").append(f.getCOLUMNNAME());
}
}
if (i < (fieldList.size()-1))
buff.append(", ");
}
}
//----------->>add by zhangxy
String tempStr = buff.toString().trim();
if( tempStr.endsWith(",") ){
buff = new StringBuffer(tempStr.substring(0,tempStr.length()-1));
}
//<<-----------
buff.append(" FROM ");
buff.append(from.toString());
if (!where.toString().equals(" 1=1 ")) {
buff.append(" WHERE ");
buff.append(where);
}
}
return buff.toString();
}
/**
* 获取表的一个主键(针对表有唯一主键的情况时使用)
* 用于往数据库中插入新记录时,指定主键名称后,可以为表产生ID
* @return
*/
public String getOnePk()
{
String pkColName = null;
Iterator it = getFieldList().iterator();
while(it.hasNext())
{
FieldBean fb = (FieldBean)it.next();
if(fb.isPK())
{
pkColName = fb.getCOLUMNNAME();
break ;
}
}
return pkColName;
}
/**
* 检查某角色是否已经设置了此表的权限,
* 即数据库中是否已经有了角色与对此表操作权限的记录
* 此检查用于判断显示出未设置角色权限的EntityList
*/
public boolean isSetLimit(String role) {
//获取数据实体列表
MetaDataSet entitySet = MetaDataSet.getInstance();
boolean isSet = false;
//获取角色对实体的权限实体,若为空则为未设置权限的实体
RoleEntity roleEntity = entitySet.getRoleEntity(role, ENTITYNAME);
if (roleEntity != null) {
isSet = true;
}
return isSet;
}
public int compareTo(Object obj){
EntityBean another = (EntityBean)obj;
if(this.DISPLAYORDER>another.DISPLAYORDER){
return 1;
}else if(this.DISPLAYORDER==another.DISPLAYORDER){
return 0;
}else{
return -1;
}
}
String ENTITYNAME;
String TABLENAME;
String ENTITYDESC;
String ENTITYTYPE;
String ISADD;
String ISDEL;
String ISMODIFY;
String ISVIEW;
String ISPAGE;
int PAGELEN;
String CHECK_REF;
int DISPLAYORDER;
ArrayList fieldList;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -