OSDN Git Service

Correct wildcard selection bug where serching searches starting with * would not...
[neighbornote/NeighborNote.git] / src / cx / fbn / nevernote / sql / InvalidXMLTable.java
index 9d504e8..7663d46 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
- * This file is part of NeverNote \r
+ * This file is part of NixNote \r
  * Copyright 2009 Randy Baumgarte\r
  * \r
  * This file may be licensed under the terms of of the\r
@@ -23,81 +23,199 @@ package cx.fbn.nevernote.sql;
 import java.util.ArrayList;\r
 import java.util.List;\r
 \r
-import cx.fbn.nevernote.Global;\r
-import cx.fbn.nevernote.sql.requests.InvalidXMLRequest;\r
+import cx.fbn.nevernote.sql.driver.NSqlQuery;\r
+import cx.fbn.nevernote.utilities.ApplicationLogger;\r
 import cx.fbn.nevernote.utilities.ListManager;\r
 \r
 public class InvalidXMLTable {\r
        ListManager parent;\r
-       int id;\r
+       private final ApplicationLogger                 logger;\r
+       private final DatabaseConnection                db;\r
+\r
        \r
        // Constructor\r
-       public InvalidXMLTable(int i) {\r
-               id = i;\r
+       public InvalidXMLTable(ApplicationLogger l, DatabaseConnection d) {\r
+               logger = l;\r
+               db = d;\r
        }\r
        // Create the table\r
        public void createTable() {\r
-               InvalidXMLRequest request = new InvalidXMLRequest();\r
-               request.requestor_id = id;\r
-               request.type = InvalidXMLRequest.Create_Table;\r
-               Global.dbRunner.addWork(request);\r
+               NSqlQuery query = new NSqlQuery(db.getConnection());\r
+//             query.exec("drop table InvalidXML");\r
+               logger.log(logger.HIGH, "Creating table InvalidXML...");\r
+        if (!query.exec("Create table InvalidXML (type varchar, element varchar, attribute varchar,primary key(type, element,attribute) );"))\r
+               logger.log(logger.HIGH, "Table InvalidXML creation FAILED!!!"); \r
+//        query.clear();\r
+        \r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ELEMENT', 'button', '');");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ELEMENT', 'embed', '');");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ELEMENT', 'fieldset', '');");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ELEMENT', 'form', '');");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ELEMENT', 'input', '');");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ELEMENT', 'label', '');");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ELEMENT', 'legend', '');");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ELEMENT', 'o:p', '')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ELEMENT', 'option', '')");        \r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ELEMENT', 'script', '')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ELEMENT', 'select', '')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ELEMENT', 'wbr', '')");\r
+        \r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'a', 'class')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'a', 'done')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'a', 'id')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'a', 'onclick')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'a', 'onmousedown')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'div', 'id')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'dl', 'class')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'dl', 'id')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'dt', 'class')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'h1', 'class')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'h2', 'class')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'h3', 'class')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'h4', 'class')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'h5', 'class')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'img', 'gptag')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'li', 'class')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'ol', 'class')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'ol', 'id')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'p', 'class')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'p', 'id')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'p', 'span')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'accesskey')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'action')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'alt')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'bgcolor')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'checked')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'class')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'flashvars')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'for')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'height')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'id')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'maxlength')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'method')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'name')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'onblur')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'onchange')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'aclick')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'onsubmit')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'quality')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'selected')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'src')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'target')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'type')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'value')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'width')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'wmode')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'table', 'class')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'td', 'class')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'tr', 'class')");\r
+        query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'ul', 'class')");\r
+\r
        }\r
        // Drop the table\r
        public void dropTable() {\r
-               InvalidXMLRequest request = new InvalidXMLRequest();\r
-               request.requestor_id = id;\r
-               request.type = InvalidXMLRequest.Drop_Table;\r
-               Global.dbRunner.addWork(request);\r
+               NSqlQuery query = new NSqlQuery(db.getConnection());\r
+               query.exec("Drop table InvalidXML");\r
        }\r
-       // Add an invalid XML element to the table\r
-       public void addInvalidElement(String element) {\r
-               InvalidXMLRequest request = new InvalidXMLRequest();\r
-               request.requestor_id = id;\r
-               request.string1 = element;\r
-               request.type = InvalidXMLRequest.Add_Invalid_Element;\r
-               Global.dbRunner.addWork(request);\r
+       // Add an item to the table\r
+       public void addAttribute(String element, String attribute) {\r
+               if (attributeExists(element,attribute))\r
+                       return;\r
+        NSqlQuery query = new NSqlQuery(db.getConnection());\r
+               query.prepare("Insert Into InvalidXML (type, element, attribute) Values('ATTRIBUTE', :element, :attribute)");\r
+               query.bindValue(":element", element);\r
+               query.bindValue(":attribute", attribute);\r
+               if (!query.exec()) {\r
+                       logger.log(logger.MEDIUM, "Insert Attribute into invalidXML failed.");\r
+                       logger.log(logger.MEDIUM, query.lastError());\r
+               }\r
        }\r
-       // Add an invalid XML attribute to the table\r
-       public void addInvalidAttribute(String element, String attribute) {\r
-               InvalidXMLRequest request = new InvalidXMLRequest();\r
-               request.requestor_id = id;\r
-               request.string1 = element;\r
-               request.string2 = attribute;\r
-               request.type = InvalidXMLRequest.Add_Invalid_Attribute;\r
-               Global.dbRunner.addWork(request);\r
+       // Add an item to the table\r
+       public void addElement(String element) {\r
+               if (elementExists(element))\r
+                       return;\r
+        NSqlQuery query = new NSqlQuery(db.getConnection());\r
+               query.prepare("Insert Into InvalidXML (type, element) Values('ELEMENT', :element)");\r
+               query.bindValue(":element", element);\r
+               if (!query.exec()) {\r
+                       logger.log(logger.MEDIUM, "Insert Element into invalidXML failed.");\r
+                       logger.log(logger.MEDIUM, query.lastError());\r
+               }\r
        }\r
-       // Get invalid attributes for a given element\r
+       // get invalid elements\r
+       public List<String> getInvalidElements() {\r
+        NSqlQuery query = new NSqlQuery(db.getConnection());\r
+               if (!query.exec("Select element from InvalidXML where type = 'ELEMENT'")) {\r
+                       logger.log(logger.MEDIUM, "getInvalidElement from invalidXML failed.");\r
+                       logger.log(logger.MEDIUM, query.lastError());\r
+                       return null;\r
+               }\r
+               List<String> elements = new ArrayList<String>();\r
+               while (query.next()) {\r
+                       elements.add(query.valueString(0));\r
+               }\r
+               return elements;\r
+       }\r
+       \r
+       // get invalid elements\r
        public List<String> getInvalidAttributeElements() {\r
-               InvalidXMLRequest request = new InvalidXMLRequest();\r
-               request.requestor_id = id;\r
-               request.type = InvalidXMLRequest.Get_Invalid_Attribute_Elements;\r
-               Global.dbRunner.addWork(request);\r
-               Global.dbClientWait(id);\r
-               InvalidXMLRequest req = Global.dbRunner.invalidXMLResponse.get(id).copy();\r
-               return req.responseList;\r
+        NSqlQuery query = new NSqlQuery(db.getConnection());\r
+               if (!query.exec("Select distinct element from InvalidXML where type = 'ATTRIBUTE'")) {\r
+                       logger.log(logger.MEDIUM, "getInvalidElement from invalidXML failed.");\r
+                       logger.log(logger.MEDIUM, query.lastError());\r
+                       return null;\r
+               }\r
+               List<String> elements = new ArrayList<String>();\r
+               while (query.next()) {\r
+                       elements.add(query.valueString(0));\r
+               }\r
+               return elements;\r
        }\r
-       // Get the list of elements which we have invalid attributes for\r
+       // get invalid attributes for a given element\r
        public ArrayList<String> getInvalidAttributes(String element) {\r
-               InvalidXMLRequest request = new InvalidXMLRequest();\r
-               request.requestor_id = id;\r
-               request.string1 = element;\r
-               request.type = InvalidXMLRequest.Get_Invalid_Attributes;\r
-               Global.dbRunner.addWork(request);\r
-               Global.dbClientWait(id);\r
-               InvalidXMLRequest req = Global.dbRunner.invalidXMLResponse.get(id).copy();\r
-               return req.responseArrayList;\r
+        NSqlQuery query = new NSqlQuery(db.getConnection());\r
+               query.prepare("Select attribute from InvalidXML where type = 'ATTRIBUTE' and element = :element");\r
+               query.bindValue(":element", element);\r
+               if (!query.exec()) {\r
+                       logger.log(logger.MEDIUM, "getInvalidElement from invalidXML failed.");\r
+                       logger.log(logger.MEDIUM, query.lastError());\r
+                       return null;\r
+               }\r
+               ArrayList<String> elements = new ArrayList<String>();\r
+               while (query.next()) {\r
+                       elements.add(query.valueString(0));\r
+               }\r
+               return elements;\r
        }\r
-       // Add an invalid XML attribute to the table\r
-       public List<String> getInvalidElements() {\r
-               InvalidXMLRequest request = new InvalidXMLRequest();\r
-               request.requestor_id = id;\r
-               request.type = InvalidXMLRequest.Get_Invalid_Elements;\r
-               Global.dbRunner.addWork(request);\r
-               Global.dbClientWait(id);\r
-               InvalidXMLRequest req = Global.dbRunner.invalidXMLResponse.get(id).copy();\r
-               return req.responseList;\r
+\r
+       // Determine if an element already is in the table\r
+       public boolean elementExists(String element) {\r
+        NSqlQuery query = new NSqlQuery(db.getConnection());\r
+               query.prepare("Select element from InvalidXML where type='ELEMENT' and element=:element");\r
+               query.bindValue(":element", element);\r
+               if (!query.exec()) {\r
+                       logger.log(logger.MEDIUM, "elementExists in invalidXML failed.");\r
+                       logger.log(logger.MEDIUM, query.lastError());\r
+               }\r
+               if (query.next())\r
+                       return true;\r
+               else\r
+                       return false;\r
        }\r
        \r
-       \r
-\r
+       // Determine if an element already is in the table\r
+       public boolean attributeExists(String element, String attribute) {\r
+        NSqlQuery query = new NSqlQuery(db.getConnection());\r
+               query.prepare("Select element from InvalidXML where type='ATTRIBUTE' and element=:element and attribute=:attribute");\r
+               query.bindValue(":element", element);\r
+               query.bindValue(":attribute", attribute);\r
+               if (!query.exec()) {\r
+                       logger.log(logger.MEDIUM, "attributeExists in invalidXML failed.");\r
+                       logger.log(logger.MEDIUM, query.lastError());\r
+               }\r
+               if (query.next())\r
+                       return true;\r
+               else\r
+                       return false;\r
+       }\r
 }\r