/*\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
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