📄 metadatabizlet.java
字号:
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 + -