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

📄 configimportlog.java

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

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

import org.xml.sax.Attributes;
import org.xml.sax.helpers.DefaultHandler;
import org.xml.sax.SAXException;

import java.io.IOException;
import java.util.Stack;

import javax.xml.parsers.ParserConfigurationException;

/**
 * 解析备份在.xml文件格式中的日志信息导入并赋给对应的MBean
 * @author tongxiaodong
 * Creation time:Apr 23, 2007 10:41:37 PM
 */

public class ConfigImportLog extends DefaultHandler
{

	private String eleName = null;//元素名
	private StringBuffer content = new StringBuffer();//元素内容
	private Stack eleStack = new Stack();//元素栈
	
	private LogImportImpl logImportImpl = null; 
	
	public ConfigImportLog()
	{
		this.logImportImpl = new LogImportImpl();
	}
	/**
	 * 元素开始解析触发事件
	 */
	public void startElement(String uri, String localName, String qName, Attributes attributes)
	{
		 
		
		this.eleName = qName;
		this.eleStack.push(eleName);
		
		
		if(eleName.equals("logDoc"))//判断是否是备份文档logDoc的开始
		{
			this.logImportImpl.setIsStart(true);
		}
		else
		{
            //判断是备份记录起始符“item”,还是MBean记录的起始符“log”等,或者是MBean的属性名“id”等
			if(eleName.equals("item"))
			{
						
				this.logImportImpl.setInItem(true);
				this.logImportImpl.getLogTreeImpl().resetNewMBean();//重新初始化MBeans
			}
			else
			{
				
				if(eleName.equals("main") || eleName.equals("logType") || eleName.equals("crossMainTomcat") || eleName.equals("log4J") || eleName.equals("tomcatAccess") || eleName.equals("application") || eleName.equals("opType") || eleName.equals("windows") || eleName.equals("operation"))
				{
					
					this.logImportImpl.settingCurMBean(eleName);//设置当前MBean
					/**************************/
					 //System.out.println("test2: "+eleName);	 
					 /*************************/
					this.logImportImpl.setInMBean(true);
				}
				else
				{
					
					this.logImportImpl.setIsPojoCol(true);
				}
			}
		}
				
	}
	
	/**
	 * 元素属性值提取
	 */
	public void characters(char[] ch, int start, int length)
	{
		this.content.append(ch,start,length);	
		
		
	}
	
	/**
	 * 元素解析结束触发事件
	 * @throws  
	 */public void endElement(String uri, String localName, String qName)
	{
		
		
		this.eleName = (String) eleStack.pop();
				
		if(eleName.equals("logDoc"))
		{
			this.logImportImpl.setIsStart(false);
		}
		else
		{
			if(eleName.equals("item"))
			{
				this.logImportImpl.setInItem(false);
						
			}
			else
			{
				if(eleName.equals("main") || eleName.equals("logType") || eleName.equals("crossMainTomcat") || eleName.equals("log4J") ||eleName.equals("tomcatAccess") ||eleName.equals("application") ||eleName.equals("opType") || eleName.equals("windows") || eleName.equals("operation"))
				{
					this.logImportImpl.setInMBean(false);
				}
				else
				{
					this.logImportImpl.setIsPojoCol(false);
				}
			}		
		}
				
		try
		{
			this.logImportImpl.importImpl(this.eleName,this.content.toString().trim()); 
		}catch(Exception c)
		{
			System.out.println(c.getStackTrace());
			System.out.println("从备份文件导入日志数据时出错!");
		}
		
		this.content.delete(0,this.content.length());
	}
	 
	 /**
	  * 用于单元测试
	 * @throws IOException 
	 * @throws SAXException 
	 * @throws ParserConfigurationException 
	  */
	 public void endDocument() 
	 {
		 //this.logImportImpl.test();
	 }
	 
	/**
	 * @param args
	 * @throws SAXException 
	 * @throws ParserConfigurationException 
	 * @throws ParserConfigurationException 
	 * @throws IOException 
	 */
	public static void main(String[] args) 
	{
		// TODO Auto-generated method stub
		
		
		
		
        

	}

}

⌨️ 快捷键说明

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