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

📄 metadatabizlet.java

📁 EOS的一个很好的例子.包括页面构件、展现构件
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package com.primeton.eos.fbframe.fbmetadata.metadata;

import java.util.*;
import org.w3c.dom.*;

import com.primeton.eos.bizlets.database.*;
import com.primeton.tp.core.dataservice.map.*;
import com.primeton.tp.core.api.BizContext;
import com.primeton.tp.core.api.PersistenceBroker;
import com.primeton.tp.core.api.Unique;
import com.primeton.tp.common.xml.*;
import com.primeton.eos.bizlets.util.BNXmlUtil;
/**
 * @author wangkeqiang
 * @version 1.0
 * @date 2006-5-2
 * @class_displayName METAEntityBizlet
 * 提供元数据操作的运算逻辑
 */

public class MetaDataBizlet {
	
	public static final String TYPE_CHAR = "0";
	public static final String TYPE_INTEGER = "1";
	public static final String TYPE_DOUBLE = "2";
	public static final String TYPE_DATE = "3";
	public static final String TYPE_TIMESTAMP = "4";
	public static final String TYPE_CHECKBOX = "5";
	public static final String TYPE_REFERENCE = "6";

	/**
	 * 
	 * @param doc type: Document, DOM;
	 * @param param type: BizContext;
	 * @return: int ,运算逻辑返回值,如果失败返回0,成功返回1 
	 * @throws Exception 
	 * <p>
	 * ** bizlet 的显示名称 **
	 * @bizlet_displayName BL_getAllEntityDef
	 * @bizlet_param passing="in_out" type="EOSEntityList" value="list[@type="entity"]" name="" desc=""
	 */
	public static int BL_getAllEntityDef(Document doc, BizContext param) throws Exception{
		Node list = (Node)param.getParaObjectAt(0);
		MetaDataSet METAEntity = MetaDataSet.getInstance();
		METAEntity.toXmlNode((Element)list);
		return 1;
	}

	/**
	 * 
	 * @param doc type: Document, DOM;
	 * @param param type: BizContext;
	 * @return: int ,运算逻辑返回值,如果失败返回0,成功返回1 
	 * @throws Exception 
	 * <p>
	 * ** bizlet 的显示名称 **
	 * @bizlet_displayName BL_refreshMETAEntitySet
	 */
	public static int BL_refreshMETAEntitySet(Document doc, BizContext param) throws Exception{
		MetaDataSet METAEntity = MetaDataSet.getInstance();
		METAEntity.reload();
		return 1;
	}
	
	/**
	 * 
	 * @param doc type: Document, DOM;
	 * @param param type: BizContext;
	 * @return: int ,运算逻辑返回值,如果失败返回0,成功返回1 
	 * @throws Exception 
	 * <p>
	 * ** bizlet 的显示名称 **
	 * @bizlet_displayName BL_queryMETAEntity
	 * @bizlet_param passing="in_out" type="EOSEntityList" value="/" name="" desc=""
	 * @bizlet_param passing="in_out" type="constant" value="/" name="" desc="BOC实体名称"
	 */
	public static int BL_queryMETAEntity(Document doc, BizContext param) throws Exception{
		Node list = (Node)param.getParaObjectAt(0);
		String entityName = (String)param.getParaObjectAt(1);
		String cond = null;
		if (param.getLength() > 2)
			cond = (String) param.getParaObjectAt(2);

		MetaDataSet entitySet = MetaDataSet.getInstance();
		EntityBean entity = entitySet.getEntity(entityName);
		if (entity == null)
			return 0;
		
		
		//String sql = entity.getQuerySql(cond);
		//修改成只获取可见字段
		String sql = entity.getLimitQuerySql(cond,XmlUtil.findNode(doc, "root/data/SessionEntity"));
		param.clear();
		((Element)list).setAttribute("type", entityName);
		param.addObject(list, "EOSEntityList");
		param.addObject(sql, "String");
		return Database.BL_runFormatSql(doc, param);
	}
	
	/**
	 * 
	 * @param doc type: Document, DOM;
	 * @param param type: BizContext;
	 * @return: int ,运算逻辑返回值,如果失败返回0,成功返回1 
	 * @throws Exception 
	 * <p>
	 * ** bizlet 的显示名称 **
	 * @bizlet_displayName BL_queryMETAEntityWithPage
	 * @bizlet_param passing="in_out" type="EOSEntityList" value="/" name="" desc=""
	 * @bizlet_param passing="in_out" type="constant" value="/" name="" desc=""
	 * @bizlet_param passing="in_out" type="EOSEntity" value="PageCond" name="" desc=""
	 * @bizlet_param passing="in_out" type="EOSEntity" value="orderby" name="" desc=""
	 */
	public static int BL_queryMETAEntityWithPage(Document doc, BizContext param) throws Exception{
		Node list = (Node)param.getParaObjectAt(0);
		String entityName = (String)param.getParaObjectAt(1);
		Node pageCond = (Node)param.getParaObjectAt(2);
		Node order = (Node)param.getParaObjectAt(3);
		String cond = null;
	
		if (param.getLength() > 4)
			cond = (String) param.getParaObjectAt(4);

		
		MetaDataSet entitySet = MetaDataSet.getInstance();
		EntityBean entity = entitySet.getEntity(entityName);
		if (entity == null)
			return 0;
		
		//delete by zhangxy
		//String sql = entity.getQuerySql(cond);
		//add by zhangxy
		String sql = entity.getLimitQuerySql(cond,XmlUtil.findNode(doc,"root/data/SessionEntity"));
		
		Node orderField = XmlUtil.findNode(order, "orderby/col1");
		if (orderField != null) {
			String field = XmlUtil.getNodeValue(orderField);
			if (field != null && !field.equals("")) {
				sql = sql.concat(" ORDER BY ");
				sql = sql.concat(field);
				String asc = ((Element)orderField).getAttribute("order");
				if (asc != null && asc.equalsIgnoreCase("DESC"))
					sql = sql.concat(" DESC ");
			}
		}
		param.clear();
		((Element)list).setAttribute("type", entityName);
		param.addObject(list, "EOSEntityList");
		param.addObject(sql, "String");
		param.addObject(pageCond, "EOSEntity");
		Object a = param.getParaObjectAt(1);
		return DatabaseExt.BL_runFormatSqlWithPage(doc, param);
	}
	/**
	 * 
	 * @param doc type: Document, DOM;
	 * @param param type: BizContext;
	 * @return: int ,运算逻辑返回值,如果失败返回0,成功返回1 
	 * @throws Exception 
	 * <p>
	 * ** bizlet 的显示名称 **
	 * @bizlet_displayName BL_deleteMETAEntity
	 * @bizlet_param passing="in_out" type="EOSEntity" value="/" name="" desc=""
	 */
	public static int BL_deleteMETAEntity(Document doc, BizContext param) throws Exception{
		Node entity = (Node)param.getParaObjectAt(0);
		Element e = doc.createElement(entity.getNodeName());

		NodeList nl = entity.getChildNodes();
		MetaDataSet entitySet = MetaDataSet.getInstance();
		for (int i=0; i<nl.getLength(); i++) {
			Node n = nl.item(i);
			if (n.getNodeType() == Node.ELEMENT_NODE) {
				FieldBean f = entitySet.getField(entity.getNodeName(), n.getNodeName());
				if (f != null && f.isPK()) {
					Element ff = doc.createElement(n.getNodeName());
					XmlUtil.setNodeValue(ff, XmlUtil.getNodeValue(n));
					e.appendChild(ff);
				}
			}
		}
		e.setAttribute("criteria", "=");
		return param.getDBBroker().delete(e);
	}

	/**
	 * 根据元数据定义新增
	 * @param doc type: Document, DOM;
	 * @param param type: BizContext;
	 * @return: int ,运算逻辑返回值,如果失败返回0,成功返回1 
	 * @throws Exception 
	 * <p>
	 * ** bizlet 的显示名称 **
	 * @bizlet_displayName BL_insertMETAEntity
	 * @bizlet_param passing="in_out" type="EOSEntity" value="/" name="" desc=""
	 */
	public static int BL_insertMETAEntity(Document doc, BizContext param) throws Exception{

		Node entity = (Node)param.getParaObjectAt(0);

		MetaDataSet entitySet = MetaDataSet.getInstance();
		ArrayList ary = entitySet.getEntity(entity.getNodeName()).getFieldList();

		for (int i=0; i<ary.size(); i++) {
			FieldBean f = (FieldBean)ary.get(i);
			if (f.isPK() && f.isAutoKey()) {
			    //caisuyao  把Unique.nextLong(String)调用改用Unique.nextLong(String,String)
			    //caishuyao 用于消除警告信息
				String key = String.valueOf(Unique.nextLong(param.getDBBroker().getAppID(),f.getFIELDNAME()));
				XmlUtil.setNodeValue(entity, entity.getNodeName()+"/"+f.getFIELDNAME(), key);
				break;
			}
		}
		param.getDBBroker().insert((Element)entity);
		return 1;
	}
	
	/**
	 * 导入EOS数据实体
	 * @param doc type: Document, DOM;
	 * @param param type: BizContext;
	 * @return: int ,运算逻辑返回值,如果失败返回0,成功返回1 
	 * @throws Exception 
	 * <p>
	 * ** bizlet 的显示名称 **
	 * @bizlet_displayName BL_importEOSEntity
	 * @bizlet_param passing="in_out" type="constant" value="/" name="" desc=""
	 */
	public static int BL_importEOSEntity(Document doc, BizContext param) throws Exception{
		String entityName = (String)param.getParaObjectAt(0);

		AppDictMap appdictmap = MapFactory.theOne().getAppDictMap(param.getDBBroker().getAppID());

		EntityMap entity = appdictmap.fetchEntity(entityName);
		if (entity == null) 
			return -1;
		
		if (entity.entityType != EntityMap.ENTITY_TYPE)
			return 0;

⌨️ 快捷键说明

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