From 051b69657f78aab4aa8576e85d6347f6cec04a41 Mon Sep 17 00:00:00 2001 From: Igor I Date: Wed, 5 Feb 2025 09:40:38 +0500 Subject: [PATCH 1/4] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BC=D0=B5=D1=81?= =?UTF-8?q?=D1=82=D0=B8=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DBTools.java => dbtools/DBTools.java | 0 xmltools/XMLIO.java | 47 ++++++ XMLTools.java => xmltools/XMLTools.java | 199 +++++++++++++++++++++--- 3 files changed, 224 insertions(+), 22 deletions(-) rename DBTools.java => dbtools/DBTools.java (100%) create mode 100644 xmltools/XMLIO.java rename XMLTools.java => xmltools/XMLTools.java (56%) diff --git a/DBTools.java b/dbtools/DBTools.java similarity index 100% rename from DBTools.java rename to dbtools/DBTools.java diff --git a/xmltools/XMLIO.java b/xmltools/XMLIO.java new file mode 100644 index 0000000..9599869 --- /dev/null +++ b/xmltools/XMLIO.java @@ -0,0 +1,47 @@ +package tools.xml; + +import org.w3c.dom.Document; +import org.xml.sax.SAXException; + +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.stream.StreamResult; +import javax.xml.transform.dom.DOMSource; +import java.io.*; + +/** + * Created by IntelliJ IDEA. + * User: Igor + * Date: 18.12.2005 + * Time: 15:27:36 + * To change this template use File | Settings | File Templates. + */ +public class XMLIO +{ + public static Document newDocument() throws ParserConfigurationException + { + return DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument(); + } + + public static Document load(InputStream is) throws ParserConfigurationException, IOException, SAXException + { + return DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(is); + } + + public static Document load(String filename) throws ParserConfigurationException, IOException, SAXException + { + return DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File(filename)); + } + + public static void save(String filename, Document document) throws TransformerException, FileNotFoundException + { + save(new FileOutputStream(filename), document); + } + + public static void save(OutputStream out, Document document) throws TransformerException + { + TransformerFactory.newInstance().newTransformer().transform(new DOMSource(document), new StreamResult(out)); + } +} diff --git a/XMLTools.java b/xmltools/XMLTools.java similarity index 56% rename from XMLTools.java rename to xmltools/XMLTools.java index e7ae2f7..6cd05fa 100644 --- a/XMLTools.java +++ b/xmltools/XMLTools.java @@ -1,5 +1,6 @@ -package tools; +package tools.xml; +import javax.xml.parsers.ParserConfigurationException; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathExpression; @@ -9,14 +10,27 @@ import org.w3c.dom.Element; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.w3c.dom.NodeList; +import org.w3c.dom.ls.DOMImplementationLS; +import org.w3c.dom.ls.LSSerializer; +import org.xml.sax.SAXException; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathExpression; import javax.xml.xpath.XPathExpressionException; import javax.xml.xpath.XPathFactory; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; -public class XMLTools +/** + * Created by IntelliJ IDEA. + * User: Igor + * Date: 18.12.2005 + * Time: 15:26:59 + * To change this template use File | Settings | File Templates. + */ +public class XMLTools { /** * Вернуть значение первой попавшийся CDATA @@ -35,6 +49,44 @@ public class XMLTools return ""; } + public static Document parse(String xmlString) throws IOException, ParserConfigurationException, SAXException + { + return XMLIO.load(new ByteArrayInputStream(xmlString.getBytes())); + } + + public static Document parse(InputStream xmlString) throws IOException, ParserConfigurationException, SAXException + { + return XMLIO.load(xmlString); + } + + /** + * Возвращает вложенный элемент "childName" элемента "parent"
+ * <element><childName/></element> + * @param parent + * @param childName + * @return Дочерный элемент либо null, если элементов с таким именем нет + */ + public static Element getChild(Element parent, String childName){ + NodeList nl = parent.getChildNodes(); + for (int i = 0; i node элементом (instanceOf {@link Element}) + * и имеет ли имя "tagname" + * @param node + * @param tagname + * @return + */ + public static boolean isElement(Node node, String tagname){ + return node instanceof Element && node.getNodeName().equals(tagname); + } + /** Найти узел по атрибуту */ public static Node findNodeOnAttribute(Node node, String nodename, String attribute, String val) @@ -52,26 +104,71 @@ public class XMLTools } return null; } - - public static Node findFirstNodeOnAttribute(Node node, String nodename,String attribute,String val) - { - Node result=null; - if(node==null) return result; - javax.xml.xpath.XPathFactory xPathfactory = javax.xml.xpath.XPathFactory.newInstance(); - XPath xpath = xPathfactory.newXPath(); - XPathExpression expr=null; - Object exprResult=null; - try { - expr = xpath.compile("//*/"+nodename+"[@"+attribute+"='" + val + "']"); - exprResult = expr.evaluate(node, XPathConstants.NODESET); - } catch (XPathExpressionException ex) { - + + //вернуть первый попавшийся узел среди дочерних + public static Node getFirstNodeOnName(Node node,String nodename) + { + Node[] mas=new Node[50]; //depth + int pos=0; + mas[pos] = node.getFirstChild(); + while (mas[pos] != null) + { + if(mas[pos].getNodeName().equals(nodename)) + { + return mas[pos]; + } + if(mas[pos].getFirstChild()!=null) + { + pos++; + mas[pos]=mas[pos-1].getFirstChild(); + }else + { + //если не идёт дальше пытаемся подняться в верх по дереву + while (true) + { + mas[pos] = mas[pos].getNextSibling(); + if (mas[pos]==null) + { + if(pos>0){ pos--; }else{ break; } + }else + { + break; + } + } + } + } + return null; + } + + /** + * Return first from childs in first deep level on name + * @param node Find in + * @param nodename Name node + * @return node + */ + public static Node getNodeOnName(Node node,String nodename) + { + if(node==null) return null; + Node nextNode = node.getFirstChild(); + while(nextNode != null) + { + if(nextNode.getNodeName().equals(nodename)) return nextNode; + nextNode=nextNode.getNextSibling(); } - NodeList nodeList = (NodeList) exprResult; - if (nodeList.getLength() > 0) - result = nodeList.item(0); - return result; - } + return null; + } + + //Сериализовать узел в строку + public static String getOuterXML(Node node) + { + DOMImplementationLS domImplementation = (DOMImplementationLS) node.getOwnerDocument().getImplementation(); + LSSerializer lsSerializer = domImplementation.createLSSerializer(); + if (!(node instanceof Document)) + { + lsSerializer.getDomConfig().setParameter("xml-declaration", false); + } + return lsSerializer.writeToString(node); + } /** * Поиск среди текущего и дочерних узлов @@ -98,7 +195,65 @@ public class XMLTools result = nodeList.item(0); return result; } - + + /** + * Найти узел по имени + * @param node + * @param nodename + * @return + */ + public static Node findFirstNode_v2(Node node, String nodename) + { + if(node==null || nodename==null) return null; + NodeList items = node.getChildNodes(); + for (int i=0;i 0) + result = nodeList.item(0); + return result; + } + /** * Присвоить дочерние узлы первого дерева второму если их нет, иначе дополнить либо заменить. (Работает через рекурсию нужно для передачи параметров между окнами) * @param {XML} first Узел где ханятся настройки From 1c1c6e56fb26bcf66cbaa8f91c3ef227c5ba3404 Mon Sep 17 00:00:00 2001 From: Igor I Date: Wed, 5 Feb 2025 09:46:34 +0500 Subject: [PATCH 2/4] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BC=D0=B5=D1=81?= =?UTF-8?q?=D1=82=D0=B8=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- xml/XMLIO.java | 47 ----- xml/XMLTools.java | 432 ---------------------------------------------- 2 files changed, 479 deletions(-) delete mode 100644 xml/XMLIO.java delete mode 100644 xml/XMLTools.java diff --git a/xml/XMLIO.java b/xml/XMLIO.java deleted file mode 100644 index 9599869..0000000 --- a/xml/XMLIO.java +++ /dev/null @@ -1,47 +0,0 @@ -package tools.xml; - -import org.w3c.dom.Document; -import org.xml.sax.SAXException; - -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.transform.TransformerException; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.stream.StreamResult; -import javax.xml.transform.dom.DOMSource; -import java.io.*; - -/** - * Created by IntelliJ IDEA. - * User: Igor - * Date: 18.12.2005 - * Time: 15:27:36 - * To change this template use File | Settings | File Templates. - */ -public class XMLIO -{ - public static Document newDocument() throws ParserConfigurationException - { - return DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument(); - } - - public static Document load(InputStream is) throws ParserConfigurationException, IOException, SAXException - { - return DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(is); - } - - public static Document load(String filename) throws ParserConfigurationException, IOException, SAXException - { - return DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File(filename)); - } - - public static void save(String filename, Document document) throws TransformerException, FileNotFoundException - { - save(new FileOutputStream(filename), document); - } - - public static void save(OutputStream out, Document document) throws TransformerException - { - TransformerFactory.newInstance().newTransformer().transform(new DOMSource(document), new StreamResult(out)); - } -} diff --git a/xml/XMLTools.java b/xml/XMLTools.java deleted file mode 100644 index 566c2b9..0000000 --- a/xml/XMLTools.java +++ /dev/null @@ -1,432 +0,0 @@ -package tools.xml; - -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.xpath.XPath; -import javax.xml.xpath.XPathExpression; - -import org.w3c.dom.CharacterData; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NamedNodeMap; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; -import org.w3c.dom.ls.DOMImplementationLS; -import org.w3c.dom.ls.LSSerializer; -import org.xml.sax.SAXException; - -import javax.xml.xpath.XPath; -import javax.xml.xpath.XPathConstants; -import javax.xml.xpath.XPathExpression; -import javax.xml.xpath.XPathExpressionException; -import javax.xml.xpath.XPathFactory; -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; - -/** - * Created by IntelliJ IDEA. - * User: Igor - * Date: 18.12.2005 - * Time: 15:26:59 - * To change this template use File | Settings | File Templates. - */ -public class XMLTools -{ - /** - * Вернуть значение первой попавшийся CDATA - * @return строка - */ - public static String getCDATAValue(Node node) - { - if(node==null) return ""; - NodeList items = node.getChildNodes(); - for (int i=0;i - * <element><childName/></element> - * @param parent - * @param childName - * @return Дочерный элемент либо null, если элементов с таким именем нет - */ - public static Element getChild(Element parent, String childName){ - NodeList nl = parent.getChildNodes(); - for (int i = 0; i node элементом (instanceOf {@link Element}) - * и имеет ли имя "tagname" - * @param node - * @param tagname - * @return - */ - public static boolean isElement(Node node, String tagname){ - return node instanceof Element && node.getNodeName().equals(tagname); - } - -<<<<<<<< HEAD:xmltools/XMLTools.java -======== - //вернуть первый попавшийся узел среди дочерних - public static Node getFirstNodeOnName(Node node,String nodename) - { - Node[] mas=new Node[50]; //depth - int pos=0; - mas[pos] = node.getFirstChild(); - while (mas[pos] != null) - { - if(mas[pos].getNodeName().equals(nodename)) - { - return mas[pos]; - } - if(mas[pos].getFirstChild()!=null) - { - pos++; - mas[pos]=mas[pos-1].getFirstChild(); - }else - { - //если не идёт дальше пытаемся подняться в верх по дереву - while (true) - { - mas[pos] = mas[pos].getNextSibling(); - if (mas[pos]==null) - { - if(pos>0){ pos--; }else{ break; } - }else - { - break; - } - } - } - } - return null; - } - - /** - * Return first from childs in first deep level on name - * @param node Find in - * @param nodename Name node - * @return node - */ - public static Node getNodeOnName(Node node,String nodename) - { - if(node==null) return null; - Node nextNode = node.getFirstChild(); - while(nextNode != null) - { - if(nextNode.getNodeName().equals(nodename)) return nextNode; - nextNode=nextNode.getNextSibling(); - } - return null; - } - - //Сериализовать узел в строку - public static String getOuterXML(Node node) - { - DOMImplementationLS domImplementation = (DOMImplementationLS) node.getOwnerDocument().getImplementation(); - LSSerializer lsSerializer = domImplementation.createLSSerializer(); - if (!(node instanceof Document)) - { - lsSerializer.getDomConfig().setParameter("xml-declaration", false); - } - return lsSerializer.writeToString(node); - } - ->>>>>>>> bd22e57cbce7dba632e6c46bb0e627e3b0f388f7:xml/XMLTools.java - /** Найти узел по атрибуту - */ - public static Node findNodeOnAttribute(Node node, String nodename, String attribute, String val) - { - if(node==null) return null; - NodeList items = node.getChildNodes(); - for (int i=0;i0){ pos--; }else{ break; } - }else - { - break; - } - } - } - } - return null; - } - - /** - * Return first from childs in first deep level on name - * @param node Find in - * @param nodename Name node - * @return node - */ - public static Node getNodeOnName(Node node,String nodename) - { - if(node==null) return null; - Node nextNode = node.getFirstChild(); - while(nextNode != null) - { - if(nextNode.getNodeName().equals(nodename)) return nextNode; - nextNode=nextNode.getNextSibling(); -======== - public static Node findFirstNodeOnAttribute(Node node, String nodename,String attribute,String val) - { - Node result=null; - if(node==null) return result; - javax.xml.xpath.XPathFactory xPathfactory = javax.xml.xpath.XPathFactory.newInstance(); - XPath xpath = xPathfactory.newXPath(); - XPathExpression expr=null; - Object exprResult=null; - try { - expr = xpath.compile("//*/"+nodename+"[@"+attribute+"='" + val + "']"); - exprResult = expr.evaluate(node, XPathConstants.NODESET); - } catch (XPathExpressionException ex) { - ->>>>>>>> bd22e57cbce7dba632e6c46bb0e627e3b0f388f7:xml/XMLTools.java - } - return null; - } - - //Сериализовать узел в строку - public static String getOuterXML(Node node) - { - DOMImplementationLS domImplementation = (DOMImplementationLS) node.getOwnerDocument().getImplementation(); - LSSerializer lsSerializer = domImplementation.createLSSerializer(); - if (!(node instanceof Document)) - { - lsSerializer.getDomConfig().setParameter("xml-declaration", false); - } - return lsSerializer.writeToString(node); - } - - /** - * Поиск среди текущего и дочерних узлов - * @param {Node} node Корневой узел - * @param {String} nodename Имя первого попавшегося узла - * @returns {undefined} - */ - public static Node findFirstNode(Node node, String nodename) - { - Node result=null; - if(node==null) return result; - javax.xml.xpath.XPathFactory xPathfactory = javax.xml.xpath.XPathFactory.newInstance(); - XPath xpath = xPathfactory.newXPath(); - XPathExpression expr=null; - Object exprResult=null; - try { - expr = xpath.compile("//*/"+nodename); - exprResult = expr.evaluate(node, XPathConstants.NODESET); - } catch (XPathExpressionException ex) { - - } - NodeList nodeList = (NodeList) exprResult; - if (nodeList.getLength() > 0) - result = nodeList.item(0); - return result; - } - - /** - * Найти узел по имени - * @param node - * @param nodename - * @return - */ - public static Node findFirstNode_v2(Node node, String nodename) - { - if(node==null || nodename==null) return null; - NodeList items = node.getChildNodes(); - for (int i=0;i>>>>>>> bd22e57cbce7dba632e6c46bb0e627e3b0f388f7:xml/XMLTools.java - /** Найти узел по атрибуту - */ - public static Node findNodeOnAttribute(Node node, String nodename, String attribute, String val) - { - if(node==null) return null; - NodeList items = node.getChildNodes(); - for (int i=0;i 0) - result = nodeList.item(0); - return result; - } - - /** - * Присвоить дочерние узлы первого дерева второму если их нет, иначе дополнить либо заменить. (Работает через рекурсию нужно для передачи параметров между окнами) - * @param {XML} first Узел где ханятся настройки - * @param {XML} second Узел к которому применяются настройки - * @param {String} name Имя атрибута по которому будут находиться одинаковые XML узлы - * @returns {undefined} - */ - public static void applyNodeToNode(Node first, Node second,String name) - { - if(first==null || second==null || name==null) return; - - //Если есть совпадающие узлы то передаём в рекурсию если нет то просто копируем - Node fn=first.getFirstChild(); - while (fn != null) - { - Node sn=null; - if(!fn.getNodeName().equals("#text") && !fn.getNodeName().equals("#cdata-section") && !fn.getNodeName().equals("#comment")) { //потому что для этих getAttribute вызывает ошибку - sn=findNodeOnAttribute(second,fn.getNodeName(),name,fn.getAttributes().getNamedItem(name).getNodeValue()); - } - - if(sn!=null) //Если по имени атрибуту совпали узлы - { - //Переписываем значения атрибутов из первого второму, если их нет то создаём. - for(int i=0;i Date: Thu, 13 Mar 2025 11:16:16 +0500 Subject: [PATCH 3/4] + --- dbtools/DBTools.java | 12 ++--- tctable/TCField.java | 6 +-- tctable/Tools.java | 7 ++- xmltools/XMLIO.java | 2 +- xmltools/XMLTools.java | 119 +++-------------------------------------- 5 files changed, 20 insertions(+), 126 deletions(-) diff --git a/dbtools/DBTools.java b/dbtools/DBTools.java index c9800b3..bc60d7d 100644 --- a/dbtools/DBTools.java +++ b/dbtools/DBTools.java @@ -53,28 +53,28 @@ public class DBTools { //if($t=='object' && (strtoupper($v)!='NULL' && gettype($v)=='string')) $t='string'; //Если id шники uuid if (t.equals("object") || t.equals("uid")) { - if (v.equals("")) + if (v.isEmpty()) v = "NULL"; } else if (t.equals("i4") || t.equals("integer")) { - if (v.equals("")) + if (v.isEmpty()) v = "NULL"; } else if (t.equals("f8")) { - if (v.equals("")) + if (v.isEmpty()) v = "NULL"; v = Tools.replaceAll(v,",", "."); //The decimal part: point. } else if (t.equals("f4")) { - if (v.equals("")) + if (v.isEmpty()) v = "NULL"; v = Tools.replaceAll(v,",", "."); //The decimal part: point. } else if (t.equals("b")) { - if (v.equals("")) + if (v.isEmpty()) v = "NULL"; else if (v.equals("1")) v = "true"; else if (v.equals("0")) v = "false"; } else if (t.equals("string") || t.equals("text") || t.equals("dateTime") || t.equals("date")) { - if (v.equals("")) { + if (v.isEmpty()) { v = "NULL"; } else { v = Tools.replaceAll(v,"'", "''"); diff --git a/tctable/TCField.java b/tctable/TCField.java index 4b37b3d..7b55cb6 100644 --- a/tctable/TCField.java +++ b/tctable/TCField.java @@ -494,7 +494,7 @@ public class TCField }else if(type== TCField.BD_UTF8_1 || type== TCField.BD_UTF8_1_UUID || type== TCField.BD_UTF8_1_TIMESTAMP || this.type== TCField.BD_SUINT8 || this.type== TCField.BD_SINT8 || this.type== TCField.BD_SFLOAT8) { value=null; - if(val!=null && !val.equals("")) + if(val!=null && !val.isEmpty()) { byte[] b=null; try { @@ -517,7 +517,7 @@ public class TCField }else if(type== TCField.BD_UTF8_2) { value=null; - if(val!=null && !val.equals("")) + if(val!=null && !val.isEmpty()) { byte[] b=null; try { @@ -541,7 +541,7 @@ public class TCField }else if(type== TCField.BD_UTF8_4 || type== TCField.BD_UTF8_4_JSONB) { value=null; - if(val!=null && !val.equals("")) + if(val!=null && !val.isEmpty()) { byte[] b=null; try { diff --git a/tctable/Tools.java b/tctable/Tools.java index db48d39..4aa6426 100644 --- a/tctable/Tools.java +++ b/tctable/Tools.java @@ -100,8 +100,7 @@ public class Tools { try { InetAddress ipAddr = InetAddress.getByName("google.com"); //InetAddress ipAddr = InetAddress.getByName("geovizor.com"); - //You can replace it with your name - return !ipAddr.equals(""); + return ipAddr.isReachable(5000); } catch (Exception ex) { return false; } @@ -1019,10 +1018,10 @@ public class Tools { if((str.charAt(i)=='-' && (val.length()==0 || val.charAt(0)!='-')) || str.charAt(i)=='0' || str.charAt(i)=='1' || str.charAt(i)=='2' || str.charAt(i)=='3' || str.charAt(i)=='4' || str.charAt(i)=='5' || str.charAt(i)=='6' || str.charAt(i)=='7' || str.charAt(i)=='8' || str.charAt(i)=='9') val.append(str.charAt(i)); } - if(val.toString().equals("")) return 0; + if(val.toString().isEmpty()) return 0; return Integer.parseInt(val.toString()); } - if(str.equals("")) return 0; + if(str.isEmpty()) return 0; return Integer.parseInt(str); } //--------------------------------------------------------------------------- diff --git a/xmltools/XMLIO.java b/xmltools/XMLIO.java index 9599869..901b0b2 100644 --- a/xmltools/XMLIO.java +++ b/xmltools/XMLIO.java @@ -1,4 +1,4 @@ -package tools.xml; +package tools.xmltools; import org.w3c.dom.Document; import org.xml.sax.SAXException; diff --git a/xmltools/XMLTools.java b/xmltools/XMLTools.java index 566c2b9..fdd1daf 100644 --- a/xmltools/XMLTools.java +++ b/xmltools/XMLTools.java @@ -1,4 +1,4 @@ -package tools.xml; +package tools.xmltools; import javax.xml.parsers.ParserConfigurationException; import javax.xml.xpath.XPath; @@ -87,8 +87,6 @@ public class XMLTools return node instanceof Element && node.getNodeName().equals(tagname); } -<<<<<<<< HEAD:xmltools/XMLTools.java -======== //вернуть первый попавшийся узел среди дочерних public static Node getFirstNodeOnName(Node node,String nodename) { @@ -154,76 +152,6 @@ public class XMLTools return lsSerializer.writeToString(node); } ->>>>>>>> bd22e57cbce7dba632e6c46bb0e627e3b0f388f7:xml/XMLTools.java - /** Найти узел по атрибуту - */ - public static Node findNodeOnAttribute(Node node, String nodename, String attribute, String val) - { - if(node==null) return null; - NodeList items = node.getChildNodes(); - for (int i=0;i0){ pos--; }else{ break; } - }else - { - break; - } - } - } - } - return null; - } - - /** - * Return first from childs in first deep level on name - * @param node Find in - * @param nodename Name node - * @return node - */ - public static Node getNodeOnName(Node node,String nodename) - { - if(node==null) return null; - Node nextNode = node.getFirstChild(); - while(nextNode != null) - { - if(nextNode.getNodeName().equals(nodename)) return nextNode; - nextNode=nextNode.getNextSibling(); -======== public static Node findFirstNodeOnAttribute(Node node, String nodename,String attribute,String val) { Node result=null; @@ -236,23 +164,13 @@ public class XMLTools expr = xpath.compile("//*/"+nodename+"[@"+attribute+"='" + val + "']"); exprResult = expr.evaluate(node, XPathConstants.NODESET); } catch (XPathExpressionException ex) { - ->>>>>>>> bd22e57cbce7dba632e6c46bb0e627e3b0f388f7:xml/XMLTools.java - } - return null; - } - //Сериализовать узел в строку - public static String getOuterXML(Node node) - { - DOMImplementationLS domImplementation = (DOMImplementationLS) node.getOwnerDocument().getImplementation(); - LSSerializer lsSerializer = domImplementation.createLSSerializer(); - if (!(node instanceof Document)) - { - lsSerializer.getDomConfig().setParameter("xml-declaration", false); - } - return lsSerializer.writeToString(node); - } + } + NodeList nodeList = (NodeList) exprResult; + if (nodeList.getLength() > 0) + result = nodeList.item(0); + return result; + } /** * Поиск среди текущего и дочерних узлов @@ -300,10 +218,7 @@ public class XMLTools } return null; } -<<<<<<<< HEAD:xmltools/XMLTools.java -======== ->>>>>>>> bd22e57cbce7dba632e6c46bb0e627e3b0f388f7:xml/XMLTools.java /** Найти узел по атрибуту */ public static Node findNodeOnAttribute(Node node, String nodename, String attribute, String val) @@ -322,26 +237,6 @@ public class XMLTools return null; } - public static Node findFirstNodeOnAttribute(Node node, String nodename,String attribute,String val) - { - Node result=null; - if(node==null) return result; - javax.xml.xpath.XPathFactory xPathfactory = javax.xml.xpath.XPathFactory.newInstance(); - XPath xpath = xPathfactory.newXPath(); - XPathExpression expr=null; - Object exprResult=null; - try { - expr = xpath.compile("//*/"+nodename+"[@"+attribute+"='" + val + "']"); - exprResult = expr.evaluate(node, XPathConstants.NODESET); - } catch (XPathExpressionException ex) { - - } - NodeList nodeList = (NodeList) exprResult; - if (nodeList.getLength() > 0) - result = nodeList.item(0); - return result; - } - /** * Присвоить дочерние узлы первого дерева второму если их нет, иначе дополнить либо заменить. (Работает через рекурсию нужно для передачи параметров между окнами) * @param {XML} first Узел где ханятся настройки From 98ef9a32dce46a1d197653df92bddffda0d4dd00 Mon Sep 17 00:00:00 2001 From: Igor I Date: Thu, 3 Jul 2025 12:13:25 +0500 Subject: [PATCH 4/4] Add function createJSONError --- tctable/Tools.java | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/tctable/Tools.java b/tctable/Tools.java index db48d39..b2fc07a 100644 --- a/tctable/Tools.java +++ b/tctable/Tools.java @@ -2,6 +2,11 @@ package tctable; //import android.util.Log; +//import org.ccalm.dbms.AcceptJSON; +import org.json.JSONException; +import org.json.JSONObject; + + import java.io.ByteArrayOutputStream; import java.io.DataInputStream; @@ -12,14 +17,32 @@ import java.net.InetAddress; import java.nio.ByteBuffer; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; +import java.util.Arrays; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.io.UnsupportedEncodingException; import java.util.Calendar; import java.util.TimeZone; +import logging.Logger; + public class Tools { + private static final Logger logger = Logger.getLogger(Tools.class); + + public static JSONObject createJSONError(int code, String message, String setting, String marker) { + JSONObject json = new JSONObject(); + try { + json.put("error_code", code); + json.put("error_message", Arrays.asList(message)); + json.put("error_setting", Arrays.asList(setting)); + json.put("error_marker", marker); + } catch (JSONException e) { + logger.error(e.getMessage()); + } + return json; + } + public static String readStringFromInputStream(InputStream inputStream) { ByteArrayOutputStream result = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; @@ -399,7 +422,7 @@ public class Tools { //Из руского DOC в юникод public static String fromDOStoASCII(byte[] str) { - StringBuilder rez = new StringBuilder(); + StringBuilder rez = new StringBuilder(1024); for(int i=0; i