OSDN Git Service

Add logic to display stacks in notebook tree
[neighbornote/NeighborNote.git] / src / cx / fbn / nevernote / sql / InvalidXMLTable.java
1 /*\r
2  * This file is part of NeverNote \r
3  * Copyright 2009 Randy Baumgarte\r
4  * \r
5  * This file may be licensed under the terms of of the\r
6  * GNU General Public License Version 2 (the ``GPL'').\r
7  *\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
12  *\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
17  *\r
18 */\r
19 \r
20 \r
21 package cx.fbn.nevernote.sql;\r
22 \r
23 import java.util.ArrayList;\r
24 import java.util.List;\r
25 \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
29 \r
30 public class InvalidXMLTable {\r
31         ListManager parent;\r
32         private final ApplicationLogger                 logger;\r
33         private final DatabaseConnection                db;\r
34 \r
35         \r
36         // Constructor\r
37         public InvalidXMLTable(ApplicationLogger l, DatabaseConnection d) {\r
38                 logger = l;\r
39                 db = d;\r
40         }\r
41         // Create the table\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
48 //        query.clear();\r
49         \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
62         \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
113 \r
114         }\r
115         // Drop the table\r
116         public void dropTable() {\r
117                 NSqlQuery query = new NSqlQuery(db.getConnection());\r
118                 query.exec("Drop table InvalidXML");\r
119         }\r
120         // Add an item to the table\r
121         public void addAttribute(String element, String attribute) {\r
122                 if (attributeExists(element,attribute))\r
123                         return;\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
131                 }\r
132         }\r
133         // Add an item to the table\r
134         public void addElement(String element) {\r
135                 if (elementExists(element))\r
136                         return;\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
143                 }\r
144         }\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
151                         return null;\r
152                 }\r
153                 List<String> elements = new ArrayList<String>();\r
154                 while (query.next()) {\r
155                         elements.add(query.valueString(0));\r
156                 }\r
157                 return elements;\r
158         }\r
159         \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
166                         return null;\r
167                 }\r
168                 List<String> elements = new ArrayList<String>();\r
169                 while (query.next()) {\r
170                         elements.add(query.valueString(0));\r
171                 }\r
172                 return elements;\r
173         }\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
182                         return null;\r
183                 }\r
184                 ArrayList<String> elements = new ArrayList<String>();\r
185                 while (query.next()) {\r
186                         elements.add(query.valueString(0));\r
187                 }\r
188                 return elements;\r
189         }\r
190 \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
199                 }\r
200                 if (query.next())\r
201                         return true;\r
202                 else\r
203                         return false;\r
204         }\r
205         \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
215                 }\r
216                 if (query.next())\r
217                         return true;\r
218                 else\r
219                         return false;\r
220         }\r
221 }\r