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

📄 newimporttreedef.java

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

import java.util.Iterator;

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

/**
 * 依据MBean的设置,在系统的MBeanTree基础树中,构造符合日志导入操作的子树。
 * 在MBeanTree中MBean的权限依照MBean.degree的级别“debug”-“work”-“sleep”,权限由高到低。
 * @author tongxiaodong
 * Creation time:Apr 23, 2007 10:14:42 PM
 */

public class NewImportTreeDef implements ReadTreeMBean {

	private MBean father = null;
	private MBean child = null;
	private String side = null;
	
	public void readMBean(Object fatherMBean, Object childMBean, String side) 
	{
		// TODO Auto-generated method stub
		this.father = (MBean) fatherMBean;
		this.child = (MBean) childMBean;
		this.side = side;
						
		if(child.getDegree().equals("sleep"))//若child节点状态为“sleep”
		{					
			if(child.hasLeftChild()==false && child.hasRightChild()==false)//若child为叶节点(即无子节点)
			{							
				if(father != null)//若存在父节点
				{			
					if(father.hasRightChild(child) != null)//child若为father的右子节点
					{						
						if(father.removeRightChild(child) == true)//删除该字节点
						{
							father.decreRightNum();//由于去除了一个右子节点,father的rightNum自减1
						}							
					}
					else//child若为father的左子节点
					{			
						if(father.removeLeftChild(child) == true)//删除该字节点
						{
							father.decreLeftNum();//由于去除了一个左子节点,father的leftNum自减1
						}				
					}
					
					child.setFather(null);//将father从child的父结点中去除						
				}
			}
			else//若child非叶节点(即含有子节点)
			{		
				if(this.allSleepingChild(child) == true)//若child的子节点状态全为“sleep”
				{			
					if(father != null)//若父节点非空
					{				
						if(father.removeRightChild(child) == true)//删除该字节点
						{
							father.decreRightNum();//由于去除了一个右子节点,father的rightNum自减1
						}
						if(father.removeLeftChild(child) == true)//删除该字节点
						{
							father.decreLeftNum();//由于去除了一个左子节点,father的leftNum自减1
						}				
						child.setFather(null);//将father从child的父结点中去除												
					}			
					if(child.hasLeftChild()==true)
					{
						child.getLeftChildList().clear();//清空左子节点
					}
					if(child.hasRightChild()==true)
					{
						child.getRightChildList().clear();//清空右子节点
					}				
				}
				else
				{
					child.setDegree("work");
				}
			}
		}

	}
	
	/**
	 * 判断MBean 的子节点状态是否全为“sleep”。
	 * @return 若没有子节点或全为“sleep”,则返回true;若有的节点状态非“sleep”,则返回false
	 */
	private boolean allSleepingChild(MBean mBean)
	{
		boolean flag = true;
		MBean childMBean = null;
		Iterator iter = null;
		
		if(mBean.hasLeftChild()==true)//若存在左子节点
		{
			iter = mBean.getLeftChildList().iterator();
			while(iter.hasNext())
			{
				childMBean = (MBean) iter.next();
				if(childMBean.getDegree().equals("sleep") == false)
				{
					flag = false;
					return flag;
				}
			}
		}
		if(mBean.hasRightChild()==true)//若存在右子节点
		{
			iter = mBean.getRightChildList().iterator();
			while(iter.hasNext())
			{
				childMBean = (MBean) iter.next();
				if(childMBean.getDegree().equals("sleep") == false)
				{
					flag = false;
					return flag;
				}
			}
		}
		
		return flag;
	}

}

⌨️ 快捷键说明

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