⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 entitybean.java

📁 EOS的一个很好的例子.包括页面构件、展现构件
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
		}
		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 + -