{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}

module GI.WebKit2WebExtension.Objects.DOMEntityReference
    ( 

-- * Exported types
    DOMEntityReference(..)                  ,
    IsDOMEntityReference                    ,
    toDOMEntityReference                    ,
    noDOMEntityReference                    ,


    ) where

import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P

import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP

import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Interfaces.DOMEventTarget as WebKit2WebExtension.DOMEventTarget
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMNode as WebKit2WebExtension.DOMNode
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMObject as WebKit2WebExtension.DOMObject

newtype DOMEntityReference = DOMEntityReference (ManagedPtr DOMEntityReference)
foreign import ccall "webkit_dom_entity_reference_get_type"
    c_webkit_dom_entity_reference_get_type :: IO GType

instance GObject DOMEntityReference where
    gobjectType _ = c_webkit_dom_entity_reference_get_type
    

class GObject o => IsDOMEntityReference o
#if MIN_VERSION_base(4,9,0)
instance {-# OVERLAPPABLE #-} (GObject a, O.UnknownAncestorError DOMEntityReference a) =>
    IsDOMEntityReference a
#endif
instance IsDOMEntityReference DOMEntityReference
instance WebKit2WebExtension.DOMNode.IsDOMNode DOMEntityReference
instance WebKit2WebExtension.DOMObject.IsDOMObject DOMEntityReference
instance GObject.Object.IsObject DOMEntityReference
instance WebKit2WebExtension.DOMEventTarget.IsDOMEventTarget DOMEntityReference

toDOMEntityReference :: IsDOMEntityReference o => o -> IO DOMEntityReference
toDOMEntityReference = unsafeCastTo DOMEntityReference

noDOMEntityReference :: Maybe DOMEntityReference
noDOMEntityReference = Nothing

type family ResolveDOMEntityReferenceMethod (t :: Symbol) (o :: *) :: * where
    ResolveDOMEntityReferenceMethod "addEventListener" o = WebKit2WebExtension.DOMEventTarget.DOMEventTargetAddEventListenerMethodInfo
    ResolveDOMEntityReferenceMethod "appendChild" o = WebKit2WebExtension.DOMNode.DOMNodeAppendChildMethodInfo
    ResolveDOMEntityReferenceMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveDOMEntityReferenceMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveDOMEntityReferenceMethod "cloneNodeWithError" o = WebKit2WebExtension.DOMNode.DOMNodeCloneNodeWithErrorMethodInfo
    ResolveDOMEntityReferenceMethod "compareDocumentPosition" o = WebKit2WebExtension.DOMNode.DOMNodeCompareDocumentPositionMethodInfo
    ResolveDOMEntityReferenceMethod "contains" o = WebKit2WebExtension.DOMNode.DOMNodeContainsMethodInfo
    ResolveDOMEntityReferenceMethod "dispatchEvent" o = WebKit2WebExtension.DOMEventTarget.DOMEventTargetDispatchEventMethodInfo
    ResolveDOMEntityReferenceMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveDOMEntityReferenceMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveDOMEntityReferenceMethod "hasChildNodes" o = WebKit2WebExtension.DOMNode.DOMNodeHasChildNodesMethodInfo
    ResolveDOMEntityReferenceMethod "insertBefore" o = WebKit2WebExtension.DOMNode.DOMNodeInsertBeforeMethodInfo
    ResolveDOMEntityReferenceMethod "isDefaultNamespace" o = WebKit2WebExtension.DOMNode.DOMNodeIsDefaultNamespaceMethodInfo
    ResolveDOMEntityReferenceMethod "isEqualNode" o = WebKit2WebExtension.DOMNode.DOMNodeIsEqualNodeMethodInfo
    ResolveDOMEntityReferenceMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveDOMEntityReferenceMethod "isSameNode" o = WebKit2WebExtension.DOMNode.DOMNodeIsSameNodeMethodInfo
    ResolveDOMEntityReferenceMethod "isSupported" o = WebKit2WebExtension.DOMNode.DOMNodeIsSupportedMethodInfo
    ResolveDOMEntityReferenceMethod "lookupNamespaceUri" o = WebKit2WebExtension.DOMNode.DOMNodeLookupNamespaceUriMethodInfo
    ResolveDOMEntityReferenceMethod "lookupPrefix" o = WebKit2WebExtension.DOMNode.DOMNodeLookupPrefixMethodInfo
    ResolveDOMEntityReferenceMethod "normalize" o = WebKit2WebExtension.DOMNode.DOMNodeNormalizeMethodInfo
    ResolveDOMEntityReferenceMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveDOMEntityReferenceMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveDOMEntityReferenceMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveDOMEntityReferenceMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveDOMEntityReferenceMethod "removeChild" o = WebKit2WebExtension.DOMNode.DOMNodeRemoveChildMethodInfo
    ResolveDOMEntityReferenceMethod "removeEventListener" o = WebKit2WebExtension.DOMEventTarget.DOMEventTargetRemoveEventListenerMethodInfo
    ResolveDOMEntityReferenceMethod "replaceChild" o = WebKit2WebExtension.DOMNode.DOMNodeReplaceChildMethodInfo
    ResolveDOMEntityReferenceMethod "replaceData" o = GObject.Object.ObjectReplaceDataMethodInfo
    ResolveDOMEntityReferenceMethod "replaceQdata" o = GObject.Object.ObjectReplaceQdataMethodInfo
    ResolveDOMEntityReferenceMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveDOMEntityReferenceMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveDOMEntityReferenceMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveDOMEntityReferenceMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveDOMEntityReferenceMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveDOMEntityReferenceMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveDOMEntityReferenceMethod "getBaseUri" o = WebKit2WebExtension.DOMNode.DOMNodeGetBaseUriMethodInfo
    ResolveDOMEntityReferenceMethod "getChildNodes" o = WebKit2WebExtension.DOMNode.DOMNodeGetChildNodesMethodInfo
    ResolveDOMEntityReferenceMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveDOMEntityReferenceMethod "getFirstChild" o = WebKit2WebExtension.DOMNode.DOMNodeGetFirstChildMethodInfo
    ResolveDOMEntityReferenceMethod "getLastChild" o = WebKit2WebExtension.DOMNode.DOMNodeGetLastChildMethodInfo
    ResolveDOMEntityReferenceMethod "getLocalName" o = WebKit2WebExtension.DOMNode.DOMNodeGetLocalNameMethodInfo
    ResolveDOMEntityReferenceMethod "getNamespaceUri" o = WebKit2WebExtension.DOMNode.DOMNodeGetNamespaceUriMethodInfo
    ResolveDOMEntityReferenceMethod "getNextSibling" o = WebKit2WebExtension.DOMNode.DOMNodeGetNextSiblingMethodInfo
    ResolveDOMEntityReferenceMethod "getNodeName" o = WebKit2WebExtension.DOMNode.DOMNodeGetNodeNameMethodInfo
    ResolveDOMEntityReferenceMethod "getNodeType" o = WebKit2WebExtension.DOMNode.DOMNodeGetNodeTypeMethodInfo
    ResolveDOMEntityReferenceMethod "getNodeValue" o = WebKit2WebExtension.DOMNode.DOMNodeGetNodeValueMethodInfo
    ResolveDOMEntityReferenceMethod "getOwnerDocument" o = WebKit2WebExtension.DOMNode.DOMNodeGetOwnerDocumentMethodInfo
    ResolveDOMEntityReferenceMethod "getParentElement" o = WebKit2WebExtension.DOMNode.DOMNodeGetParentElementMethodInfo
    ResolveDOMEntityReferenceMethod "getParentNode" o = WebKit2WebExtension.DOMNode.DOMNodeGetParentNodeMethodInfo
    ResolveDOMEntityReferenceMethod "getPrefix" o = WebKit2WebExtension.DOMNode.DOMNodeGetPrefixMethodInfo
    ResolveDOMEntityReferenceMethod "getPreviousSibling" o = WebKit2WebExtension.DOMNode.DOMNodeGetPreviousSiblingMethodInfo
    ResolveDOMEntityReferenceMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveDOMEntityReferenceMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveDOMEntityReferenceMethod "getTextContent" o = WebKit2WebExtension.DOMNode.DOMNodeGetTextContentMethodInfo
    ResolveDOMEntityReferenceMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveDOMEntityReferenceMethod "setNodeValue" o = WebKit2WebExtension.DOMNode.DOMNodeSetNodeValueMethodInfo
    ResolveDOMEntityReferenceMethod "setPrefix" o = WebKit2WebExtension.DOMNode.DOMNodeSetPrefixMethodInfo
    ResolveDOMEntityReferenceMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveDOMEntityReferenceMethod "setTextContent" o = WebKit2WebExtension.DOMNode.DOMNodeSetTextContentMethodInfo
    ResolveDOMEntityReferenceMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveDOMEntityReferenceMethod t DOMEntityReference, O.MethodInfo info DOMEntityReference p) => O.IsLabelProxy t (DOMEntityReference -> p) where
    fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)

#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveDOMEntityReferenceMethod t DOMEntityReference, O.MethodInfo info DOMEntityReference p) => O.IsLabel t (DOMEntityReference -> p) where
    fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif

instance O.HasAttributeList DOMEntityReference
type instance O.AttributeList DOMEntityReference = DOMEntityReferenceAttributeList
type DOMEntityReferenceAttributeList = ('[ '("baseUri", WebKit2WebExtension.DOMNode.DOMNodeBaseUriPropertyInfo), '("childNodes", WebKit2WebExtension.DOMNode.DOMNodeChildNodesPropertyInfo), '("coreObject", WebKit2WebExtension.DOMObject.DOMObjectCoreObjectPropertyInfo), '("firstChild", WebKit2WebExtension.DOMNode.DOMNodeFirstChildPropertyInfo), '("lastChild", WebKit2WebExtension.DOMNode.DOMNodeLastChildPropertyInfo), '("nextSibling", WebKit2WebExtension.DOMNode.DOMNodeNextSiblingPropertyInfo), '("nodeName", WebKit2WebExtension.DOMNode.DOMNodeNodeNamePropertyInfo), '("nodeType", WebKit2WebExtension.DOMNode.DOMNodeNodeTypePropertyInfo), '("nodeValue", WebKit2WebExtension.DOMNode.DOMNodeNodeValuePropertyInfo), '("ownerDocument", WebKit2WebExtension.DOMNode.DOMNodeOwnerDocumentPropertyInfo), '("parentElement", WebKit2WebExtension.DOMNode.DOMNodeParentElementPropertyInfo), '("parentNode", WebKit2WebExtension.DOMNode.DOMNodeParentNodePropertyInfo), '("previousSibling", WebKit2WebExtension.DOMNode.DOMNodePreviousSiblingPropertyInfo), '("textContent", WebKit2WebExtension.DOMNode.DOMNodeTextContentPropertyInfo)] :: [(Symbol, *)])

type instance O.SignalList DOMEntityReference = DOMEntityReferenceSignalList
type DOMEntityReferenceSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])