2 * This file is part of NeverNote
\r
3 * Copyright 2009 Randy Baumgarte
\r
5 * This file may be licensed under the terms of of the
\r
6 * GNU General Public License Version 2 (the ``GPL'').
\r
8 * Software distributed under the License is distributed
\r
9 * on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either
\r
10 * express or implied. See the GPL for the specific language
\r
11 * governing rights and limitations.
\r
13 * You should have received a copy of the GPL along with this
\r
14 * program. If not, go to http://www.gnu.org/licenses/gpl.html
\r
15 * or write to the Free Software Foundation, Inc.,
\r
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
\r
21 package cx.fbn.nevernote.sql.runners;
\r
23 import java.util.ArrayList;
\r
24 import java.util.List;
\r
26 import cx.fbn.nevernote.sql.driver.NSqlQuery;
\r
27 import cx.fbn.nevernote.utilities.ApplicationLogger;
\r
28 import cx.fbn.nevernote.utilities.ListManager;
\r
30 public class RInvalidXMLTable {
\r
32 private final ApplicationLogger logger;
\r
33 private final RDatabaseConnection db;
\r
37 public RInvalidXMLTable(ApplicationLogger l, RDatabaseConnection d) {
\r
42 public void createTable() {
\r
43 NSqlQuery query = new NSqlQuery(db.getConnection());
\r
44 // query.exec("drop table InvalidXML");
\r
45 logger.log(logger.HIGH, "Creating table InvalidXML...");
\r
46 if (!query.exec("Create table InvalidXML (type varchar, element varchar, attribute varchar,primary key(type, element,attribute) );"))
\r
47 logger.log(logger.HIGH, "Table InvalidXML creation FAILED!!!");
\r
50 query.exec("Insert into InvalidXML (type, element, attribute) values ('ELEMENT', 'button', '');");
\r
51 query.exec("Insert into InvalidXML (type, element, attribute) values ('ELEMENT', 'embed', '');");
\r
52 query.exec("Insert into InvalidXML (type, element, attribute) values ('ELEMENT', 'fieldset', '');");
\r
53 query.exec("Insert into InvalidXML (type, element, attribute) values ('ELEMENT', 'form', '');");
\r
54 query.exec("Insert into InvalidXML (type, element, attribute) values ('ELEMENT', 'input', '');");
\r
55 query.exec("Insert into InvalidXML (type, element, attribute) values ('ELEMENT', 'label', '');");
\r
56 query.exec("Insert into InvalidXML (type, element, attribute) values ('ELEMENT', 'legend', '');");
\r
57 query.exec("Insert into InvalidXML (type, element, attribute) values ('ELEMENT', 'o:p', '')");
\r
58 query.exec("Insert into InvalidXML (type, element, attribute) values ('ELEMENT', 'option', '')");
\r
59 query.exec("Insert into InvalidXML (type, element, attribute) values ('ELEMENT', 'script', '')");
\r
60 query.exec("Insert into InvalidXML (type, element, attribute) values ('ELEMENT', 'select', '')");
\r
61 query.exec("Insert into InvalidXML (type, element, attribute) values ('ELEMENT', 'wbr', '')");
\r
63 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'a', 'class')");
\r
64 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'a', 'done')");
\r
65 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'a', 'id')");
\r
66 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'a', 'onclick')");
\r
67 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'a', 'onmousedown')");
\r
68 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'div', 'id')");
\r
69 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'dl', 'class')");
\r
70 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'dl', 'id')");
\r
71 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'dt', 'class')");
\r
72 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'h1', 'class')");
\r
73 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'h2', 'class')");
\r
74 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'h3', 'class')");
\r
75 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'h4', 'class')");
\r
76 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'h5', 'class')");
\r
77 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'img', 'gptag')");
\r
78 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'li', 'class')");
\r
79 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'ol', 'class')");
\r
80 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'ol', 'id')");
\r
81 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'p', 'class')");
\r
82 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'p', 'id')");
\r
83 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'p', 'span')");
\r
84 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'accesskey')");
\r
85 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'action')");
\r
86 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'alt')");
\r
87 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'bgcolor')");
\r
88 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'checked')");
\r
89 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'class')");
\r
90 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'flashvars')");
\r
91 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'for')");
\r
92 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'height')");
\r
93 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'id')");
\r
94 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'maxlength')");
\r
95 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'method')");
\r
96 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'name')");
\r
97 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'onblur')");
\r
98 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'onchange')");
\r
99 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'aclick')");
\r
100 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'onsubmit')");
\r
101 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'quality')");
\r
102 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'selected')");
\r
103 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'src')");
\r
104 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'target')");
\r
105 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'type')");
\r
106 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'value')");
\r
107 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'width')");
\r
108 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'span', 'wmode')");
\r
109 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'table', 'class')");
\r
110 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'td', 'class')");
\r
111 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'tr', 'class')");
\r
112 query.exec("Insert into InvalidXML (type, element, attribute) values ('ATTRIBUTE', 'ul', 'class')");
\r
116 public void dropTable() {
\r
117 NSqlQuery query = new NSqlQuery(db.getConnection());
\r
118 query.exec("Drop table InvalidXML");
\r
120 // Add an item to the table
\r
121 public void addAttribute(String element, String attribute) {
\r
122 if (attributeExists(element,attribute))
\r
124 NSqlQuery query = new NSqlQuery(db.getConnection());
\r
125 query.prepare("Insert Into InvalidXML (type, element, attribute) Values('ATTRIBUTE', :element, :attribute)");
\r
126 query.bindValue(":element", element);
\r
127 query.bindValue(":attribute", attribute);
\r
128 if (!query.exec()) {
\r
129 logger.log(logger.MEDIUM, "Insert Attribute into invalidXML failed.");
\r
130 logger.log(logger.MEDIUM, query.lastError());
\r
133 // Add an item to the table
\r
134 public void addElement(String element) {
\r
135 if (elementExists(element))
\r
137 NSqlQuery query = new NSqlQuery(db.getConnection());
\r
138 query.prepare("Insert Into InvalidXML (type, element) Values('ELEMENT', :element)");
\r
139 query.bindValue(":element", element);
\r
140 if (!query.exec()) {
\r
141 logger.log(logger.MEDIUM, "Insert Element into invalidXML failed.");
\r
142 logger.log(logger.MEDIUM, query.lastError());
\r
145 // get invalid elements
\r
146 public List<String> getInvalidElements() {
\r
147 NSqlQuery query = new NSqlQuery(db.getConnection());
\r
148 if (!query.exec("Select element from InvalidXML where type = 'ELEMENT'")) {
\r
149 logger.log(logger.MEDIUM, "getInvalidElement from invalidXML failed.");
\r
150 logger.log(logger.MEDIUM, query.lastError());
\r
153 List<String> elements = new ArrayList<String>();
\r
154 while (query.next()) {
\r
155 elements.add(query.valueString(0));
\r
160 // get invalid elements
\r
161 public List<String> getInvalidAttributeElements() {
\r
162 NSqlQuery query = new NSqlQuery(db.getConnection());
\r
163 if (!query.exec("Select distinct element from InvalidXML where type = 'ATTRIBUTE'")) {
\r
164 logger.log(logger.MEDIUM, "getInvalidElement from invalidXML failed.");
\r
165 logger.log(logger.MEDIUM, query.lastError());
\r
168 List<String> elements = new ArrayList<String>();
\r
169 while (query.next()) {
\r
170 elements.add(query.valueString(0));
\r
174 // get invalid attributes for a given element
\r
175 public ArrayList<String> getInvalidAttributes(String element) {
\r
176 NSqlQuery query = new NSqlQuery(db.getConnection());
\r
177 query.prepare("Select attribute from InvalidXML where type = 'ATTRIBUTE' and element = :element");
\r
178 query.bindValue(":element", element);
\r
179 if (!query.exec()) {
\r
180 logger.log(logger.MEDIUM, "getInvalidElement from invalidXML failed.");
\r
181 logger.log(logger.MEDIUM, query.lastError());
\r
184 ArrayList<String> elements = new ArrayList<String>();
\r
185 while (query.next()) {
\r
186 elements.add(query.valueString(0));
\r
191 // Determine if an element already is in the table
\r
192 public boolean elementExists(String element) {
\r
193 NSqlQuery query = new NSqlQuery(db.getConnection());
\r
194 query.prepare("Select element from InvalidXML where type='ELEMENT' and element=:element");
\r
195 query.bindValue(":element", element);
\r
196 if (!query.exec()) {
\r
197 logger.log(logger.MEDIUM, "elementExists in invalidXML failed.");
\r
198 logger.log(logger.MEDIUM, query.lastError());
\r
206 // Determine if an element already is in the table
\r
207 public boolean attributeExists(String element, String attribute) {
\r
208 NSqlQuery query = new NSqlQuery(db.getConnection());
\r
209 query.prepare("Select element from InvalidXML where type='ATTRIBUTE' and element=:element and attribute=:attribute");
\r
210 query.bindValue(":element", element);
\r
211 query.bindValue(":attribute", attribute);
\r
212 if (!query.exec()) {
\r
213 logger.log(logger.MEDIUM, "attributeExists in invalidXML failed.");
\r
214 logger.log(logger.MEDIUM, query.lastError());
\r