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

📄 jmentity.java

📁 MSN客服自动化机器人
💻 JAVA
字号:
package jm.util;

import java.lang.reflect.Method;
import java.util.Vector;

import jm.entity.EntityBean;

//import org.dom4j.Element;

/**
 * JM数据管理基类
 * @author ISHome(Spook)
 * @since 1.4.0
 * @see JDK 1.5.0.6
 */
@SuppressWarnings("unchecked")
public abstract class JMEntity {
    /** 分隔符号 ;*/
    public static final String SPLIT = ";";
    /** XML保存数据数目 Size*/
    public static final String XML_ROW_COUNT = "Size";
    /** 项目路径名 Collom*/
    public static final String XML_COLLOM = "Collom";
    /** 项目路径名 Name*/
    public static final String XML_NAME = "Name";
    /** 数据路径名 Data/Row*/
    public static final String XML_DATA = "Data";
    /** 数据路径名 Row*/
    public static final String XML_ROW = "Row";
    /** 项目路径名 Collom/Name*/
    public static final String XML_COLLOM_NAME = "Collom/Name";
    /** 数据路径名 Data/Row*/
    public static final String XML_DATA_ROW = "Data/Row";
     
    /**
     * ���ȫ��������返回项目列表����ƣ�
     * @return String
     */
    public abstract String getItems();

    /**
     * 清空保存信息���
     */
    public abstract void clear();

    /**
     * 返回项目汉字名
     * @return String
     */
    public String getNames(){
    	return this.getClass().getName();
    }
    
    /**
     * ��õ�ǰ��返回项目保留值
     * @param itemName 项目英字名
     * @return
     */
    public String getFieldValue(String itemName){
        try {
        	Class t_inClass = this.getClass();
            String setMethodName = "get" + changeItemName(itemName);
            Method s_method = t_inClass.getMethod(setMethodName,null);
            Object t = JMUtility.changNvl(s_method.invoke(this,null));
            return t.toString();
        } catch (Exception ex) {
            // ex.printStackTrace();
        	return null;
        }
    }
    
    /**
     * ��õ�ǰ��shezhi设置项目保留值
     * @param itemName 项目英字名
     * @param itemValue 项目保留值
     * @return
     */
    public void setFieldValue(String itemName,String itemValue){
        try {
            Class t_inClass = this.getClass();
            String setMethodName = "set" + changeItemName(itemName);
            Class[] STRING_TYPES = {String.class};
            Method s_method = t_inClass.getMethod(setMethodName,STRING_TYPES);
            if (!JMCheck.isNull(itemValue)) {
                Object[] val = {itemValue};
                s_method.invoke(this,val);
            }
        } catch (Exception ex) {
            // ex.printStackTrace();
        }
    }
    
    /**
     * ���õ�ǰ��设置全体值信息
     * @param values 内部值信息
     * @return
     */
    public void setValues(Vector values){
    	String[] items = getItems().split(SPLIT);
        for(int i=0;i<items.length;i++){
        	if(values.size()<i){
        		return;
        	}
        	setFieldValue(items[i],""+values.get(i));
        }   
    }
//    /**
//     * 返回全体值信息ȫ��
//     * @return JMVector
//     */
//    public JMVector getValues(){
//    	JMVector values =  new JMVector();
//    	String[] items = getItems().split(SPLIT);
//    	Class t_inClass = this.getClass();
//    	for(int i=0;i<items.length;i++){
//            try {  
//                String setMethodName = "get" + items[i];
//                Method s_method = t_inClass.getMethod(setMethodName,null);
//        		values.add(JMUtility.changNvl(s_method.invoke(this,new String[0])));
//            } catch (Exception ex) {
//            	values.add("");
//            }
//    	}    
//    	return values;
//    }
    
    /**
     * ��õ�ǰ��返回全体值信息��
     * @return JMVector
     */
    public JMVector getValuesList(){
    	JMVector values =  new JMVector();
        String[] items = getItems().split(SPLIT);
        Class t_inClass = this.getClass();
        for(int i=0;i<items.length;i++){
            try {  
                String setMethodName = "get" + items[i];
                Method s_method = t_inClass.getMethod(setMethodName,null);
                values.add(JMUtility.changNvl(s_method.invoke(this,new String[0])));
            } catch (Exception ex) {
                values.add("");
            }
        }    
        return values;
    }
    
    /**
     * ��õ�ǰ��返回全体信息(EntityBean保存)
     * @return JMVector
     */
    public JMVector toEntitiesList(){
        JMVector values =  new JMVector();
        String[] items = getItems().split(SPLIT);
        String[] names = getNames().split(SPLIT);
        EntityBean bean = null;
        Class t_inClass = this.getClass();
        for(int i=0;i<items.length;i++){
            try {  
                bean = new EntityBean();
                String setMethodName = "get" + items[i];
                Method s_method = t_inClass.getMethod(setMethodName,null);
                bean.setKey(items[i]);
                bean.setName(names[i]);
                bean.setValue(JMUtility.changNvl(s_method.invoke(this,new String[0])));
                values.add(bean);
            } catch (Exception ex) {
                values.add("");
            }
        }    
        return values;
    }
    
    /**
     * 返回当前对象的副本��õ�ǰ�Ŀ�¡����
     */
    public Object clone(){
        try{
            JMEntity clone = (JMEntity)Class.forName(this.getClass().getName()).newInstance();
            JMUtility.reflectClass(this,clone);
            return clone;
        }catch(Exception e){
            return null;
        }
    }
    
    /**
     * 返回类名(不包含包路径)
     * @return
     */
    public String getSimpleName(){
    	return super.getClass().getSimpleName();
    }
    
//    /**
//     * 使用XML保存数据以便完全读取
//     * @return
//     * @throws Exception
//     */
//    public JMVector loadFromXML() {
//    	JMVector result = new JMVector();
//        try{
//        	String filePath = CommandOftenKeys.DATA_DB_PATH+this.getSimpleName()+".xml" ;
//    		JMXmlReader r = new JMXmlReader(filePath);
//    		if(!r.reLoad()){
//    			return null;
//    		}
//        	String rootXPath ="/"+this.getSimpleName();
//        	String sizeXPath =rootXPath+"/"+XML_ROW_COUNT;
//        	String rowXPath =rootXPath+"/"+XML_DATA_ROW;
////        	System.out.println(sizeXPath);
//        	int count = Integer.parseInt(r.getChildValue(sizeXPath));    		  		
//    		JMEntity classEntity = (JMEntity)Class.forName(this.getClass().getName()).newInstance();
//    		String[] cols = classEntity.getItems().split(SPLIT);
//    		for(int i=0;i<count;i++){
//        		classEntity = (JMEntity)Class.forName(this.getClass().getName()).newInstance();
////        		String key = r.getChildValue(rowXPath+i+"/"+cols[0]);
//        		for(int m=0;m<cols.length;m++){
//        			classEntity.setFieldValue(cols[m],r.getChildValue(rowXPath+i+"/"+cols[m]));
//        		}
//        		result.add(classEntity);
//    		}     	
//        }catch(Exception e){ 
//        	e.printStackTrace();
//            return null;
//        }
//        return result;
//    }
    
//    /**
//     * 使用XML保存数据以便完全读取
//     * @return
//     * @throws Exception
//     */
//    public boolean saveToXML(JMVector values) {
//        try{
//        	String filePath = CommandOftenKeys.DATA_DB_PATH+this.getSimpleName()+".xml" ;
//        	JMXmlWriter writer = new JMXmlWriter(filePath);
//        	writer.createDocument(this.getSimpleName());
//        	Element root = writer.getRoot();
//        	//XML_ROW_COUNT
//   			root.addElement(XML_ROW_COUNT).addText(""+values.size());
//   			Element collom = root.addElement(XML_COLLOM);
//   			//XML_NAME
//   			JMEntity classEntity = (JMEntity)Class.forName(this.getClass().getName()).newInstance();
//   			String[] cols = classEntity.getItems().split(SPLIT);
//    		for(int m=0;m<cols.length;m++){
//    			collom.addElement(XML_NAME+m).addText(cols[m]);
//    		}
//    		Element date = root.addElement(XML_DATA);
//    		Element row = null;
//    		//XML_DATA_ROW
//    		for(int i=0;i<values.size();i++){
//    			row = date.addElement(XML_ROW+i);
//	    		classEntity = (JMEntity)values.get(i);
//	    		for(int m=0;m<cols.length;m++){
//	    			row.addElement(cols[m]).addText("你知道我在等你吗,不知掉这个世界究竟是为了手机恩美");//classEntity.getFieldValue(cols[m]));
//	    		}
//			}
//    		writer.writePrettyFormat();
//        }catch(Exception e){        	
//            return false;
//        }
//        return true;
//    }
    
//    /**
//     * 使用XML保存数据以便完全读取
//     * @return
//     * @throws Exception
//     */
//    public boolean saveToXML() {
//        try{
//        	String filePath = CommandOftenKeys.DATA_DB_PATH+this.getSimpleName()+".xml" ;
//        	JMXmlWriter writer = new JMXmlWriter(filePath);
//        	writer.createDocument(this.getSimpleName());
//        	Element root = writer.getRoot();
//        	//XML_ROW_COUNT
//   			root.addElement(XML_ROW_COUNT).addText("1");
//   			Element collom = root.addElement(XML_COLLOM);
//   			//XML_NAME
//   			String[] cols = getItems().split(SPLIT);
//    		for(int m=0;m<cols.length;m++){
//    			collom.addElement(XML_NAME+m).addText(cols[m]);
//    		}
//    		Element date = root.addElement(XML_DATA);
//    		Element row = null;
//    		//XML_DATA_ROW
//			row = date.addElement(XML_ROW+"0");
//    		for(int m=0;m<cols.length;m++){
//    			row.addElement(cols[m]).addText(getFieldValue(cols[m]));
//    		}
//    		writer.writePrettyFormat();
//        }catch(Exception e){        	
//            return false;
//        }
//        return true;
//    }
    //////////////////////////////////////////////////////
    protected String changeItemName(String itemName){
       	String[] items = getItems().split(SPLIT);
       	String t = itemName.toLowerCase();
    	for(int i=0;i<items.length;i++){
    		if(t.equals(items[i].toLowerCase())){
    			t = items[i];
    			return t;
    		}
    	}    	
    	return itemName;
    }
}

⌨️ 快捷键说明

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