From 6cf345bc8fe98d393320b89182f9293171aa19ff Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期二, 22 四月 2025 16:39:55 +0800
Subject: [PATCH] 1、根据江海协议中开阀类型变化,修改相应代码; 2、江海协议RTU模拟器启动参数注释。

---
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/ConfigXml.java |  959 +++++++++++++++++++++++++++++------------------------------
 1 files changed, 479 insertions(+), 480 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/ConfigXml.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/ConfigXml.java
index 329b6e3..9bffe3c 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/ConfigXml.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/ConfigXml.java
@@ -1,496 +1,495 @@
 package com.dy.common.util;
 
-import java.io.FileWriter;
-import java.net.URL;
-import java.util.List;
-
 import org.jdom2.Document;
 import org.jdom2.Element;
 import org.jdom2.input.SAXBuilder;
 import org.jdom2.output.Format;
 import org.jdom2.output.XMLOutputter;
 
-@SuppressWarnings("unused")
+import java.io.FileWriter;
+import java.net.URL;
+import java.util.List;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/8/21 15:27
+ * @Description
+ */
 public class ConfigXml {
 
-
-	/**
-	 * 鍒涘缓Document瀵硅薄
-	 * @param clazz 鍙傝�冪被
-	 * @param filePath 閰嶇疆鏂囦欢璺緞
-	 * @return 杩斿洖缁撴灉  杩斿洖缁撴灉杩斿洖 doc瀵硅薄
-	 * @throws Exception  鎶涘嚭寮傚父 鎶涘嚭寮傚父
-	 */
-	public Document createDom(Class<?> clazz, String filePath) throws Exception {
-		if(clazz == null){
-			throw new Exception("class瀵硅薄涓虹┖!");
-		}
-		if(filePath == null || filePath.equals("")){
-			throw new Exception("閰嶇疆鏂囦欢璺緞鍚嶇О涓虹┖!");
-		}
-		if(!filePath.startsWith("/")){
-			filePath = "/" + filePath ;
-		}
-		URL configFileURL = clazz.getResource(filePath);
-		if (configFileURL == null) {
-			throw new Exception("娌℃湁寰楀埌" + filePath + "閰嶇疆!");
-		}
-		return this.createDom(configFileURL) ;
-	}
-	
-	/**
-	 * 鍒涘缓Document瀵硅薄
-	 * @param configFileURL  閰嶇疆鏂囦欢璺緞
-	 * @return 杩斿洖缁撴灉  杩斿洖缁撴灉杩斿洖 doc瀵硅薄
-	 * @throws Exception  鎶涘嚭寮傚父 鎶涘嚭寮傚父
-	 */
-	public Document createDom(URL configFileURL) throws Exception {
-		if (configFileURL == null) {
-			throw new Exception("娌℃湁寰楀埌閰嶇疆鏂囦欢!", null);
-		}
-		Document doc;
-		try {
-			SAXBuilder sb = new SAXBuilder();
-			doc = sb.build(configFileURL);
-			if (doc == null) {
-				throw new Exception("娌℃湁鐢熸垚閰嶇疆鏂囦欢鐨凞OM瀵硅薄!", null);
-			}
-		} catch (Exception e) {
-			throw new Exception("鐢熸垚閰嶇疆鏂囦欢鐨凞OM瀵硅薄澶辫触!", e);
-		}
-		return doc;
-	}
-
-	
-	/**
-	 * 淇濆瓨xml鏂囦欢
-	 * @param clazz 鍙傝�冪被
-	 * @param doc doc瀵硅薄 doc瀵硅薄
-	 * @param filePath 閰嶇疆鏂囦欢璺緞
-	 * @throws Exception  鎶涘嚭寮傚父 鎶涘嚭寮傚父
-	 */
-	public void saveXML(Class<?> clazz, Document doc, String filePath) throws Exception {
-		if(doc == null){
-			throw new Exception("Document瀵硅薄涓虹┖!");
-		}
-		if(filePath == null || filePath.equals("")){
-			throw new Exception("閰嶇疆鏂囦欢璺緞鍚嶇О涓虹┖!");
-		}
-		if(!filePath.startsWith("/")){
-			filePath = "/" + filePath ;
-		}
-		// 灏哾oc瀵硅薄杈撳嚭鍒版枃浠�
-		FileWriter writer = null ;
-		try {
-			// 鍒涘缓xml鏂囦欢杈撳嚭娴�
-			XMLOutputter xmlopt = new XMLOutputter();
-			// 鍒涘缓鏂囦欢杈撳嚭娴�
-			URL configFileURL = clazz.getResource(filePath);
-			if (configFileURL == null) {
-				throw new Exception("娌℃湁寰楀埌" + filePath + "閰嶇疆!");
-			}
-			writer = new FileWriter(configFileURL.getPath());
-			// 鎸囧畾鏂囨。鏍煎紡
-			Format fm = Format.getPrettyFormat();
-			fm.setEncoding("UTF-8");
-			xmlopt.setFormat(fm);
-			// 灏哾oc鍐欏叆鍒版寚瀹氱殑鏂囦欢涓�
-			xmlopt.output(doc, writer);
-		} catch (Exception e) {
-			throw new Exception("淇濆瓨xml鏂囦欢澶辫触!", e);
-		} finally {
-			if(writer != null){
-				writer.close();
-			}
-		}
-	}
-	
-	/**
-	 * 妫�鏌ュ厓绱犳槸鍚﹀瓨鍦�
-	 * @param doc doc瀵硅薄
-	 * @param elementName 鍏冪礌鍚嶇О
-	 * @return 杩斿洖缁撴灉  杩斿洖缁撴灉
-	 */
-	public boolean existElement(Document doc, String elementName){
-		if(doc == null){
-			return false ;
-		}
-		if(elementName == null){
-			return false ;
-		}
-		elementName = elementName.trim() ;
-		if(elementName.equals("")){
-			return false ;
-		}	
-		Element e = this.getElement(doc, elementName) ;
-		return e != null;
-	}
+    /**
+     * 鍒涘缓Document瀵硅薄
+     * @param configFileURL  閰嶇疆鏂囦欢璺緞
+     * @return 杩斿洖缁撴灉  杩斿洖缁撴灉杩斿洖 doc瀵硅薄
+     * @throws Exception  鎶涘嚭寮傚父 鎶涘嚭寮傚父
+     */
+    protected Document doCreateDom(URL configFileURL) throws Exception {
+        if (configFileURL == null) {
+            throw new Exception("娌℃湁寰楀埌閰嶇疆鏂囦欢!", null);
+        }
+        Document doc;
+        try {
+            SAXBuilder sb = new SAXBuilder();
+            doc = sb.build(configFileURL);
+            if (doc == null) {
+                throw new Exception("娌℃湁鐢熸垚閰嶇疆鏂囦欢鐨凞OM瀵硅薄!", null);
+            }
+        } catch (Exception e) {
+            throw new Exception("鐢熸垚閰嶇疆鏂囦欢鐨凞OM瀵硅薄澶辫触!", e);
+        }
+        return doc;
+    }
 
 
-	/**
-	 * 寰楀埌骞惰缃厓绱犵殑灞炴�х殑甯冨皵鍊�
-	 * @param doc doc瀵硅薄
-	 * @param elementName 鍏冪礌鍚嶇О
-	 * @param attrName 灞炴�у悕绉�
-	 * @param attPropertyNameFix 灞炴�у悕绉板墠缂�
-	 * @param setValue 鍚屾椂璁剧疆鍊�
-	 * @return 杩斿洖缁撴灉
-	 * @throws Exception  鎶涘嚭寮傚父
-	 */
-	public boolean getSetAttrBoolean(Document doc, String elementName, String attrName, String attPropertyNameFix, String setValue) throws Exception{
-		String txt = this.getSetAttrTxt(doc, elementName, attrName, attPropertyNameFix, false, setValue) ;
-		return txt.equalsIgnoreCase("true");
-	}
+    /**
+     * 淇濆瓨xml鏂囦欢
+     * @param clazz 鍙傝�冪被
+     * @param doc doc瀵硅薄 doc瀵硅薄
+     * @param filePath 閰嶇疆鏂囦欢璺緞
+     * @throws Exception  鎶涘嚭寮傚父 鎶涘嚭寮傚父
+     */
+    public void saveXML(Class<?> clazz, Document doc, String filePath) throws Exception {
+        if(doc == null){
+            throw new Exception("Document瀵硅薄涓虹┖!");
+        }
+        if(filePath == null || filePath.equals("")){
+            throw new Exception("閰嶇疆鏂囦欢璺緞鍚嶇О涓虹┖!");
+        }
+        if(!filePath.startsWith("/")){
+            filePath = "/" + filePath ;
+        }
+        // 灏哾oc瀵硅薄杈撳嚭鍒版枃浠�
+        FileWriter writer = null ;
+        try {
+            // 鍒涘缓xml鏂囦欢杈撳嚭娴�
+            XMLOutputter xmlopt = new XMLOutputter();
+            // 鍒涘缓鏂囦欢杈撳嚭娴�
+            URL configFileURL = clazz.getResource(filePath);
+            if (configFileURL == null) {
+                throw new Exception("娌℃湁寰楀埌" + filePath + "閰嶇疆!");
+            }
+            writer = new FileWriter(configFileURL.getPath());
+            // 鎸囧畾鏂囨。鏍煎紡
+            Format fm = Format.getPrettyFormat();
+            fm.setEncoding("UTF-8");
+            xmlopt.setFormat(fm);
+            // 灏哾oc鍐欏叆鍒版寚瀹氱殑鏂囦欢涓�
+            xmlopt.output(doc, writer);
+        } catch (Exception e) {
+            throw new Exception("淇濆瓨xml鏂囦欢澶辫触!", e);
+        } finally {
+            if(writer != null){
+                writer.close();
+            }
+        }
+    }
 
-	/**
-	 * 寰楀埌骞惰缃厓绱犵殑灞炴�х殑甯冨皵鍊�
-	 * @param e 鍏冪礌瀵硅薄
-	 * @param attrName 灞炴�у悕绉�
-	 * @param attPropertyNameFix 灞炴�у悕绉板墠缂�
-	 * @param setValue 鍚屾椂璁剧疆鍊�
-	 * @return 杩斿洖缁撴灉
-	 * @throws Exception  鎶涘嚭寮傚父
-	 */
-	public boolean getSetAttrBoolean(Element e, String attrName, String attPropertyNameFix, String setValue) throws Exception{
-		String txt = this.getSetAttrTxt(e, attrName, attPropertyNameFix, false, setValue) ;
-		return txt.equalsIgnoreCase("true");
-	}
+    /**
+     * 妫�鏌ュ厓绱犳槸鍚﹀瓨鍦�
+     * @param doc doc瀵硅薄
+     * @param elementName 鍏冪礌鍚嶇О
+     * @return 杩斿洖缁撴灉  杩斿洖缁撴灉
+     */
+    public Element getElement(Document doc, String elementName){
+        if(doc == null){
+            return null ;
+        }
+        if(elementName == null){
+            return null ;
+        }
+        elementName = elementName.trim() ;
+        if(elementName.equals("")){
+            return null ;
+        }
+        return this.get_element(doc, elementName) ;
+    }
 
-	/**
-	 * 寰楀埌骞惰缃厓绱犵殑灞炴�х殑瀛楃涓插��
-	 * @param doc doc瀵硅薄
-	 * @param elementName 鍏冪礌鍚嶇О
-	 * @param attrName 灞炴�у悕绉�
-	 * @param attPropertyNameFix 灞炴�у悕绉板墠缂�
-	 * @param canBlank 鏄惁鍙负绌�
-	 * @param setValue 鍚屾椂璁剧疆鍊�
-	 * @return 杩斿洖缁撴灉
-	 * @throws Exception  鎶涘嚭寮傚父
-	 */
-	public String getSetAttrTxt(Document doc, String elementName, String attrName, String attPropertyNameFix, Boolean canBlank, String setValue) throws Exception{
-		Element e = this.checkAndGetElement(doc, elementName);
-		return this.getSetAttrTxt(e, attrName, attPropertyNameFix, canBlank, setValue) ;
-	}
-	
-	/**
-	 * 寰楀埌骞惰缃厓绱犵殑灞炴�х殑瀛楃涓插��
-	 * @param e 鍏冪礌瀵硅薄
-	 * @param attrName 灞炴�у悕绉�
-	 * @param attPropertyNameFix 灞炴�у悕绉板墠缂�
-	 * @param canBlank 鏄惁鍙负绌�
-	 * @param setValue 鍚屾椂璁剧疆鍊�
-	 * @return 杩斿洖缁撴灉
-	 * @throws Exception  鎶涘嚭寮傚父
-	 */
-	public String getSetAttrTxt(Element e, String attrName, String attPropertyNameFix, Boolean canBlank, String setValue) throws Exception{
-		String txt = this.check_get_set_Attribute(e, e.getName(), attrName, attPropertyNameFix, setValue) ;
-		if(!canBlank){
-			if(txt.trim().equals("")){
-				throw new Exception("鍏冪礌" + e.getName() + "鐨勫睘鎬�" + attrName + "鐨勫�间负绌哄瓧绗︿覆!");
-			}
-		}
-		return txt.trim() ;
-	}
-	/**
-	 * 寰楀埌骞惰缃厓绱犵殑灞炴�х殑姝f暣鏁板��
-	 * @param doc doc瀵硅薄
-	 * @param elementName 鍏冪礌鍚嶇О
-	 * @param attrName 灞炴�у悕绉�
-	 * @param attPropertyNameFix 灞炴�у悕绉板墠缂�
-	 * @param min 鏈�灏忓��
-	 * @param max 鏈�澶у��
-	 * @param setValue 鍚屾椂璁剧疆鍊�
-	 * @return 杩斿洖缁撴灉
-	 * @throws Exception  鎶涘嚭寮傚父
-	 */
-	public Integer getSetAttrPlusInt(Document doc, String elementName, String attrName, String attPropertyNameFix, Integer min, Integer max, String setValue) throws Exception{
-		Element e = this.checkAndGetElement(doc, elementName);
-		return this.getSetAttrPlusInt(e, attrName, attPropertyNameFix, min, max, setValue) ;
-	}
+    /**
+     * 妫�鏌ュ厓绱犳槸鍚﹀瓨鍦�
+     * @param doc doc瀵硅薄
+     * @param elementName 鍏冪礌鍚嶇О
+     * @return 杩斿洖缁撴灉  杩斿洖缁撴灉
+     */
+    public boolean existElement(Document doc, String elementName){
+        if(doc == null){
+            return false ;
+        }
+        if(elementName == null){
+            return false ;
+        }
+        elementName = elementName.trim() ;
+        if(elementName.equals("")){
+            return false ;
+        }
+        Element e = this.get_element(doc, elementName) ;
+        return e != null;
+    }
 
-	/**
-	 * 寰楀埌骞惰缃厓绱犵殑灞炴�х殑姝f暣鏁板��
-	 * @param e 鍏冪礌瀵硅薄
-	 * @param attrName 灞炴�у悕绉�
-	 * @param attPropertyNameFix 灞炴�у悕绉板墠缂�
-	 * @param min 鏈�灏忓��
-	 * @param max 鏈�澶у��
-	 * @param setValue 鍚屾椂璁剧疆鍊�
-	 * @return 杩斿洖缁撴灉
-	 * @throws Exception  鎶涘嚭寮傚父
-	 */
-	public Integer getSetAttrPlusInt(Element e, String attrName, String attPropertyNameFix, Integer min, Integer max, String setValue) throws Exception{
-		int v ;
-		String txt = this.check_get_set_Attribute(e, e.getName(), attrName, attPropertyNameFix, setValue) ;
-		if(!NumUtil.isPlusIntNumber(txt)){
-			throw new Exception("鍏冪礌" + e.getName() + "鐨勫睘鎬�" + attrName + "鐨勫�间笉鏄鏁存暟!");
-		}
-		v = Integer.parseInt(txt);
-		if(min != null && v < min){
-			throw new Exception("鍏冪礌" + e.getName() + "鐨勫睘鎬�" + attrName + "鐨勫�煎皬浜�" + min + "!");
-		}
-		if(max != null && v > max){
-			throw new Exception("鍏冪礌" + e.getName() + "鐨勫睘鎬�" + attrName + "鐨勫�煎ぇ浜�" + max + "!");
-		}
-		return v ;
-	}
-	
-	/**
-	 * 寰楀埌骞惰缃厓绱犵殑灞炴�х殑鏁存暟鍊�
-	 * @param doc doc瀵硅薄
-	 * @param elementName 鍏冪礌鍚嶇О
-	 * @param attrName 灞炴�у悕绉�
-	 * @param attPropertyNameFix 灞炴�у悕绉板墠缂�
-	 * @param min 鏈�灏忓��
-	 * @param max 鏈�澶у��
-	 * @param setValue 鍚屾椂璁剧疆鍊�
-	 * @return 杩斿洖缁撴灉
-	 * @throws Exception  鎶涘嚭寮傚父
-	 */
-	public Integer getSetAttrInt(Document doc, String elementName, String attrName, String attPropertyNameFix, Integer min, Integer max, String setValue) throws Exception{
-		Element e = this.checkAndGetElement(doc, elementName);
-		return this.getSetAttrInt(e, attrName, attPropertyNameFix, min, max, setValue) ;
-	}
-	
-	/**
-	 * 寰楀埌骞惰缃厓绱犵殑灞炴�х殑鏁存暟鍊�
-	 * @param e 鍏冪礌瀵硅薄
-	 * @param attrName 灞炴�у悕绉�
-	 * @param attPropertyNameFix 灞炴�у悕绉板墠缂�
-	 * @param min 鏈�灏忓��
-	 * @param max 鏈�澶у��
-	 * @param setValue 鍚屾椂璁剧疆鍊�
-	 * @return 杩斿洖缁撴灉
-	 * @throws Exception  鎶涘嚭寮傚父
-	 */
-	public Integer getSetAttrInt(Element e, String attrName, String attPropertyNameFix, Integer min, Integer max, String setValue) throws Exception{
-		int v ;
-		String txt = this.check_get_set_Attribute(e, e.getName(), attrName, attPropertyNameFix, setValue) ;
-		if(!NumUtil.isIntNumber(txt)){
-			throw new Exception("鍏冪礌" + e.getName() + "鐨勫睘鎬�" + attrName + "鐨勫�间笉鏄鏁存暟!");
-		}
-		v = Integer.parseInt(txt) ;
-		if(min != null && v < min){
-			throw new Exception("鍏冪礌" + e.getName() + "鐨勫睘鎬�" + attrName + "鐨勫�煎皬浜�" + min + "!");
-		}
-		if(max != null && v > max){
-			throw new Exception("鍏冪礌" + e.getName() + "鐨勫睘鎬�" + attrName + "鐨勫�煎ぇ浜�" + max + "!");
-		}
-		return v ;
-	}
-	
-	/**
-	 * 寰楀埌骞惰缃厓绱犵殑灞炴�х殑娴偣鏁板��
-	 * @param doc doc瀵硅薄
-	 * @param elementName 鍏冪礌鍚嶇О
-	 * @param attrName 灞炴�у悕绉�
-	 * @param min 鏈�灏忓��
-	 * @param max 鏈�澶у��
-	 * @param setValue 鍚屾椂璁剧疆鍊�
-	 * @return 杩斿洖缁撴灉
-	 * @throws Exception  鎶涘嚭寮傚父
-	 */
-	public Double getSetAttrPlusDouble(Document doc, String elementName, String attrName, String attPropertyNameFix, Double min, Double max, String setValue) throws Exception{
-		Element e = this.checkAndGetElement(doc, elementName);
-		return this.getSetAttrPlusDouble(e, attrName, attPropertyNameFix, min, max, setValue) ;
-	}
-	
-	/**
-	 * 寰楀埌骞惰缃厓绱犵殑灞炴�х殑姝f诞鐐规暟鍊�
-	 * @param e 鍏冪礌瀵硅薄
-	 * @param attrName 灞炴�у悕绉�
-	 * @param attPropertyNameFix 灞炴�у悕绉板墠缂�
-	 * @param min 鏈�灏忓��
-	 * @param max 鏈�澶у��
-	 * @param setValue 鍚屾椂璁剧疆鍊�
-	 * @return 杩斿洖缁撴灉
-	 * @throws Exception  鎶涘嚭寮傚父
-	 */
-	public Double getSetAttrPlusDouble(Element e, String attrName, String attPropertyNameFix, Double min, Double max, String setValue) throws Exception{
-		double v ;
-		String txt = this.check_get_set_Attribute(e, e.getName(), attrName, attPropertyNameFix, setValue) ;
-		if(!NumUtil.isPlusDoubleNumber(txt)){
-			throw new Exception("鍏冪礌" + e.getName() + "鐨勫睘鎬�" + attrName + "鐨勫�间笉鏄娴偣鏁�!");
-		}
-		v = Double.parseDouble(txt) ;
-		if(min != null && v < min){
-			throw new Exception("鍏冪礌" + e.getName() + "鐨勫睘鎬�" + attrName + "鐨勫�煎皬浜�" + min + "!");
-		}
-		if(max != null && v > max){
-			throw new Exception("鍏冪礌" + e.getName() + "鐨勫睘鎬�" + attrName + "鐨勫�煎ぇ浜�" + max + "!");
-		}
-		return v ;
-	}
-	
-	/**
-	 * 寰楀埌骞惰缃厓绱犵殑灞炴�х殑娴偣鏁板��
-	 * @param doc doc瀵硅薄
-	 * @param elementName 鍏冪礌鍚嶇О
-	 * @param attrName 灞炴�у悕绉�
-	 * @param attPropertyNameFix 灞炴�у悕绉板墠缂�
-	 * @param min 鏈�灏忓��
-	 * @param max 鏈�澶у��
-	 * @param setValue 鍚屾椂璁剧疆鍊�
-	 * @return 杩斿洖缁撴灉
-	 * @throws Exception  鎶涘嚭寮傚父
-	 */
-	public Double getSetAttrDouble(Document doc, String elementName, String attrName, String attPropertyNameFix, Double min, Double max, String setValue) throws Exception{
-		Element e = this.checkAndGetElement(doc, elementName);
-		return this.getSetAttrDouble(e, attrName, attPropertyNameFix, min, max, setValue) ;
-	}
-	
-	/**
-	 * 寰楀埌骞惰缃厓绱犵殑灞炴�х殑娴偣鏁板��
-	 * @param e 鍏冪礌瀵硅薄
-	 * @param attrName 灞炴�у悕绉�
-	 * @param attPropertyNameFix 灞炴�у悕绉板墠缂�
-	 * @param min 鏈�灏忓��
-	 * @param max 鏈�澶у��
-	 * @param setValue 鍚屾椂璁剧疆鍊�
-	 * @return 杩斿洖缁撴灉
-	 * @throws Exception  鎶涘嚭寮傚父
-	 */
-	public Double getSetAttrDouble(Element e, String attrName, String attPropertyNameFix, Double min, Double max, String setValue) throws Exception{
-		double v ;
-		String txt = this.check_get_set_Attribute(e, e.getName(), attrName, attPropertyNameFix, setValue) ;
-		if(!NumUtil.isDoubleNumber(txt)){
-			throw new Exception("鍏冪礌" + e.getName() + "鐨勫睘鎬�" + attrName + "鐨勫�间笉鏄娴偣鏁�!");
-		}
-		v = Double.parseDouble(txt) ;
-		if(min != null && v < min){
-			throw new Exception("鍏冪礌" + e.getName() + "鐨勫睘鎬�" + attrName + "鐨勫�煎皬浜�" + min + "!");
-		}
-		if(max != null && v > max){
-			throw new Exception("鍏冪礌" + e.getName() + "鐨勫睘鎬�" + attrName + "鐨勫�煎ぇ浜�" + max + "!");
-		}
-		return v ;
-	}	
-	/**
-	 * 寰楀埌鍏冪礌
-	 * @param doc doc瀵硅薄
-	 * @param elementName 鍏冪礌鍚嶇О 鍏冪礌鍚嶏紝褰㈠"config.base.test"
-	 * @return 杩斿洖缁撴灉
-	 */
-	private Element getElement(Document doc, String elementName){
-		Element e = null ;
-		Element root ;
-		String nm ;
-		String[] eNames = elementName.split("\\.") ;
-		if(eNames.length > 0){
-			root = doc.getRootElement() ;
-			nm = root.getName() ;
-			if(nm.equals(eNames[0].trim())){
-				if(eNames.length == 1){
-					e = root ;
-				}else{
-					e = this.getNextElement(root, eNames, 1) ;
-				}
-			}
-		}
-		return e ;
-	}
-	
-	/**
-	 * 寰楀埌瀛愬厓绱�
-	 * @param base 涓婄骇鍏冪礌瀵硅薄
-	 * @param eNames 鍏冪礌鍚嶇О 
-	 * @param index 鏁扮粍涓嬫爣
-	 * @return 杩斿洖缁撴灉
-	 */
-	private Element getNextElement(Element base, String[] eNames, int index){
-		Element e = null ;
-		String nm ;
-		List<Element> list = base.getChildren() ;
-		if(list != null && list.size() >0){
-			for(Element el: list){
-				nm = el.getName() ;
-				if(nm.equals(eNames[index].trim())){
-					if(eNames.length == index + 1){
-						e = el ;
-					}else{
-						e = this.getNextElement(el, eNames, index + 1) ;
-					}
-					break ;
-				}
-			}
-		}
-		return e ;
-	}
-	/**
-	 * 妫�鏌ュ苟鑾峰厓绱�
-	 * @param doc doc瀵硅薄
-	 * @param elementName 鍏冪礌鍚嶇О
-	 * @return 杩斿洖缁撴灉
-	 * @throws Exception  鎶涘嚭寮傚父
-	 */
-	private Element checkAndGetElement(Document doc, String elementName)throws Exception{
-		if(doc == null){
-			throw new Exception("閰嶇疆鏂囦欢鐨凞OM瀵硅薄涓虹┖!");
-		}
-		if(elementName == null){
-			throw new Exception("鍏冪礌鍚嶄负绌�!");
-		}
-		elementName = elementName.trim() ;
-		if(elementName.equals("")){
-			throw new Exception("鍏冪礌鍚嶄负绌�!");
-		}	
-		Element e = this.getElement(doc, elementName) ;
-		if(e == null){
-			throw new Exception("鏈緱鍒板悕绉颁负" + elementName + "鐨勫厓绱�!");
-		}
-		return e ;
-	}
-	
-	/**
-	 * 妫�鏌ュ苟鑾峰緱骞惰缃睘鎬у��
-	 * @param e 鍏冪礌瀵硅薄
-	 * @param elementName 鍏冪礌鍚嶇О
-	 * @param attrName 灞炴�у悕绉�
-	 * @param attPropertyNameFix 灞炴�у悕绉板墠缂�
-	 * @return 杩斿洖缁撴灉
-	 * @throws Exception  鎶涘嚭寮傚父
-	 */
-	private String check_get_set_Attribute(Element e, String elementName, String attrName, String attPropertyNameFix, String setValue)throws Exception{
-		if(attrName == null){
-			throw new Exception("灞炴�у悕涓虹┖!");
-		}
-		attrName = attrName.trim() ;
-		if(attrName.equals("")){
-			throw new Exception("灞炴�у悕涓虹┖!");
-		}
-		String txt = this.get_set_AttributTxt(e, attrName, attPropertyNameFix, setValue) ;
-		if(txt == null){
-			throw new Exception("鏈緱鍒板厓绱�" + elementName + "鐨勫睘鎬�" + attrName + "鐨勫��!");
-		}
-		return txt ;
-	}	
-	/**
-	 * 寰楀埌骞惰缃睘鎬ч厤缃��
-	 * @param e 鍏冪礌瀵硅薄
-	 * @param attName 灞炴�у悕绉�
-	 * @param attPropertyNameFix 灞炴�у悕绉板墠缂�
-	 * @param setValue 鍚屾椂璁剧疆鍊�
-	 * @return 杩斿洖缁撴灉
-	 */
-	private String get_set_AttributTxt(Element e, String attName, String attPropertyNameFix, String setValue){
-		String txt = null ;
-		if(e != null && attName != null){
-			attName = attName.trim() ;
-			if(!attName.equals("")){
-				txt = e.getAttributeValue(attName) ;
-				if(setValue != null){
-					e.setAttribute(attName, setValue) ;
-				}
-			}
-		}
-		if(txt != null && txt.startsWith("${") && txt.endsWith("}")){
-			txt = txt.substring(2, txt.length() - 1) ;
-			if(attPropertyNameFix != null){
-				txt = txt + attPropertyNameFix ;
-			}
-			txt = ConfigProperties.getConfig(txt) ;
-		}
-		return txt ;
-	}
-	
+
+    /**
+     * 寰楀埌骞惰缃厓绱犵殑灞炴�х殑甯冨皵鍊�
+     * @param doc doc瀵硅薄
+     * @param elementName 鍏冪礌鍚嶇О
+     * @param attrName 灞炴�у悕绉�
+     * @param attPropertyNameFix 灞炴�у悕绉板墠缂�
+     * @param setValue 鍚屾椂璁剧疆鍊�
+     * @return 杩斿洖缁撴灉
+     * @throws Exception  鎶涘嚭寮傚父
+     */
+    public boolean getSetAttrBoolean(Document doc, String elementName, String attrName, String attPropertyNameFix, String setValue) throws Exception{
+        String txt = this.getSetAttrTxt(doc, elementName, attrName, attPropertyNameFix, false, setValue) ;
+        return txt.equalsIgnoreCase("true");
+    }
+
+    /**
+     * 寰楀埌骞惰缃厓绱犵殑灞炴�х殑甯冨皵鍊�
+     * @param e 鍏冪礌瀵硅薄
+     * @param attrName 灞炴�у悕绉�
+     * @param attPropertyNameFix 灞炴�у悕绉板墠缂�
+     * @param setValue 鍚屾椂璁剧疆鍊�
+     * @return 杩斿洖缁撴灉
+     * @throws Exception  鎶涘嚭寮傚父
+     */
+    public boolean getSetAttrBoolean(Element e, String attrName, String attPropertyNameFix, String setValue) throws Exception{
+        String txt = this.getSetAttrTxt(e, attrName, attPropertyNameFix, false, setValue) ;
+        return txt.equalsIgnoreCase("true");
+    }
+
+    /**
+     * 寰楀埌骞惰缃厓绱犵殑灞炴�х殑瀛楃涓插��
+     * @param doc doc瀵硅薄
+     * @param elementName 鍏冪礌鍚嶇О
+     * @param attrName 灞炴�у悕绉�
+     * @param attPropertyNameFix 灞炴�у悕绉板墠缂�
+     * @param canBlank 鏄惁鍙负绌�
+     * @param setValue 鍚屾椂璁剧疆鍊�
+     * @return 杩斿洖缁撴灉
+     * @throws Exception  鎶涘嚭寮傚父
+     */
+    public String getSetAttrTxt(Document doc, String elementName, String attrName, String attPropertyNameFix, Boolean canBlank, String setValue) throws Exception{
+        Element e = this.check_and_get_element(doc, elementName);
+        return this.getSetAttrTxt(e, attrName, attPropertyNameFix, canBlank, setValue) ;
+    }
+
+    /**
+     * 寰楀埌骞惰缃厓绱犵殑灞炴�х殑瀛楃涓插��
+     * @param e 鍏冪礌瀵硅薄
+     * @param attrName 灞炴�у悕绉�
+     * @param attPropertyNameFix 灞炴�у悕绉板墠缂�
+     * @param canBlank 鏄惁鍙负绌�
+     * @param setValue 鍚屾椂璁剧疆鍊�
+     * @return 杩斿洖缁撴灉
+     * @throws Exception  鎶涘嚭寮傚父
+     */
+    public String getSetAttrTxt(Element e, String attrName, String attPropertyNameFix, Boolean canBlank, String setValue) throws Exception{
+        String txt = this.check_get_set_Attribute(e, e.getName(), attrName, attPropertyNameFix, setValue) ;
+        if(!canBlank){
+            if(txt.trim().equals("")){
+                throw new Exception("鍏冪礌" + e.getName() + "鐨勫睘鎬�" + attrName + "鐨勫�间负绌哄瓧绗︿覆!");
+            }
+        }
+        return txt.trim() ;
+    }
+    /**
+     * 寰楀埌骞惰缃厓绱犵殑灞炴�х殑姝f暣鏁板��
+     * @param doc doc瀵硅薄
+     * @param elementName 鍏冪礌鍚嶇О
+     * @param attrName 灞炴�у悕绉�
+     * @param attPropertyNameFix 灞炴�у悕绉板墠缂�
+     * @param min 鏈�灏忓��
+     * @param max 鏈�澶у��
+     * @param setValue 鍚屾椂璁剧疆鍊�
+     * @return 杩斿洖缁撴灉
+     * @throws Exception  鎶涘嚭寮傚父
+     */
+    public Integer getSetAttrPlusInt(Document doc, String elementName, String attrName, String attPropertyNameFix, Integer min, Integer max, String setValue) throws Exception{
+        Element e = this.check_and_get_element(doc, elementName);
+        return this.getSetAttrPlusInt(e, attrName, attPropertyNameFix, min, max, setValue) ;
+    }
+
+    /**
+     * 寰楀埌骞惰缃厓绱犵殑灞炴�х殑姝f暣鏁板��
+     * @param e 鍏冪礌瀵硅薄
+     * @param attrName 灞炴�у悕绉�
+     * @param attPropertyNameFix 灞炴�у悕绉板墠缂�
+     * @param min 鏈�灏忓��
+     * @param max 鏈�澶у��
+     * @param setValue 鍚屾椂璁剧疆鍊�
+     * @return 杩斿洖缁撴灉
+     * @throws Exception  鎶涘嚭寮傚父
+     */
+    public Integer getSetAttrPlusInt(Element e, String attrName, String attPropertyNameFix, Integer min, Integer max, String setValue) throws Exception{
+        int v ;
+        String txt = this.check_get_set_Attribute(e, e.getName(), attrName, attPropertyNameFix, setValue) ;
+        if(!NumUtil.isPlusIntNumber(txt)){
+            throw new Exception("鍏冪礌" + e.getName() + "鐨勫睘鎬�" + attrName + "鐨勫�间笉鏄鏁存暟!");
+        }
+        v = Integer.parseInt(txt);
+        if(min != null && v < min){
+            throw new Exception("鍏冪礌" + e.getName() + "鐨勫睘鎬�" + attrName + "鐨勫�煎皬浜�" + min + "!");
+        }
+        if(max != null && v > max){
+            throw new Exception("鍏冪礌" + e.getName() + "鐨勫睘鎬�" + attrName + "鐨勫�煎ぇ浜�" + max + "!");
+        }
+        return v ;
+    }
+
+    /**
+     * 寰楀埌骞惰缃厓绱犵殑灞炴�х殑鏁存暟鍊�
+     * @param doc doc瀵硅薄
+     * @param elementName 鍏冪礌鍚嶇О
+     * @param attrName 灞炴�у悕绉�
+     * @param attPropertyNameFix 灞炴�у悕绉板墠缂�
+     * @param min 鏈�灏忓��
+     * @param max 鏈�澶у��
+     * @param setValue 鍚屾椂璁剧疆鍊�
+     * @return 杩斿洖缁撴灉
+     * @throws Exception  鎶涘嚭寮傚父
+     */
+    public Integer getSetAttrInt(Document doc, String elementName, String attrName, String attPropertyNameFix, Integer min, Integer max, String setValue) throws Exception{
+        Element e = this.check_and_get_element(doc, elementName);
+        return this.getSetAttrInt(e, attrName, attPropertyNameFix, min, max, setValue) ;
+    }
+
+    /**
+     * 寰楀埌骞惰缃厓绱犵殑灞炴�х殑鏁存暟鍊�
+     * @param e 鍏冪礌瀵硅薄
+     * @param attrName 灞炴�у悕绉�
+     * @param attPropertyNameFix 灞炴�у悕绉板墠缂�
+     * @param min 鏈�灏忓��
+     * @param max 鏈�澶у��
+     * @param setValue 鍚屾椂璁剧疆鍊�
+     * @return 杩斿洖缁撴灉
+     * @throws Exception  鎶涘嚭寮傚父
+     */
+    public Integer getSetAttrInt(Element e, String attrName, String attPropertyNameFix, Integer min, Integer max, String setValue) throws Exception{
+        int v ;
+        String txt = this.check_get_set_Attribute(e, e.getName(), attrName, attPropertyNameFix, setValue) ;
+        if(!NumUtil.isIntNumber(txt)){
+            throw new Exception("鍏冪礌" + e.getName() + "鐨勫睘鎬�" + attrName + "鐨勫�间笉鏄鏁存暟!");
+        }
+        v = Integer.parseInt(txt) ;
+        if(min != null && v < min){
+            throw new Exception("鍏冪礌" + e.getName() + "鐨勫睘鎬�" + attrName + "鐨勫�煎皬浜�" + min + "!");
+        }
+        if(max != null && v > max){
+            throw new Exception("鍏冪礌" + e.getName() + "鐨勫睘鎬�" + attrName + "鐨勫�煎ぇ浜�" + max + "!");
+        }
+        return v ;
+    }
+
+    /**
+     * 寰楀埌骞惰缃厓绱犵殑灞炴�х殑娴偣鏁板��
+     * @param doc doc瀵硅薄
+     * @param elementName 鍏冪礌鍚嶇О
+     * @param attrName 灞炴�у悕绉�
+     * @param min 鏈�灏忓��
+     * @param max 鏈�澶у��
+     * @param setValue 鍚屾椂璁剧疆鍊�
+     * @return 杩斿洖缁撴灉
+     * @throws Exception  鎶涘嚭寮傚父
+     */
+    public Double getSetAttrPlusDouble(Document doc, String elementName, String attrName, String attPropertyNameFix, Double min, Double max, String setValue) throws Exception{
+        Element e = this.check_and_get_element(doc, elementName);
+        return this.getSetAttrPlusDouble(e, attrName, attPropertyNameFix, min, max, setValue) ;
+    }
+
+    /**
+     * 寰楀埌骞惰缃厓绱犵殑灞炴�х殑姝f诞鐐规暟鍊�
+     * @param e 鍏冪礌瀵硅薄
+     * @param attrName 灞炴�у悕绉�
+     * @param attPropertyNameFix 灞炴�у悕绉板墠缂�
+     * @param min 鏈�灏忓��
+     * @param max 鏈�澶у��
+     * @param setValue 鍚屾椂璁剧疆鍊�
+     * @return 杩斿洖缁撴灉
+     * @throws Exception  鎶涘嚭寮傚父
+     */
+    public Double getSetAttrPlusDouble(Element e, String attrName, String attPropertyNameFix, Double min, Double max, String setValue) throws Exception{
+        double v ;
+        String txt = this.check_get_set_Attribute(e, e.getName(), attrName, attPropertyNameFix, setValue) ;
+        if(!NumUtil.isPlusDoubleNumber(txt)){
+            throw new Exception("鍏冪礌" + e.getName() + "鐨勫睘鎬�" + attrName + "鐨勫�间笉鏄娴偣鏁�!");
+        }
+        v = Double.parseDouble(txt) ;
+        if(min != null && v < min){
+            throw new Exception("鍏冪礌" + e.getName() + "鐨勫睘鎬�" + attrName + "鐨勫�煎皬浜�" + min + "!");
+        }
+        if(max != null && v > max){
+            throw new Exception("鍏冪礌" + e.getName() + "鐨勫睘鎬�" + attrName + "鐨勫�煎ぇ浜�" + max + "!");
+        }
+        return v ;
+    }
+
+    /**
+     * 寰楀埌骞惰缃厓绱犵殑灞炴�х殑娴偣鏁板��
+     * @param doc doc瀵硅薄
+     * @param elementName 鍏冪礌鍚嶇О
+     * @param attrName 灞炴�у悕绉�
+     * @param attPropertyNameFix 灞炴�у悕绉板墠缂�
+     * @param min 鏈�灏忓��
+     * @param max 鏈�澶у��
+     * @param setValue 鍚屾椂璁剧疆鍊�
+     * @return 杩斿洖缁撴灉
+     * @throws Exception  鎶涘嚭寮傚父
+     */
+    public Double getSetAttrDouble(Document doc, String elementName, String attrName, String attPropertyNameFix, Double min, Double max, String setValue) throws Exception{
+        Element e = this.check_and_get_element(doc, elementName);
+        return this.getSetAttrDouble(e, attrName, attPropertyNameFix, min, max, setValue) ;
+    }
+
+    /**
+     * 寰楀埌骞惰缃厓绱犵殑灞炴�х殑娴偣鏁板��
+     * @param e 鍏冪礌瀵硅薄
+     * @param attrName 灞炴�у悕绉�
+     * @param attPropertyNameFix 灞炴�у悕绉板墠缂�
+     * @param min 鏈�灏忓��
+     * @param max 鏈�澶у��
+     * @param setValue 鍚屾椂璁剧疆鍊�
+     * @return 杩斿洖缁撴灉
+     * @throws Exception  鎶涘嚭寮傚父
+     */
+    public Double getSetAttrDouble(Element e, String attrName, String attPropertyNameFix, Double min, Double max, String setValue) throws Exception{
+        double v ;
+        String txt = this.check_get_set_Attribute(e, e.getName(), attrName, attPropertyNameFix, setValue) ;
+        if(!NumUtil.isDoubleNumber(txt)){
+            throw new Exception("鍏冪礌" + e.getName() + "鐨勫睘鎬�" + attrName + "鐨勫�间笉鏄娴偣鏁�!");
+        }
+        v = Double.parseDouble(txt) ;
+        if(min != null && v < min){
+            throw new Exception("鍏冪礌" + e.getName() + "鐨勫睘鎬�" + attrName + "鐨勫�煎皬浜�" + min + "!");
+        }
+        if(max != null && v > max){
+            throw new Exception("鍏冪礌" + e.getName() + "鐨勫睘鎬�" + attrName + "鐨勫�煎ぇ浜�" + max + "!");
+        }
+        return v ;
+    }
+    /**
+     * 寰楀埌鍏冪礌
+     * @param doc doc瀵硅薄
+     * @param elementName 鍏冪礌鍚嶇О 鍏冪礌鍚嶏紝褰㈠"config.base.test"
+     * @return 杩斿洖缁撴灉
+     */
+    private Element get_element(Document doc, String elementName){
+        Element e = null ;
+        Element root ;
+        String nm ;
+        String[] eNames = elementName.split("\\.") ;
+        if(eNames.length > 0){
+            root = doc.getRootElement() ;
+            nm = root.getName() ;
+            if(nm.equals(eNames[0].trim())){
+                if(eNames.length == 1){
+                    e = root ;
+                }else{
+                    e = this.get_next_element(root, eNames, 1) ;
+                }
+            }
+        }
+        return e ;
+    }
+
+    /**
+     * 寰楀埌瀛愬厓绱�
+     * @param base 涓婄骇鍏冪礌瀵硅薄
+     * @param eNames 鍏冪礌鍚嶇О
+     * @param index 鏁扮粍涓嬫爣
+     * @return 杩斿洖缁撴灉
+     */
+    private Element get_next_element(Element base, String[] eNames, int index){
+        Element e = null ;
+        String nm ;
+        List<Element> list = base.getChildren() ;
+        if(list != null && list.size() >0){
+            for(Element el: list){
+                nm = el.getName() ;
+                if(nm.equals(eNames[index].trim())){
+                    if(eNames.length == index + 1){
+                        e = el ;
+                    }else{
+                        e = this.get_next_element(el, eNames, index + 1) ;
+                    }
+                    break ;
+                }
+            }
+        }
+        return e ;
+    }
+    /**
+     * 妫�鏌ュ苟鑾峰厓绱�
+     * @param doc doc瀵硅薄
+     * @param elementName 鍏冪礌鍚嶇О
+     * @return 杩斿洖缁撴灉
+     * @throws Exception  鎶涘嚭寮傚父
+     */
+    private Element check_and_get_element(Document doc, String elementName)throws Exception{
+        if(doc == null){
+            throw new Exception("閰嶇疆鏂囦欢鐨凞OM瀵硅薄涓虹┖!");
+        }
+        if(elementName == null){
+            throw new Exception("鍏冪礌鍚嶄负绌�!");
+        }
+        elementName = elementName.trim() ;
+        if(elementName.equals("")){
+            throw new Exception("鍏冪礌鍚嶄负绌�!");
+        }
+        Element e = this.get_element(doc, elementName) ;
+        if(e == null){
+            throw new Exception("鏈緱鍒板悕绉颁负" + elementName + "鐨勫厓绱�!");
+        }
+        return e ;
+    }
+
+    /**
+     * 妫�鏌ュ苟鑾峰緱骞惰缃睘鎬у��
+     * @param e 鍏冪礌瀵硅薄
+     * @param elementName 鍏冪礌鍚嶇О
+     * @param attrName 灞炴�у悕绉�
+     * @param attPropertyNameFix 灞炴�у悕绉板墠缂�
+     * @return 杩斿洖缁撴灉
+     * @throws Exception  鎶涘嚭寮傚父
+     */
+    private String check_get_set_Attribute(Element e, String elementName, String attrName, String attPropertyNameFix, String setValue)throws Exception{
+        if(attrName == null){
+            throw new Exception("灞炴�у悕涓虹┖!");
+        }
+        attrName = attrName.trim() ;
+        if(attrName.equals("")){
+            throw new Exception("灞炴�у悕涓虹┖!");
+        }
+        String txt = this.get_set_AttributTxt(e, attrName, attPropertyNameFix, setValue) ;
+        if(txt == null){
+            throw new Exception("鏈緱鍒板厓绱�" + elementName + "鐨勫睘鎬�" + attrName + "鐨勫��!");
+        }
+        return txt ;
+    }
+    /**
+     * 寰楀埌骞惰缃睘鎬ч厤缃��
+     * @param e 鍏冪礌瀵硅薄
+     * @param attName 灞炴�у悕绉�
+     * @param attPropertyNameFix 灞炴�у悕绉板墠缂�
+     * @param setValue 鍚屾椂璁剧疆鍊�
+     * @return 杩斿洖缁撴灉
+     */
+    private String get_set_AttributTxt(Element e, String attName, String attPropertyNameFix, String setValue){
+        String txt = null ;
+        if(e != null && attName != null){
+            attName = attName.trim() ;
+            if(!attName.equals("")){
+                txt = e.getAttributeValue(attName) ;
+                if(setValue != null){
+                    e.setAttribute(attName, setValue) ;
+                }
+            }
+        }
+        if(txt != null && txt.startsWith("${") && txt.endsWith("}")){
+            txt = txt.substring(2, txt.length() - 1) ;
+            if(attPropertyNameFix != null){
+                txt = txt + attPropertyNameFix ;
+            }
+            txt = ConfigProperties.getConfig(txt) ;
+        }
+        return txt ;
+    }
+
 }

--
Gitblit v1.8.0