2011-01-07 Adam Barth <abarth@webkit.org>
[WebKit-https.git] / WebCore / bindings / gobject / WebKitHTMLElementWrapperFactory.cpp
1 /*
2  * Copyright (C) 2005 Apple Computer, Inc.  All rights reserved.
3  * Copyright (C) 2008 Luke Kenneth Casson Leighton <lkcl@lkcl.net>
4  * Copyright (C) 2008 Martin Soto <soto@freedesktop.org>
5  * Copyright (C) 2010 Igalia S.L.
6  *
7  * This file is derived by hand from an automatically generated file.
8  * Keeping it up-to-date could potentially be done by adding
9  * a make_names.pl generator, or by writing a separate
10  * generater which takes JSHTMLElementWrapperFactory.h as input.
11  *
12  * Redistribution and use in source and binary forms, with or without
13  * modification, are permitted provided that the following conditions
14  * are met:
15  * 1. Redistributions of source code must retain the above copyright
16  *    notice, this list of conditions and the following disclaimer.
17  * 2. Redistributions in binary form must reproduce the above copyright
18  *    notice, this list of conditions and the following disclaimer in the
19  *    documentation and/or other materials provided with the distribution.
20  *
21  * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
22  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
25  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
26  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
27  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
28  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
29  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32  */
33
34 #include "config.h"
35 #include "WebKitHTMLElementWrapperFactory.h"
36
37 #include "HTMLAnchorElement.h"
38 #include "HTMLAppletElement.h"
39 #include "HTMLAreaElement.h"
40 #include "HTMLAudioElement.h"
41 #include "HTMLBRElement.h"
42 #include "HTMLBaseElement.h"
43 #include "HTMLBaseFontElement.h"
44 #include "HTMLBlockquoteElement.h"
45 #include "HTMLBodyElement.h"
46 #include "HTMLButtonElement.h"
47 #include "HTMLCanvasElement.h"
48 #include "HTMLDListElement.h"
49 #include "HTMLDirectoryElement.h"
50 #include "HTMLDivElement.h"
51 #include "HTMLEmbedElement.h"
52 #include "HTMLFieldSetElement.h"
53 #include "HTMLFontElement.h"
54 #include "HTMLFormElement.h"
55 #include "HTMLFrameElement.h"
56 #include "HTMLFrameSetElement.h"
57 #include "HTMLHRElement.h"
58 #include "HTMLHeadElement.h"
59 #include "HTMLHeadingElement.h"
60 #include "HTMLHtmlElement.h"
61 #include "HTMLIFrameElement.h"
62 #include "HTMLImageElement.h"
63 #include "HTMLInputElement.h"
64 #include "HTMLIsIndexElement.h"
65 #include "HTMLLIElement.h"
66 #include "HTMLLabelElement.h"
67 #include "HTMLLegendElement.h"
68 #include "HTMLLinkElement.h"
69 #include "HTMLMapElement.h"
70 #include "HTMLMarqueeElement.h"
71 #include "HTMLMenuElement.h"
72 #include "HTMLMetaElement.h"
73 #include "HTMLModElement.h"
74 #include "HTMLNames.h"
75 #include "HTMLOListElement.h"
76 #include "HTMLObjectElement.h"
77 #include "HTMLOptGroupElement.h"
78 #include "HTMLOptionElement.h"
79 #include "HTMLParagraphElement.h"
80 #include "HTMLParamElement.h"
81 #include "HTMLPreElement.h"
82 #include "HTMLQuoteElement.h"
83 #include "HTMLScriptElement.h"
84 #include "HTMLSelectElement.h"
85 #include "HTMLStyleElement.h"
86 #include "HTMLTableCaptionElement.h"
87 #include "HTMLTableCellElement.h"
88 #include "HTMLTableColElement.h"
89 #include "HTMLTableElement.h"
90 #include "HTMLTableRowElement.h"
91 #include "HTMLTableSectionElement.h"
92 #include "HTMLTextAreaElement.h"
93 #include "HTMLTitleElement.h"
94 #include "HTMLUListElement.h"
95
96 #include "webkit/WebKitDOMHTMLAnchorElementPrivate.h"
97 #include "webkit/WebKitDOMHTMLAppletElementPrivate.h"
98 #include "webkit/WebKitDOMHTMLAreaElementPrivate.h"
99 #include "webkit/WebKitDOMHTMLBRElementPrivate.h"
100 #include "webkit/WebKitDOMHTMLBaseElementPrivate.h"
101 #include "webkit/WebKitDOMHTMLBaseFontElementPrivate.h"
102 #include "webkit/WebKitDOMHTMLBlockquoteElementPrivate.h"
103 #include "webkit/WebKitDOMHTMLBodyElementPrivate.h"
104 #include "webkit/WebKitDOMHTMLButtonElementPrivate.h"
105 #include "webkit/WebKitDOMHTMLCanvasElementPrivate.h"
106 #include "webkit/WebKitDOMHTMLDListElementPrivate.h"
107 #include "webkit/WebKitDOMHTMLDirectoryElementPrivate.h"
108 #include "webkit/WebKitDOMHTMLDivElementPrivate.h"
109 #include "webkit/WebKitDOMHTMLElementPrivate.h"
110 #include "webkit/WebKitDOMHTMLEmbedElementPrivate.h"
111 #include "webkit/WebKitDOMHTMLFieldSetElementPrivate.h"
112 #include "webkit/WebKitDOMHTMLFontElementPrivate.h"
113 #include "webkit/WebKitDOMHTMLFormElementPrivate.h"
114 #include "webkit/WebKitDOMHTMLFrameElementPrivate.h"
115 #include "webkit/WebKitDOMHTMLFrameSetElementPrivate.h"
116 #include "webkit/WebKitDOMHTMLHRElementPrivate.h"
117 #include "webkit/WebKitDOMHTMLHeadElementPrivate.h"
118 #include "webkit/WebKitDOMHTMLHeadingElementPrivate.h"
119 #include "webkit/WebKitDOMHTMLHtmlElementPrivate.h"
120 #include "webkit/WebKitDOMHTMLIFrameElementPrivate.h"
121 #include "webkit/WebKitDOMHTMLImageElementPrivate.h"
122 #include "webkit/WebKitDOMHTMLInputElementPrivate.h"
123 #include "webkit/WebKitDOMHTMLIsIndexElementPrivate.h"
124 #include "webkit/WebKitDOMHTMLLIElementPrivate.h"
125 #include "webkit/WebKitDOMHTMLLabelElementPrivate.h"
126 #include "webkit/WebKitDOMHTMLLegendElementPrivate.h"
127 #include "webkit/WebKitDOMHTMLLinkElementPrivate.h"
128 #include "webkit/WebKitDOMHTMLMapElementPrivate.h"
129 #include "webkit/WebKitDOMHTMLMarqueeElementPrivate.h"
130 #include "webkit/WebKitDOMHTMLMenuElementPrivate.h"
131 #include "webkit/WebKitDOMHTMLMetaElementPrivate.h"
132 #include "webkit/WebKitDOMHTMLModElementPrivate.h"
133 #include "webkit/WebKitDOMHTMLOListElementPrivate.h"
134 #include "webkit/WebKitDOMHTMLObjectElementPrivate.h"
135 #include "webkit/WebKitDOMHTMLOptGroupElementPrivate.h"
136 #include "webkit/WebKitDOMHTMLOptionElementPrivate.h"
137 #include "webkit/WebKitDOMHTMLParagraphElementPrivate.h"
138 #include "webkit/WebKitDOMHTMLParamElementPrivate.h"
139 #include "webkit/WebKitDOMHTMLPreElementPrivate.h"
140 #include "webkit/WebKitDOMHTMLQuoteElementPrivate.h"
141 #include "webkit/WebKitDOMHTMLScriptElementPrivate.h"
142 #include "webkit/WebKitDOMHTMLSelectElementPrivate.h"
143 #include "webkit/WebKitDOMHTMLStyleElementPrivate.h"
144 #include "webkit/WebKitDOMHTMLTableCaptionElementPrivate.h"
145 #include "webkit/WebKitDOMHTMLTableCellElementPrivate.h"
146 #include "webkit/WebKitDOMHTMLTableColElementPrivate.h"
147 #include "webkit/WebKitDOMHTMLTableElementPrivate.h"
148 #include "webkit/WebKitDOMHTMLTableRowElementPrivate.h"
149 #include "webkit/WebKitDOMHTMLTableSectionElementPrivate.h"
150 #include "webkit/WebKitDOMHTMLTextAreaElementPrivate.h"
151 #include "webkit/WebKitDOMHTMLTitleElementPrivate.h"
152 #include "webkit/WebKitDOMHTMLUListElementPrivate.h"
153 #include "webkit/webkitdom.h"
154
155 #if ENABLE(VIDEO)
156 #include "webkit/WebKitDOMHTMLAudioElementPrivate.h"
157 #endif
158
159 #include <wtf/text/CString.h>
160
161 namespace WebKit {
162
163 using namespace WebCore;
164 using namespace WebCore::HTMLNames;
165
166 typedef gpointer (*CreateHTMLElementWrapperFunction)(PassRefPtr<HTMLElement>);
167
168 static gpointer createAnchorWrapper(PassRefPtr<HTMLElement> element)
169 {
170     return wrapHTMLAnchorElement(static_cast<HTMLAnchorElement*>(element.get()));
171 }
172
173 static gpointer createAppletWrapper(PassRefPtr<HTMLElement> element)
174 {
175     return wrapHTMLAppletElement(static_cast<HTMLAppletElement*>(element.get()));
176 }
177
178 static gpointer createAreaWrapper(PassRefPtr<HTMLElement> element)
179 {
180     return wrapHTMLAreaElement(static_cast<HTMLAreaElement*>(element.get()));
181 }
182
183 #if ENABLE(VIDEO)
184 static gpointer createAudioWrapper(PassRefPtr<HTMLElement> element)
185 {
186     return wrapHTMLAudioElement(static_cast<HTMLAudioElement*>(element.get()));
187 }
188 #endif
189
190 static gpointer createBaseWrapper(PassRefPtr<HTMLElement> element)
191 {
192     return wrapHTMLBaseElement(static_cast<HTMLBaseElement*>(element.get()));
193 }
194
195 static gpointer createBaseFontWrapper(PassRefPtr<HTMLElement> element)
196 {
197     return wrapHTMLBaseFontElement(static_cast<HTMLBaseFontElement*>(element.get()));
198 }
199
200 static gpointer createBlockquoteWrapper(PassRefPtr<HTMLElement> element)
201 {
202     return wrapHTMLBlockquoteElement(static_cast<HTMLBlockquoteElement*>(element.get()));
203 }
204
205 static gpointer createBodyWrapper(PassRefPtr<HTMLElement> element)
206 {
207     return wrapHTMLBodyElement(static_cast<HTMLBodyElement*>(element.get()));
208 }
209
210 static gpointer createBRWrapper(PassRefPtr<HTMLElement> element)
211 {
212     return wrapHTMLBRElement(static_cast<HTMLBRElement*>(element.get()));
213 }
214
215 static gpointer createButtonWrapper(PassRefPtr<HTMLElement> element)
216 {
217     return wrapHTMLButtonElement(static_cast<HTMLButtonElement*>(element.get()));
218 }
219
220 static gpointer createCanvasWrapper(PassRefPtr<HTMLElement> element)
221 {
222     return wrapHTMLCanvasElement(static_cast<HTMLCanvasElement*>(element.get()));
223 }
224
225 static gpointer createTableCaptionWrapper(PassRefPtr<HTMLElement> element)
226 {
227     return wrapHTMLTableCaptionElement(static_cast<HTMLTableCaptionElement*>(element.get()));
228 }
229
230 static gpointer createTableColWrapper(PassRefPtr<HTMLElement> element)
231 {
232     return wrapHTMLTableColElement(static_cast<HTMLTableColElement*>(element.get()));
233 }
234
235 static gpointer createModWrapper(PassRefPtr<HTMLElement> element)
236 {
237     return wrapHTMLModElement(static_cast<HTMLModElement*>(element.get()));
238 }
239
240 static gpointer createDirectoryWrapper(PassRefPtr<HTMLElement> element)
241 {
242     return wrapHTMLDirectoryElement(static_cast<HTMLDirectoryElement*>(element.get()));
243 }
244
245 static gpointer createDivWrapper(PassRefPtr<HTMLElement> element)
246 {
247     return wrapHTMLDivElement(static_cast<HTMLDivElement*>(element.get()));
248 }
249
250 static gpointer createDListWrapper(PassRefPtr<HTMLElement> element)
251 {
252     return wrapHTMLDListElement(static_cast<HTMLDListElement*>(element.get()));
253 }
254
255 static gpointer createEmbedWrapper(PassRefPtr<HTMLElement> element)
256 {
257     return wrapHTMLEmbedElement(static_cast<HTMLEmbedElement*>(element.get()));
258 }
259
260 static gpointer createFieldSetWrapper(PassRefPtr<HTMLElement> element)
261 {
262     return wrapHTMLFieldSetElement(static_cast<HTMLFieldSetElement*>(element.get()));
263 }
264
265 static gpointer createFontWrapper(PassRefPtr<HTMLElement> element)
266 {
267     return wrapHTMLFontElement(static_cast<HTMLFontElement*>(element.get()));
268 }
269
270 static gpointer createFormWrapper(PassRefPtr<HTMLElement> element)
271 {
272     return wrapHTMLFormElement(static_cast<HTMLFormElement*>(element.get()));
273 }
274
275 static gpointer createFrameWrapper(PassRefPtr<HTMLElement> element)
276 {
277     return wrapHTMLFrameElement(static_cast<HTMLFrameElement*>(element.get()));
278 }
279
280 static gpointer createFrameSetWrapper(PassRefPtr<HTMLElement> element)
281 {
282     return wrapHTMLFrameSetElement(static_cast<HTMLFrameSetElement*>(element.get()));
283 }
284
285 static gpointer createHeadingWrapper(PassRefPtr<HTMLElement> element)
286 {
287     return wrapHTMLHeadingElement(static_cast<HTMLHeadingElement*>(element.get()));
288 }
289
290 static gpointer createHeadWrapper(PassRefPtr<HTMLElement> element)
291 {
292     return wrapHTMLHeadElement(static_cast<HTMLHeadElement*>(element.get()));
293 }
294
295 static gpointer createHRWrapper(PassRefPtr<HTMLElement> element)
296 {
297     return wrapHTMLHRElement(static_cast<HTMLHRElement*>(element.get()));
298 }
299
300 static gpointer createHtmlWrapper(PassRefPtr<HTMLElement> element)
301 {
302     return wrapHTMLHtmlElement(static_cast<HTMLHtmlElement*>(element.get()));
303 }
304
305 static gpointer createIFrameWrapper(PassRefPtr<HTMLElement> element)
306 {
307     return wrapHTMLIFrameElement(static_cast<HTMLIFrameElement*>(element.get()));
308 }
309
310 static gpointer createImageWrapper(PassRefPtr<HTMLElement> element)
311 {
312     return wrapHTMLImageElement(static_cast<HTMLImageElement*>(element.get()));
313 }
314
315 static gpointer createInputWrapper(PassRefPtr<HTMLElement> element)
316 {
317     return wrapHTMLInputElement(static_cast<HTMLInputElement*>(element.get()));
318 }
319
320 static gpointer createIsIndexWrapper(PassRefPtr<HTMLElement> element)
321 {
322     return wrapHTMLIsIndexElement(static_cast<HTMLIsIndexElement*>(element.get()));
323 }
324
325 static gpointer createLabelWrapper(PassRefPtr<HTMLElement> element)
326 {
327     return wrapHTMLLabelElement(static_cast<HTMLLabelElement*>(element.get()));
328 }
329
330 static gpointer createLegendWrapper(PassRefPtr<HTMLElement> element)
331 {
332     return wrapHTMLLegendElement(static_cast<HTMLLegendElement*>(element.get()));
333 }
334
335 static gpointer createLIWrapper(PassRefPtr<HTMLElement> element)
336 {
337     return wrapHTMLLIElement(static_cast<HTMLLIElement*>(element.get()));
338 }
339
340 static gpointer createLinkWrapper(PassRefPtr<HTMLElement> element)
341 {
342     return wrapHTMLLinkElement(static_cast<HTMLLinkElement*>(element.get()));
343 }
344
345 static gpointer createMapWrapper(PassRefPtr<HTMLElement> element)
346 {
347     return wrapHTMLMapElement(static_cast<HTMLMapElement*>(element.get()));
348 }
349
350 static gpointer createMarqueeWrapper(PassRefPtr<HTMLElement> element)
351 {
352     return wrapHTMLMarqueeElement(static_cast<HTMLMarqueeElement*>(element.get()));
353 }
354
355 static gpointer createMenuWrapper(PassRefPtr<HTMLElement> element)
356 {
357     return wrapHTMLMenuElement(static_cast<HTMLMenuElement*>(element.get()));
358 }
359
360 static gpointer createMetaWrapper(PassRefPtr<HTMLElement> element)
361 {
362     return wrapHTMLMetaElement(static_cast<HTMLMetaElement*>(element.get()));
363 }
364
365 static gpointer createObjectWrapper(PassRefPtr<HTMLElement> element)
366 {
367     return wrapHTMLObjectElement(static_cast<HTMLObjectElement*>(element.get()));
368 }
369
370 static gpointer createOListWrapper(PassRefPtr<HTMLElement> element)
371 {
372     return wrapHTMLOListElement(static_cast<HTMLOListElement*>(element.get()));
373 }
374
375 static gpointer createOptGroupWrapper(PassRefPtr<HTMLElement> element)
376 {
377     return wrapHTMLOptGroupElement(static_cast<HTMLOptGroupElement*>(element.get()));
378 }
379
380 static gpointer createOptionWrapper(PassRefPtr<HTMLElement> element)
381 {
382     return wrapHTMLOptionElement(static_cast<HTMLOptionElement*>(element.get()));
383 }
384
385 static gpointer createParagraphWrapper(PassRefPtr<HTMLElement> element)
386 {
387     return wrapHTMLParagraphElement(static_cast<HTMLParagraphElement*>(element.get()));
388 }
389
390 static gpointer createParamWrapper(PassRefPtr<HTMLElement> element)
391 {
392     return wrapHTMLParamElement(static_cast<HTMLParamElement*>(element.get()));
393 }
394
395 static gpointer createPreWrapper(PassRefPtr<HTMLElement> element)
396 {
397     return wrapHTMLPreElement(static_cast<HTMLPreElement*>(element.get()));
398 }
399
400 static gpointer createQuoteWrapper(PassRefPtr<HTMLElement> element)
401 {
402     return wrapHTMLQuoteElement(static_cast<HTMLQuoteElement*>(element.get()));
403 }
404
405 static gpointer createScriptWrapper(PassRefPtr<HTMLElement> element)
406 {
407     return wrapHTMLScriptElement(static_cast<HTMLScriptElement*>(element.get()));
408 }
409
410 static gpointer createSelectWrapper(PassRefPtr<HTMLElement> element)
411 {
412     return wrapHTMLSelectElement(static_cast<HTMLSelectElement*>(element.get()));
413 }
414
415 static gpointer createStyleWrapper(PassRefPtr<HTMLElement> element)
416 {
417     return wrapHTMLStyleElement(static_cast<HTMLStyleElement*>(element.get()));
418 }
419
420 static gpointer createTableWrapper(PassRefPtr<HTMLElement> element)
421 {
422     return wrapHTMLTableElement(static_cast<HTMLTableElement*>(element.get()));
423 }
424
425 static gpointer createTableSectionWrapper(PassRefPtr<HTMLElement> element)
426 {
427     return wrapHTMLTableSectionElement(static_cast<HTMLTableSectionElement*>(element.get()));
428 }
429
430 static gpointer createTableCellWrapper(PassRefPtr<HTMLElement> element)
431 {
432     return wrapHTMLTableCellElement(static_cast<HTMLTableCellElement*>(element.get()));
433 }
434
435 static gpointer createTextAreaWrapper(PassRefPtr<HTMLElement> element)
436 {
437     return wrapHTMLTextAreaElement(static_cast<HTMLTextAreaElement*>(element.get()));
438 }
439
440 static gpointer createTitleWrapper(PassRefPtr<HTMLElement> element)
441 {
442     return wrapHTMLTitleElement(static_cast<HTMLTitleElement*>(element.get()));
443 }
444
445 static gpointer createTableRowWrapper(PassRefPtr<HTMLElement> element)
446 {
447     return wrapHTMLTableRowElement(static_cast<HTMLTableRowElement*>(element.get()));
448 }
449
450 static gpointer createUListWrapper(PassRefPtr<HTMLElement> element)
451 {
452     return wrapHTMLUListElement(static_cast<HTMLUListElement*>(element.get()));
453 }
454
455 gpointer createHTMLElementWrapper(PassRefPtr<WebCore::HTMLElement> element)
456 {
457     static HashMap<WTF::AtomicStringImpl*, CreateHTMLElementWrapperFunction> map;
458     if (map.isEmpty()) {
459        map.set(aTag.localName().impl(), createAnchorWrapper);
460        map.set(appletTag.localName().impl(), createAppletWrapper);
461 #if ENABLE(VIDEO)
462        map.set(audioTag.localName().impl(), createAudioWrapper);
463 #endif
464        map.set(areaTag.localName().impl(), createAreaWrapper);
465        map.set(baseTag.localName().impl(), createBaseWrapper);
466        map.set(basefontTag.localName().impl(), createBaseFontWrapper);
467        map.set(blockquoteTag.localName().impl(), createBlockquoteWrapper);
468        map.set(bodyTag.localName().impl(), createBodyWrapper);
469        map.set(brTag.localName().impl(), createBRWrapper);
470        map.set(buttonTag.localName().impl(), createButtonWrapper);
471        map.set(canvasTag.localName().impl(), createCanvasWrapper);
472        map.set(captionTag.localName().impl(), createTableCaptionWrapper);
473        map.set(colTag.localName().impl(), createTableColWrapper);
474        map.set(delTag.localName().impl(), createModWrapper);
475        map.set(dirTag.localName().impl(), createDirectoryWrapper);
476        map.set(divTag.localName().impl(), createDivWrapper);
477        map.set(dlTag.localName().impl(), createDListWrapper);
478        map.set(embedTag.localName().impl(), createEmbedWrapper);
479        map.set(fieldsetTag.localName().impl(), createFieldSetWrapper);
480        map.set(fontTag.localName().impl(), createFontWrapper);
481        map.set(formTag.localName().impl(), createFormWrapper);
482        map.set(frameTag.localName().impl(), createFrameWrapper);
483        map.set(framesetTag.localName().impl(), createFrameSetWrapper);
484        map.set(h1Tag.localName().impl(), createHeadingWrapper);
485        map.set(headTag.localName().impl(), createHeadWrapper);
486        map.set(hrTag.localName().impl(), createHRWrapper);
487        map.set(htmlTag.localName().impl(), createHtmlWrapper);
488        map.set(iframeTag.localName().impl(), createIFrameWrapper);
489        map.set(imgTag.localName().impl(), createImageWrapper);
490        map.set(inputTag.localName().impl(), createInputWrapper);
491        map.set(isindexTag.localName().impl(), createIsIndexWrapper);
492        map.set(labelTag.localName().impl(), createLabelWrapper);
493        map.set(legendTag.localName().impl(), createLegendWrapper);
494        map.set(liTag.localName().impl(), createLIWrapper);
495        map.set(linkTag.localName().impl(), createLinkWrapper);
496        map.set(mapTag.localName().impl(), createMapWrapper);
497        map.set(marqueeTag.localName().impl(), createMarqueeWrapper);
498        map.set(menuTag.localName().impl(), createMenuWrapper);
499        map.set(metaTag.localName().impl(), createMetaWrapper);
500        map.set(objectTag.localName().impl(), createObjectWrapper);
501        map.set(olTag.localName().impl(), createOListWrapper);
502        map.set(optgroupTag.localName().impl(), createOptGroupWrapper);
503        map.set(optionTag.localName().impl(), createOptionWrapper);
504        map.set(pTag.localName().impl(), createParagraphWrapper);
505        map.set(paramTag.localName().impl(), createParamWrapper);
506        map.set(preTag.localName().impl(), createPreWrapper);
507        map.set(qTag.localName().impl(), createQuoteWrapper);
508        map.set(scriptTag.localName().impl(), createScriptWrapper);
509        map.set(selectTag.localName().impl(), createSelectWrapper);
510        map.set(styleTag.localName().impl(), createStyleWrapper);
511        map.set(tableTag.localName().impl(), createTableWrapper);
512        map.set(tbodyTag.localName().impl(), createTableSectionWrapper);
513        map.set(tdTag.localName().impl(), createTableCellWrapper);
514        map.set(textareaTag.localName().impl(), createTextAreaWrapper);
515        map.set(titleTag.localName().impl(), createTitleWrapper);
516        map.set(trTag.localName().impl(), createTableRowWrapper);
517        map.set(ulTag.localName().impl(), createUListWrapper);
518        map.set(colgroupTag.localName().impl(), createTableColWrapper);
519        map.set(h2Tag.localName().impl(), createHeadingWrapper);
520        map.set(h3Tag.localName().impl(), createHeadingWrapper);
521        map.set(h4Tag.localName().impl(), createHeadingWrapper);
522        map.set(h5Tag.localName().impl(), createHeadingWrapper);
523        map.set(h6Tag.localName().impl(), createHeadingWrapper);
524        map.set(imageTag.localName().impl(), createImageWrapper);
525        map.set(insTag.localName().impl(), createModWrapper);
526        map.set(keygenTag.localName().impl(), createSelectWrapper);
527        map.set(listingTag.localName().impl(), createPreWrapper);
528        map.set(tfootTag.localName().impl(), createTableSectionWrapper);
529        map.set(thTag.localName().impl(), createTableCellWrapper);
530        map.set(theadTag.localName().impl(), createTableSectionWrapper);
531        map.set(xmpTag.localName().impl(), createPreWrapper);
532     }
533
534     CreateHTMLElementWrapperFunction createWrapperFunction =
535         map.get(element->localName().impl());
536     if (createWrapperFunction)
537         return createWrapperFunction(element);
538     return wrapHTMLElement(element.get());
539 }
540
541 }