blob: 6268bb16ef162b8cce4cdc051051ccb34319b718 [file] [log] [blame]
/*
* THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT.
*
* This file was generated by the dom/make_names.pl script.
*
* Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "config.h"
#include "SVGElementFactory.h"
#include "SVGNames.h"
#include "SVGAElement.h"
#include "SVGAltGlyphElement.h"
#include "SVGAnimateElement.h"
#include "SVGAnimateColorElement.h"
#include "SVGAnimateMotionElement.h"
#include "SVGAnimateTransformElement.h"
#include "SVGCircleElement.h"
#include "SVGClipPathElement.h"
#include "SVGCursorElement.h"
#include "SVGDefsElement.h"
#include "SVGDescElement.h"
#include "SVGEllipseElement.h"
#include "SVGFEBlendElement.h"
#include "SVGFEColorMatrixElement.h"
#include "SVGFEComponentTransferElement.h"
#include "SVGFECompositeElement.h"
#include "SVGFEDiffuseLightingElement.h"
#include "SVGFEDisplacementMapElement.h"
#include "SVGFEDistantLightElement.h"
#include "SVGFEFloodElement.h"
#include "SVGFEFuncAElement.h"
#include "SVGFEFuncBElement.h"
#include "SVGFEFuncGElement.h"
#include "SVGFEFuncRElement.h"
#include "SVGFEGaussianBlurElement.h"
#include "SVGFEImageElement.h"
#include "SVGFEMergeElement.h"
#include "SVGFEMergeNodeElement.h"
#include "SVGFEMorphologyElement.h"
#include "SVGFEOffsetElement.h"
#include "SVGFEPointLightElement.h"
#include "SVGFESpecularLightingElement.h"
#include "SVGFESpotLightElement.h"
#include "SVGFETileElement.h"
#include "SVGFETurbulenceElement.h"
#include "SVGFilterElement.h"
#include "SVGFontElement.h"
#include "SVGFontFaceElement.h"
#include "SVGFontFaceFormatElement.h"
#include "SVGFontFaceNameElement.h"
#include "SVGFontFaceSrcElement.h"
#include "SVGFontFaceUriElement.h"
#include "SVGForeignObjectElement.h"
#include "SVGGElement.h"
#include "SVGGlyphElement.h"
#include "SVGHKernElement.h"
#include "SVGImageElement.h"
#include "SVGLineElement.h"
#include "SVGLinearGradientElement.h"
#include "SVGMarkerElement.h"
#include "SVGMaskElement.h"
#include "SVGMetadataElement.h"
#include "SVGMissingGlyphElement.h"
#include "SVGMPathElement.h"
#include "SVGPathElement.h"
#include "SVGPatternElement.h"
#include "SVGPolygonElement.h"
#include "SVGPolylineElement.h"
#include "SVGRadialGradientElement.h"
#include "SVGRectElement.h"
#include "SVGScriptElement.h"
#include "SVGSetElement.h"
#include "SVGStopElement.h"
#include "SVGStyleElement.h"
#include "SVGSVGElement.h"
#include "SVGSwitchElement.h"
#include "SVGSymbolElement.h"
#include "SVGTextElement.h"
#include "SVGTextPathElement.h"
#include "SVGTitleElement.h"
#include "SVGTRefElement.h"
#include "SVGTSpanElement.h"
#include "SVGUseElement.h"
#include "SVGViewElement.h"
#include <wtf/HashMap.h>
#if ENABLE(DASHBOARD_SUPPORT)
#include "Document.h"
#include "Settings.h"
#endif
namespace WebCore {
using namespace SVGNames;
typedef PassRefPtr<SVGElement> (*ConstructorFunction)(const QualifiedName&, Document*, bool createdByParser);
typedef HashMap<AtomicStringImpl*, ConstructorFunction> FunctionMap;
static FunctionMap* gFunctionMap = 0;
#if ENABLE(SVG)
static PassRefPtr<SVGElement> aConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGAElement(tagName, document);
}
static PassRefPtr<SVGElement> altglyphConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGAltGlyphElement(tagName, document);
}
static PassRefPtr<SVGElement> animateConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGAnimateElement(tagName, document);
}
static PassRefPtr<SVGElement> animatecolorConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGAnimateColorElement(tagName, document);
}
static PassRefPtr<SVGElement> animatemotionConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGAnimateMotionElement(tagName, document);
}
static PassRefPtr<SVGElement> animatetransformConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGAnimateTransformElement(tagName, document);
}
static PassRefPtr<SVGElement> circleConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGCircleElement(tagName, document);
}
static PassRefPtr<SVGElement> clippathConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGClipPathElement(tagName, document);
}
static PassRefPtr<SVGElement> cursorConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGCursorElement(tagName, document);
}
static PassRefPtr<SVGElement> defsConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGDefsElement(tagName, document);
}
static PassRefPtr<SVGElement> descConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGDescElement(tagName, document);
}
static PassRefPtr<SVGElement> ellipseConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGEllipseElement(tagName, document);
}
static PassRefPtr<SVGElement> feblendConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGFEBlendElement(tagName, document);
}
static PassRefPtr<SVGElement> fecolormatrixConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGFEColorMatrixElement(tagName, document);
}
static PassRefPtr<SVGElement> fecomponenttransferConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGFEComponentTransferElement(tagName, document);
}
static PassRefPtr<SVGElement> fecompositeConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGFECompositeElement(tagName, document);
}
static PassRefPtr<SVGElement> fediffuselightingConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGFEDiffuseLightingElement(tagName, document);
}
static PassRefPtr<SVGElement> fedisplacementmapConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGFEDisplacementMapElement(tagName, document);
}
static PassRefPtr<SVGElement> fedistantlightConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGFEDistantLightElement(tagName, document);
}
static PassRefPtr<SVGElement> fefloodConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGFEFloodElement(tagName, document);
}
static PassRefPtr<SVGElement> fefuncaConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGFEFuncAElement(tagName, document);
}
static PassRefPtr<SVGElement> fefuncbConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGFEFuncBElement(tagName, document);
}
static PassRefPtr<SVGElement> fefuncgConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGFEFuncGElement(tagName, document);
}
static PassRefPtr<SVGElement> fefuncrConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGFEFuncRElement(tagName, document);
}
static PassRefPtr<SVGElement> fegaussianblurConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGFEGaussianBlurElement(tagName, document);
}
static PassRefPtr<SVGElement> feimageConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGFEImageElement(tagName, document);
}
static PassRefPtr<SVGElement> femergeConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGFEMergeElement(tagName, document);
}
static PassRefPtr<SVGElement> femergenodeConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGFEMergeNodeElement(tagName, document);
}
static PassRefPtr<SVGElement> femorphologyConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGFEMorphologyElement(tagName, document);
}
static PassRefPtr<SVGElement> feoffsetConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGFEOffsetElement(tagName, document);
}
static PassRefPtr<SVGElement> fepointlightConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGFEPointLightElement(tagName, document);
}
static PassRefPtr<SVGElement> fespecularlightingConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGFESpecularLightingElement(tagName, document);
}
static PassRefPtr<SVGElement> fespotlightConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGFESpotLightElement(tagName, document);
}
static PassRefPtr<SVGElement> fetileConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGFETileElement(tagName, document);
}
static PassRefPtr<SVGElement> feturbulenceConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGFETurbulenceElement(tagName, document);
}
static PassRefPtr<SVGElement> filterConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGFilterElement(tagName, document);
}
static PassRefPtr<SVGElement> fontConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGFontElement(tagName, document);
}
static PassRefPtr<SVGElement> fontfaceConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGFontFaceElement(tagName, document);
}
static PassRefPtr<SVGElement> fontfaceformatConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGFontFaceFormatElement(tagName, document);
}
static PassRefPtr<SVGElement> fontfacenameConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGFontFaceNameElement(tagName, document);
}
static PassRefPtr<SVGElement> fontfacesrcConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGFontFaceSrcElement(tagName, document);
}
static PassRefPtr<SVGElement> fontfaceuriConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGFontFaceUriElement(tagName, document);
}
static PassRefPtr<SVGElement> foreignobjectConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGForeignObjectElement(tagName, document);
}
static PassRefPtr<SVGElement> gConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGGElement(tagName, document);
}
static PassRefPtr<SVGElement> glyphConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGGlyphElement(tagName, document);
}
static PassRefPtr<SVGElement> hkernConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGHKernElement(tagName, document);
}
static PassRefPtr<SVGElement> imageConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGImageElement(tagName, document);
}
static PassRefPtr<SVGElement> lineConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGLineElement(tagName, document);
}
static PassRefPtr<SVGElement> lineargradientConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGLinearGradientElement(tagName, document);
}
static PassRefPtr<SVGElement> markerConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGMarkerElement(tagName, document);
}
static PassRefPtr<SVGElement> maskConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGMaskElement(tagName, document);
}
static PassRefPtr<SVGElement> metadataConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGMetadataElement(tagName, document);
}
static PassRefPtr<SVGElement> missingglyphConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGMissingGlyphElement(tagName, document);
}
static PassRefPtr<SVGElement> mpathConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGMPathElement(tagName, document);
}
static PassRefPtr<SVGElement> pathConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGPathElement(tagName, document);
}
static PassRefPtr<SVGElement> patternConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGPatternElement(tagName, document);
}
static PassRefPtr<SVGElement> polygonConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGPolygonElement(tagName, document);
}
static PassRefPtr<SVGElement> polylineConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGPolylineElement(tagName, document);
}
static PassRefPtr<SVGElement> radialgradientConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGRadialGradientElement(tagName, document);
}
static PassRefPtr<SVGElement> rectConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGRectElement(tagName, document);
}
static PassRefPtr<SVGElement> scriptConstructor(const QualifiedName& tagName, Document* document, bool createdByParser)
{
return new SVGScriptElement(tagName, document, createdByParser);
}
static PassRefPtr<SVGElement> setConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGSetElement(tagName, document);
}
static PassRefPtr<SVGElement> stopConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGStopElement(tagName, document);
}
static PassRefPtr<SVGElement> styleConstructor(const QualifiedName& tagName, Document* document, bool createdByParser)
{
return new SVGStyleElement(tagName, document, createdByParser);
}
static PassRefPtr<SVGElement> svgConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGSVGElement(tagName, document);
}
static PassRefPtr<SVGElement> switchConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGSwitchElement(tagName, document);
}
static PassRefPtr<SVGElement> symbolConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGSymbolElement(tagName, document);
}
static PassRefPtr<SVGElement> textConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGTextElement(tagName, document);
}
static PassRefPtr<SVGElement> textpathConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGTextPathElement(tagName, document);
}
static PassRefPtr<SVGElement> titleConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGTitleElement(tagName, document);
}
static PassRefPtr<SVGElement> trefConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGTRefElement(tagName, document);
}
static PassRefPtr<SVGElement> tspanConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGTSpanElement(tagName, document);
}
static PassRefPtr<SVGElement> useConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGUseElement(tagName, document);
}
static PassRefPtr<SVGElement> viewConstructor(const QualifiedName& tagName, Document* document, bool)
{
return new SVGViewElement(tagName, document);
}
#endif
#if ENABLE(SVG)
static void addTag(const QualifiedName& tag, ConstructorFunction func)
{
gFunctionMap->set(tag.localName().impl(), func);
}
static void createFunctionMap()
{
ASSERT(!gFunctionMap);
// Create the table.
gFunctionMap = new FunctionMap;
// Populate it with constructor functions.
addTag(aTag, aConstructor);
addTag(altGlyphTag, altglyphConstructor);
addTag(animateTag, animateConstructor);
addTag(animateColorTag, animatecolorConstructor);
addTag(animateMotionTag, animatemotionConstructor);
addTag(animateTransformTag, animatetransformConstructor);
addTag(circleTag, circleConstructor);
addTag(clipPathTag, clippathConstructor);
addTag(cursorTag, cursorConstructor);
addTag(defsTag, defsConstructor);
addTag(descTag, descConstructor);
addTag(ellipseTag, ellipseConstructor);
addTag(feBlendTag, feblendConstructor);
addTag(feColorMatrixTag, fecolormatrixConstructor);
addTag(feComponentTransferTag, fecomponenttransferConstructor);
addTag(feCompositeTag, fecompositeConstructor);
addTag(feDiffuseLightingTag, fediffuselightingConstructor);
addTag(feDisplacementMapTag, fedisplacementmapConstructor);
addTag(feDistantLightTag, fedistantlightConstructor);
addTag(feFloodTag, fefloodConstructor);
addTag(feFuncATag, fefuncaConstructor);
addTag(feFuncBTag, fefuncbConstructor);
addTag(feFuncGTag, fefuncgConstructor);
addTag(feFuncRTag, fefuncrConstructor);
addTag(feGaussianBlurTag, fegaussianblurConstructor);
addTag(feImageTag, feimageConstructor);
addTag(feMergeTag, femergeConstructor);
addTag(feMergeNodeTag, femergenodeConstructor);
addTag(feMorphologyTag, femorphologyConstructor);
addTag(feOffsetTag, feoffsetConstructor);
addTag(fePointLightTag, fepointlightConstructor);
addTag(feSpecularLightingTag, fespecularlightingConstructor);
addTag(feSpotLightTag, fespotlightConstructor);
addTag(feTileTag, fetileConstructor);
addTag(feTurbulenceTag, feturbulenceConstructor);
addTag(filterTag, filterConstructor);
addTag(fontTag, fontConstructor);
addTag(font_faceTag, fontfaceConstructor);
addTag(font_face_formatTag, fontfaceformatConstructor);
addTag(font_face_nameTag, fontfacenameConstructor);
addTag(font_face_srcTag, fontfacesrcConstructor);
addTag(font_face_uriTag, fontfaceuriConstructor);
addTag(foreignObjectTag, foreignobjectConstructor);
addTag(gTag, gConstructor);
addTag(glyphTag, glyphConstructor);
addTag(hkernTag, hkernConstructor);
addTag(imageTag, imageConstructor);
addTag(lineTag, lineConstructor);
addTag(linearGradientTag, lineargradientConstructor);
addTag(markerTag, markerConstructor);
addTag(maskTag, maskConstructor);
addTag(metadataTag, metadataConstructor);
addTag(missing_glyphTag, missingglyphConstructor);
addTag(mpathTag, mpathConstructor);
addTag(pathTag, pathConstructor);
addTag(patternTag, patternConstructor);
addTag(polygonTag, polygonConstructor);
addTag(polylineTag, polylineConstructor);
addTag(radialGradientTag, radialgradientConstructor);
addTag(rectTag, rectConstructor);
addTag(scriptTag, scriptConstructor);
addTag(setTag, setConstructor);
addTag(stopTag, stopConstructor);
addTag(styleTag, styleConstructor);
addTag(svgTag, svgConstructor);
addTag(switchTag, switchConstructor);
addTag(symbolTag, symbolConstructor);
addTag(textTag, textConstructor);
addTag(textPathTag, textpathConstructor);
addTag(titleTag, titleConstructor);
addTag(trefTag, trefConstructor);
addTag(tspanTag, tspanConstructor);
addTag(useTag, useConstructor);
addTag(viewTag, viewConstructor);
}
#endif
PassRefPtr<SVGElement> SVGElementFactory::createSVGElement(const QualifiedName& qName, Document* document, bool createdByParser)
{
#if ENABLE(SVG)
if (!document)
return 0;
#if ENABLE(DASHBOARD_SUPPORT)
Settings* settings = document->settings();
if (settings && settings->usesDashboardBackwardCompatibilityMode())
return 0;
#endif
if (!gFunctionMap)
createFunctionMap();
if (ConstructorFunction function = gFunctionMap->get(qName.localName().impl()))
return function(qName, document, createdByParser);
return SVGElement::create(qName, document);
#else
return 0;
#endif
}
} // namespace WebCore