#pragma once
#include "QualifiedName.h"
#include "SVGAttributeOwnerProxyImpl.h"
#include <wtf/HashSet.h>
namespace WebCore {
class SVGElement;
class SVGLangSpace {
public:
const String& xmllang() const { return m_lang.value(); }
void setXmllang(const AtomicString& xmlLang) { m_lang.setValue(xmlLang); }
const String& xmlspace() const;
void setXmlspace(const AtomicString& xmlSpace) { m_space.setValue(xmlSpace); }
void parseAttribute(const QualifiedName&, const AtomicString&);
void svgAttributeChanged(const QualifiedName&);
using AttributeOwnerProxy = SVGAttributeOwnerProxyImpl<SVGLangSpace>;
using AttributeRegistry = SVGAttributeRegistry<SVGLangSpace>;
static auto& attributeRegistry() { return AttributeOwnerProxy::attributeRegistry(); }
static bool isKnownAttribute(const QualifiedName& attributeName) { return attributeRegistry().isKnownAttribute(attributeName); }
protected:
SVGLangSpace(SVGElement* contextElement);
private:
using SVGStringAttribute = SVGPropertyAttribute<String>;
using SVGStringAttributeAccessor = SVGPropertyAttributeAccessor<SVGLangSpace, SVGStringAttribute>;
static void registerAttributes();
SVGElement& m_contextElement;
SVGStringAttribute m_lang;
SVGStringAttribute m_space;
};
}