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

📄 metadatabizlet.java

📁 EOS的一个很好的例子.包括页面构件、展现构件
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
		
		PersistenceBroker broker = param.getDBBroker();
		Element e = doc.createElement("EOSENTITYDEF");
		BNXmlUtil.setNodeValue(e, "ENTITYNAME", entity.entityName);
		e.setAttribute("criteria", "=");
		broker.expandAll(e);
		String rowNum = e.getAttribute("rowNum");
		if (rowNum == null || rowNum.equals("0")) { // 元数据中并没有定义当前实体
			BNXmlUtil.setNodeValue(e, "TABLENAME", entity.getTableName());
			BNXmlUtil.setNodeValue(e, "ENTITYDESC", entity.displayName);
			BNXmlUtil.setNodeValue(e, "ENTITYTYPE", "0");
			BNXmlUtil.setNodeValue(e, "ISADD", "N");
			BNXmlUtil.setNodeValue(e, "ISDEL", "N");
			BNXmlUtil.setNodeValue(e, "ISMODIFY", "N");
			BNXmlUtil.setNodeValue(e, "ISVIEW", "Y");
			BNXmlUtil.setNodeValue(e, "ISPAGE", "Y");
			BNXmlUtil.setNodeValue(e, "PAGELEN", "10");
			BNXmlUtil.setNodeValue(e, "DISPLAYORDER", "10");
			broker.insert(e);
			
			Collection fields = entity.fetchFieldList();
			Iterator iter = fields.iterator();
			int i = 0;
			while (iter.hasNext()) {
				FieldMap field = (FieldMap) iter.next();
				Element f = doc.createElement("EOSFIELDDEF");
				BNXmlUtil.setNodeValue(f, "FIELDNAME", field.fieldName);
				BNXmlUtil.setNodeValue(f, "ENTITYNAME", entity.entityName);
				BNXmlUtil.setNodeValue(f, "COLUMNNAME", field.getColumnName());
				BNXmlUtil.setNodeValue(f, "FIELDDESC", field.displayName);
				BNXmlUtil.setNodeValue(f, "WIDTH", "60");
				BNXmlUtil.setNodeValue(f, "DISPLAYORDER", String.valueOf(i));
				String typeName = field.getDefineType().getName();
				if (typeName.equals("Date")) { 
					BNXmlUtil.setNodeValue(f, "FIELDTYPE", TYPE_DATE);
				} else if (typeName.equals("TimeStamp") || typeName.equals("Time")) {
					BNXmlUtil.setNodeValue(f, "FIELDTYPE", TYPE_TIMESTAMP);
				} else if (typeName.equals("smallint") || typeName.equals("int") || typeName.equals("long")) { 
					BNXmlUtil.setNodeValue(f, "FIELDTYPE", TYPE_INTEGER);
					BNXmlUtil.setNodeValue(f, "LENGTH", String.valueOf(field.getColumnMap().getMLength()));
					BNXmlUtil.setNodeValue(f, "PRECISION", String.valueOf(field.getColumnMap().getMPrecision()));
				} else if (typeName.equals("double") || typeName.equals("BigDecimal")) {
					BNXmlUtil.setNodeValue(f, "FIELDTYPE", TYPE_DOUBLE);
				} else {
					BNXmlUtil.setNodeValue(f, "FIELDTYPE", TYPE_CHAR);
					BNXmlUtil.setNodeValue(f, "LENGTH", String.valueOf(field.getColumnMap().getMLength()));
				}
				if (field.isKey) 
					BNXmlUtil.setNodeValue(f, "ISPK", "Y");
				else
					BNXmlUtil.setNodeValue(f, "ISPK", "N");
				
				if (field.isNULLAble)
					BNXmlUtil.setNodeValue(f, "ISINPUT", "N");
				else
					BNXmlUtil.setNodeValue(f, "ISINPUT", "Y");
				
				broker.insert(f);
				i++;
			}
			return 1;
		}
		
		Element list = doc.createElement("list");
		Element criteria = doc.createElement("EOSFIELDDEF");
		BNXmlUtil.setNodeValue(criteria, "ENTITYNAME", entityName);
		criteria.setAttribute("criteria", "=");
		broker.findAll(list, criteria);
	
		HashMap map = new HashMap();
		NodeList nl = list.getChildNodes();
		for (int i=0; i<nl.getLength(); i++) {
			Node n = nl.item(i);
			if (n.getNodeType() == Node.ELEMENT_NODE) {
				FieldMap field = entity.fetchFieldMap(BNXmlUtil.getNodeValue(n, "FIELDNAME"));
				if (field == null) {
					Element rolefield = doc.createElement("EOSROLEFIELD");
					BNXmlUtil.setNodeValue(rolefield, "ENTITYNAME", entityName);
					BNXmlUtil.setNodeValue(rolefield, "FIELDNAME", BNXmlUtil.getNodeValue(n, "FIELDNAME"));
					rolefield.setAttribute("criteria", "=");
					broker.delete(rolefield);
					Element f = doc.createElement("EOSFIELDDEF");
					BNXmlUtil.setNodeValue(f, "ENTITYNAME", entityName);
					BNXmlUtil.setNodeValue(f, "FIELDNAME", BNXmlUtil.getNodeValue(n, "FIELDNAME"));
					f.setAttribute("criteria", "=");
					broker.delete(f);
				}
				String fieldName = BNXmlUtil.getNodeValue(n, "FIELDNAME");
				map.put(fieldName, fieldName);
			}
		}
		Collection fields = entity.fetchFieldList();
		Iterator iter = fields.iterator();
		while (iter.hasNext()) {
			FieldMap field = (FieldMap)iter.next();
			if (map.get(field.fieldName) == null) {
				Element f = doc.createElement("EOSFIELDDEF");
				BNXmlUtil.setNodeValue(f, "FIELDNAME", field.fieldName);
				BNXmlUtil.setNodeValue(f, "ENTITYNAME", entity.entityName);
				BNXmlUtil.setNodeValue(f, "COLUMNNAME", field.getColumnName());
				BNXmlUtil.setNodeValue(f, "FIELDDESC", field.displayName);
				BNXmlUtil.setNodeValue(f, "DISPLAYORDER", "99");
				BNXmlUtil.setNodeValue(f, "WIDTH", "60");
				String typeName = field.getDefineType().getName();
				if (typeName.equals("Date")) { 
					BNXmlUtil.setNodeValue(f, "FIELDTYPE", TYPE_DATE);
				} else if (typeName.equals("TimeStamp") || typeName.equals("Time")) {
					BNXmlUtil.setNodeValue(f, "FIELDTYPE", TYPE_TIMESTAMP);
				} else if (typeName.equals("smallint") || typeName.equals("int") || typeName.equals("long")) { 
					BNXmlUtil.setNodeValue(f, "FIELDTYPE", TYPE_INTEGER);
					BNXmlUtil.setNodeValue(f, "LENGTH", String.valueOf(field.getColumnMap().getMLength()));
					BNXmlUtil.setNodeValue(f, "PRECISION", String.valueOf(field.getColumnMap().getMPrecision()));
				} else if (typeName.equals("double") || typeName.equals("BigDecimal")) {
					BNXmlUtil.setNodeValue(f, "FIELDTYPE", TYPE_DOUBLE);
				} else {
					BNXmlUtil.setNodeValue(f, "FIELDTYPE", TYPE_CHAR);
					BNXmlUtil.setNodeValue(f, "LENGTH", String.valueOf(field.getColumnMap().getMLength()));
				}
				if (field.isKey) 
					BNXmlUtil.setNodeValue(f, "ISPK", "Y");
				else
					BNXmlUtil.setNodeValue(f, "ISPK", "N");
				
				if (field.isNULLAble)
					BNXmlUtil.setNodeValue(f, "ISINPUT", "N");
				else
					BNXmlUtil.setNodeValue(f, "ISINPUT", "Y");
				
				broker.insert(f);
			}
		}
		return 1;
	}
	
	/**
	 * 根据传入的entityName和RoleID初始化角色权限数据,包含数据实体权限和其对应的字段角色权限
	 * @param doc
	 * @param param
	 * @return
	 * @throws Exception
	 * <p>
	 * ** 导入角色实体 **
	 * @bizlet_displayName test
	 * @bizlet_param passing="in" type="variable" value="/" name="" desc="实体名"
	 * @bizlet_param passing="in" type="variable" value="/" name="" desc="角色编号"
	 */
	public static int BL_importRoleEntity(Document doc, BizContext param) throws Exception{
		//获取数据持久链接
		PersistenceBroker broker = param.getDBBroker();		
		
		//获取实体名和角色ID
		String entityName = (String) param.getParaObjectAt(0);
		String roleID = (String) param.getParaObjectAt(1);		
		 
	    //构造往数据库里写入的数据
		Element e = doc.createElement("EOSROLEENTITY");
		BNXmlUtil.setNodeValue(e, "ENTITYNAME", entityName);
		BNXmlUtil.setNodeValue(e, "ROLEID", roleID);
		BNXmlUtil.setNodeValue(e, "ISADD", "N");
		BNXmlUtil.setNodeValue(e, "ISDEL", "N");
		BNXmlUtil.setNodeValue(e, "ISMODIFY", "N");
		BNXmlUtil.setNodeValue(e, "ISVIEW", "Y");
		
		//将数据实体权限写入数据库
		broker.insert(e);
		
        //获取导入实体对应的值对象
		MetaDataSet entitySet = MetaDataSet.getInstance();
		EntityBean entityBean = entitySet.getEntity(entityName);
		
		List fieldList = entityBean.getFieldList();
		Iterator it = fieldList.iterator();
		
		while(it.hasNext()){
			FieldBean f = (FieldBean)it.next();
			
			Element elementField = doc.createElement("EOSROLEFIELD");
			
			BNXmlUtil.setNodeValue(elementField, "ENTITYNAME", entityName);
			BNXmlUtil.setNodeValue(elementField, "FIELDNAME", f.getFIELDNAME());
			BNXmlUtil.setNodeValue(elementField, "ROLEID", roleID); 
			BNXmlUtil.setNodeValue(elementField, "ISMODIFY", "N");
			BNXmlUtil.setNodeValue(elementField, "ISVIEW", "Y");
			
			broker.insert(elementField);
		}
				
		return 1;
	}
	
	/**
	 * 重新刷新角色和字段关联,
	 * 如果新增了角色和实体的关联,没有继续维护角色和实体字段的关联时
	 * 插入用户缺省的对实体字段的权限。
	 * @param doc type: Document, DOM;
	 * @param param type: BizContext;
	 * @return: int ,运算逻辑返回值,如果失败返回0,成功返回1 
	 * @throws Exception 
	 * <p>
	 * ** bizlet 的显示名称 **
	 * @bizlet_displayName BL_reloadRoleField
	 * @bizlet_param passing="in" type="variable" value="/" name="" desc="实体名称"
	 * @bizlet_param passing="in" type="variable" value="/" name="" desc="角色编号"
	 */
	public static int BL_reloadRoleField(Document doc, BizContext param) throws Exception{
		String entityName = (String)param.getParaObjectAt(0);
		String roleID = (String) param.getParaObjectAt(1);
		
		//获取数据持久链接
		PersistenceBroker broker = param.getDBBroker();		

		//获取导入实体对应的值对象
		MetaDataSet entitySet = MetaDataSet.getInstance();
		EntityBean entityBean = entitySet.getEntity(entityName);
		
		List fieldList = entityBean.getFieldList();
		Iterator it = fieldList.iterator();
		while(it.hasNext()){
			FieldBean f = (FieldBean)it.next();
			
			RoleField rf = entitySet.getRoleField(roleID, entityName, f.getFIELDNAME());
			
			if (rf == null) {
				Element elementField = doc.createElement("EOSROLEFIELD");
				
				BNXmlUtil.setNodeValue(elementField, "ENTITYNAME", entityName);
				BNXmlUtil.setNodeValue(elementField, "FIELDNAME", f.getFIELDNAME());
				BNXmlUtil.setNodeValue(elementField, "ROLEID", roleID); 
				BNXmlUtil.setNodeValue(elementField, "ISMODIFY", "N");
				BNXmlUtil.setNodeValue(elementField, "ISVIEW", "Y");
				
				broker.insert(elementField);
			}
		}
		return 1;
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -