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

📄 mbeaninfosetting.java

📁 具备多表组合查询组件功能。通过将表字段与表间关系映射到对象关系及属性
💻 JAVA
字号:
package cn.edu.buaa.ieguam.logmanage;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;

import cn.edu.buaa.ieguam.logmanage.MBean;

/**
 * 完成由Web页面信息设置MBean信息的过程
 * @author tongxiaodong
 * Creation time:Apr 23, 2007 10:24:44 PM
 */

public class MBeanInfoSetting {
	/**
	 * 设置MBean中需要显示的字段名,参数为Pojo属性名
	 * @param mBean
	 * @param paramList
	 */
	public void settingColView(MBean mBean,List pojoColList)
	{
		if(mBean==null || pojoColList==null)
		{
			return;
		}
		if(mBean.getColViewList()==null)
		{
			mBean.setColViewList(new ArrayList());
		}
		Iterator iter = pojoColList.iterator();
		while(iter.hasNext())
		{
			String colParam = (String)iter.next();			
			mBean.addOneColView(colParam);
		}
	}
	
	/**
	 * 设置MBean中需要显示的字段名,参数为Pojo属性名
	 * @param mBean
	 * @param paramList
	 */
	public void settingColView(MBean mBean,String pojoCol)
	{
		
		
		if(mBean==null || pojoCol==null)
		{
			return;
		}
		if(mBean.getColViewList()==null)
		{
			mBean.setColViewList(new ArrayList());
		}
		
		
		mBean.addOneColView(pojoCol);
		
	}
	
	/**
	 * 设置构成查询条件的字段-字段映射,参数为两个映射MBean以及各自pojo属性名
	 * @param begin
	 * @param beginCol
	 * @param end
	 * @param endCol
	 */
	public void settingColQuery(MBean begin,String beginCol,MBean end,String endCol)
	{
	    MBean.SubBean subBean = (MBean.SubBean)end.getOneOrm(endCol);//从ormMap中获取该SubBean
	    
	    if(subBean == null)
	    {
	    	return;
	    }
	    if(begin.getTcrmMap() == null)
		{
			begin.setTcrmMap(new HashMap());
		}
	    begin.addOneTcrm(beginCol,subBean);
		
	}
	
	/**
	 * 设置构成查询条件的字段-值映射,参数为MBean以及属性名和字段值
	 * @param mBean
	 * @param pojoCol
	 * @param value
	 * @param valueType value的数据类型
	 */
	public void settingColQuery(MBean mBean,String pojoCol,String operChar,Object value)
	{
		MBean.SubBean subBean = mBean.initSubBean(null,null,null,operChar,value);	
		if(mBean.getTcrmMap() == null)
		{
			mBean.setTcrmMap(new HashMap());
		}
		mBean.addOneTcrm(pojoCol,subBean);		
	}
	
	/**
	 * 设置MBean中需要导入(日志导入应用)的字段名,参数为Pojo属性名
	 * @param mBean
	 * @param pojoColList
	 */
	public void settingColInsert(MBean mBean,List pojoColList)
	{
		if(mBean==null || pojoColList==null)
		{
			return;
		}
		if(mBean.getColInsertList() == null)
		{
			mBean.setColInsertList(new ArrayList());
		}
		Iterator iter = pojoColList.iterator();
		while(iter.hasNext())
		{
			String colParam = (String)iter.next();					
			mBean.addOneColInsert(colParam);
		}
	}
	
	/**
	 * 根据mBean外键映射集FkmMap,设置相应的外键字段值,用于日志的导入(用toMBean的属性作mBean的外键)
	 *
	 */
	public void settingFkmForInsert(MBean mBean)
	{
		if(mBean.getFkmMap()==null)
		{
			return;
		}
		Iterator keyIter = mBean.getFkmMap().keySet().iterator();
		Iterator leftChildIter = null;
		if(mBean.getLeftChildList() != null)
		{
			leftChildIter = mBean.getLeftChildList().iterator();
		}		
		String key = null;
		MBean leftChild = null;
		MBean toMBean = null;
		MBean.SubBean subBean = null;
				
		while(keyIter.hasNext())
		{	
			key = (String)keyIter.next();
			subBean = (MBean.SubBean)mBean.getFkmMap().get(key);	
			//分别在mBean的父节点与左子节点中寻找外键对应的toMBean
			if(mBean.getFather() != null)
			{
				if(mBean.getFather().getPojoName().equals(subBean.getPojoName())==true)
				{
					toMBean = mBean.getFather();
				}
			}				
			if(leftChildIter!=null && toMBean==null)
			{
				while(leftChildIter.hasNext())
				{
					leftChild = (MBean) leftChildIter.next();
					if(leftChild.getPojoName().equals(subBean.getPojoName())==true)
					{
						toMBean = leftChild;					
						break;
					}
				}
			}		
			if(toMBean != null)//若成功找到该toMBean
			{
				
				//应该从toBean的pojo的属性pojoCol中获取value值赋给mBean对应的属性key
				mBean.getPojo().setColValue(key,toMBean.getPojo().getColValue(subBean.getPojoCol()));		
				toMBean = null;		
			}	
		}
		
	}

}

⌨️ 快捷键说明

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