{- |
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.DOMNamedNodeMap
    ( 

-- * Exported types
    DOMNamedNodeMap(..)                     ,
    IsDOMNamedNodeMap                       ,
    toDOMNamedNodeMap                       ,
    noDOMNamedNodeMap                       ,


 -- * Methods
-- ** getLength #method:getLength#
    DOMNamedNodeMapGetLengthMethodInfo      ,
    dOMNamedNodeMapGetLength                ,


-- ** getNamedItem #method:getNamedItem#
    DOMNamedNodeMapGetNamedItemMethodInfo   ,
    dOMNamedNodeMapGetNamedItem             ,


-- ** getNamedItemNs #method:getNamedItemNs#
    DOMNamedNodeMapGetNamedItemNsMethodInfo ,
    dOMNamedNodeMapGetNamedItemNs           ,


-- ** item #method:item#
    DOMNamedNodeMapItemMethodInfo           ,
    dOMNamedNodeMapItem                     ,


-- ** removeNamedItem #method:removeNamedItem#
    DOMNamedNodeMapRemoveNamedItemMethodInfo,
    dOMNamedNodeMapRemoveNamedItem          ,


-- ** removeNamedItemNs #method:removeNamedItemNs#
    DOMNamedNodeMapRemoveNamedItemNsMethodInfo,
    dOMNamedNodeMapRemoveNamedItemNs        ,


-- ** setNamedItem #method:setNamedItem#
    DOMNamedNodeMapSetNamedItemMethodInfo   ,
    dOMNamedNodeMapSetNamedItem             ,


-- ** setNamedItemNs #method:setNamedItemNs#
    DOMNamedNodeMapSetNamedItemNsMethodInfo ,
    dOMNamedNodeMapSetNamedItemNs           ,




 -- * Properties
-- ** length #attr:length#
    DOMNamedNodeMapLengthPropertyInfo       ,
    dOMNamedNodeMapLength                   ,
    getDOMNamedNodeMapLength                ,




    ) 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.Objects.DOMNode as WebKit2WebExtension.DOMNode
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMObject as WebKit2WebExtension.DOMObject

newtype DOMNamedNodeMap = DOMNamedNodeMap (ManagedPtr DOMNamedNodeMap)
foreign import ccall "webkit_dom_named_node_map_get_type"
    c_webkit_dom_named_node_map_get_type :: IO GType

instance GObject DOMNamedNodeMap where
    gobjectType _ = c_webkit_dom_named_node_map_get_type
    

class GObject o => IsDOMNamedNodeMap o
#if MIN_VERSION_base(4,9,0)
instance {-# OVERLAPPABLE #-} (GObject a, O.UnknownAncestorError DOMNamedNodeMap a) =>
    IsDOMNamedNodeMap a
#endif
instance IsDOMNamedNodeMap DOMNamedNodeMap
instance WebKit2WebExtension.DOMObject.IsDOMObject DOMNamedNodeMap
instance GObject.Object.IsObject DOMNamedNodeMap

toDOMNamedNodeMap :: IsDOMNamedNodeMap o => o -> IO DOMNamedNodeMap
toDOMNamedNodeMap = unsafeCastTo DOMNamedNodeMap

noDOMNamedNodeMap :: Maybe DOMNamedNodeMap
noDOMNamedNodeMap = Nothing

type family ResolveDOMNamedNodeMapMethod (t :: Symbol) (o :: *) :: * where
    ResolveDOMNamedNodeMapMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveDOMNamedNodeMapMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveDOMNamedNodeMapMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveDOMNamedNodeMapMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveDOMNamedNodeMapMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveDOMNamedNodeMapMethod "item" o = DOMNamedNodeMapItemMethodInfo
    ResolveDOMNamedNodeMapMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveDOMNamedNodeMapMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveDOMNamedNodeMapMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveDOMNamedNodeMapMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveDOMNamedNodeMapMethod "removeNamedItem" o = DOMNamedNodeMapRemoveNamedItemMethodInfo
    ResolveDOMNamedNodeMapMethod "removeNamedItemNs" o = DOMNamedNodeMapRemoveNamedItemNsMethodInfo
    ResolveDOMNamedNodeMapMethod "replaceData" o = GObject.Object.ObjectReplaceDataMethodInfo
    ResolveDOMNamedNodeMapMethod "replaceQdata" o = GObject.Object.ObjectReplaceQdataMethodInfo
    ResolveDOMNamedNodeMapMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveDOMNamedNodeMapMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveDOMNamedNodeMapMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveDOMNamedNodeMapMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveDOMNamedNodeMapMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveDOMNamedNodeMapMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveDOMNamedNodeMapMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveDOMNamedNodeMapMethod "getLength" o = DOMNamedNodeMapGetLengthMethodInfo
    ResolveDOMNamedNodeMapMethod "getNamedItem" o = DOMNamedNodeMapGetNamedItemMethodInfo
    ResolveDOMNamedNodeMapMethod "getNamedItemNs" o = DOMNamedNodeMapGetNamedItemNsMethodInfo
    ResolveDOMNamedNodeMapMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveDOMNamedNodeMapMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveDOMNamedNodeMapMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveDOMNamedNodeMapMethod "setNamedItem" o = DOMNamedNodeMapSetNamedItemMethodInfo
    ResolveDOMNamedNodeMapMethod "setNamedItemNs" o = DOMNamedNodeMapSetNamedItemNsMethodInfo
    ResolveDOMNamedNodeMapMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveDOMNamedNodeMapMethod l o = O.MethodResolutionFailed l o

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

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

-- VVV Prop "length"
   -- Type: TBasicType TULong
   -- Flags: [PropertyReadable]
   -- Nullable: (Just False,Nothing)

getDOMNamedNodeMapLength :: (MonadIO m, IsDOMNamedNodeMap o) => o -> m CULong
getDOMNamedNodeMapLength obj = liftIO $ getObjectPropertyULong obj "length"

data DOMNamedNodeMapLengthPropertyInfo
instance AttrInfo DOMNamedNodeMapLengthPropertyInfo where
    type AttrAllowedOps DOMNamedNodeMapLengthPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMNamedNodeMapLengthPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMNamedNodeMapLengthPropertyInfo = IsDOMNamedNodeMap
    type AttrGetType DOMNamedNodeMapLengthPropertyInfo = CULong
    type AttrLabel DOMNamedNodeMapLengthPropertyInfo = "length"
    type AttrOrigin DOMNamedNodeMapLengthPropertyInfo = DOMNamedNodeMap
    attrGet _ = getDOMNamedNodeMapLength
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

instance O.HasAttributeList DOMNamedNodeMap
type instance O.AttributeList DOMNamedNodeMap = DOMNamedNodeMapAttributeList
type DOMNamedNodeMapAttributeList = ('[ '("coreObject", WebKit2WebExtension.DOMObject.DOMObjectCoreObjectPropertyInfo), '("length", DOMNamedNodeMapLengthPropertyInfo)] :: [(Symbol, *)])

dOMNamedNodeMapLength :: AttrLabelProxy "length"
dOMNamedNodeMapLength = AttrLabelProxy

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

-- method DOMNamedNodeMap::get_length
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNamedNodeMap"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNamedNodeMap", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TULong)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_named_node_map_get_length" webkit_dom_named_node_map_get_length :: 
    Ptr DOMNamedNodeMap ->                  -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNamedNodeMap"})
    IO CULong

{- |
/No description available in the introspection data./
-}
dOMNamedNodeMapGetLength ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNamedNodeMap a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNamedNodeMap.DOMNamedNodeMap' -}
    -> m CULong
    {- ^ __Returns:__ A @/gulong/@ -}
dOMNamedNodeMapGetLength self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_named_node_map_get_length self'
    touchManagedPtr self
    return result

data DOMNamedNodeMapGetLengthMethodInfo
instance (signature ~ (m CULong), MonadIO m, IsDOMNamedNodeMap a) => O.MethodInfo DOMNamedNodeMapGetLengthMethodInfo a signature where
    overloadedMethod _ = dOMNamedNodeMapGetLength

-- method DOMNamedNodeMap::get_named_item
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNamedNodeMap"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNamedNodeMap", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gchar", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}))
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_named_node_map_get_named_item" webkit_dom_named_node_map_get_named_item :: 
    Ptr DOMNamedNodeMap ->                  -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNamedNodeMap"})
    CString ->                              -- name : TBasicType TUTF8
    IO (Ptr WebKit2WebExtension.DOMNode.DOMNode)

{- |
/No description available in the introspection data./
-}
dOMNamedNodeMapGetNamedItem ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNamedNodeMap a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNamedNodeMap.DOMNamedNodeMap' -}
    -> T.Text
    {- ^ /@name@/: A @/gchar/@ -}
    -> m WebKit2WebExtension.DOMNode.DOMNode
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
dOMNamedNodeMapGetNamedItem self name = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    name' <- textToCString name
    result <- webkit_dom_named_node_map_get_named_item self' name'
    checkUnexpectedReturnNULL "dOMNamedNodeMapGetNamedItem" result
    result' <- (newObject WebKit2WebExtension.DOMNode.DOMNode) result
    touchManagedPtr self
    freeMem name'
    return result'

data DOMNamedNodeMapGetNamedItemMethodInfo
instance (signature ~ (T.Text -> m WebKit2WebExtension.DOMNode.DOMNode), MonadIO m, IsDOMNamedNodeMap a) => O.MethodInfo DOMNamedNodeMapGetNamedItemMethodInfo a signature where
    overloadedMethod _ = dOMNamedNodeMapGetNamedItem

-- method DOMNamedNodeMap::get_named_item_ns
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNamedNodeMap"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNamedNodeMap", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "namespaceURI", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gchar", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "localName", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gchar", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}))
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_named_node_map_get_named_item_ns" webkit_dom_named_node_map_get_named_item_ns :: 
    Ptr DOMNamedNodeMap ->                  -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNamedNodeMap"})
    CString ->                              -- namespaceURI : TBasicType TUTF8
    CString ->                              -- localName : TBasicType TUTF8
    IO (Ptr WebKit2WebExtension.DOMNode.DOMNode)

{- |
/No description available in the introspection data./
-}
dOMNamedNodeMapGetNamedItemNs ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNamedNodeMap a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNamedNodeMap.DOMNamedNodeMap' -}
    -> T.Text
    {- ^ /@namespaceURI@/: A @/gchar/@ -}
    -> T.Text
    {- ^ /@localName@/: A @/gchar/@ -}
    -> m WebKit2WebExtension.DOMNode.DOMNode
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
dOMNamedNodeMapGetNamedItemNs self namespaceURI localName = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    namespaceURI' <- textToCString namespaceURI
    localName' <- textToCString localName
    result <- webkit_dom_named_node_map_get_named_item_ns self' namespaceURI' localName'
    checkUnexpectedReturnNULL "dOMNamedNodeMapGetNamedItemNs" result
    result' <- (newObject WebKit2WebExtension.DOMNode.DOMNode) result
    touchManagedPtr self
    freeMem namespaceURI'
    freeMem localName'
    return result'

data DOMNamedNodeMapGetNamedItemNsMethodInfo
instance (signature ~ (T.Text -> T.Text -> m WebKit2WebExtension.DOMNode.DOMNode), MonadIO m, IsDOMNamedNodeMap a) => O.MethodInfo DOMNamedNodeMapGetNamedItemNsMethodInfo a signature where
    overloadedMethod _ = dOMNamedNodeMapGetNamedItemNs

-- method DOMNamedNodeMap::item
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNamedNodeMap"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNamedNodeMap", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index", argType = TBasicType TULong, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gulong", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}))
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_named_node_map_item" webkit_dom_named_node_map_item :: 
    Ptr DOMNamedNodeMap ->                  -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNamedNodeMap"})
    CULong ->                               -- index : TBasicType TULong
    IO (Ptr WebKit2WebExtension.DOMNode.DOMNode)

{- |
/No description available in the introspection data./
-}
dOMNamedNodeMapItem ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNamedNodeMap a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNamedNodeMap.DOMNamedNodeMap' -}
    -> CULong
    {- ^ /@index@/: A @/gulong/@ -}
    -> m WebKit2WebExtension.DOMNode.DOMNode
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
dOMNamedNodeMapItem self index = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_named_node_map_item self' index
    checkUnexpectedReturnNULL "dOMNamedNodeMapItem" result
    result' <- (newObject WebKit2WebExtension.DOMNode.DOMNode) result
    touchManagedPtr self
    return result'

data DOMNamedNodeMapItemMethodInfo
instance (signature ~ (CULong -> m WebKit2WebExtension.DOMNode.DOMNode), MonadIO m, IsDOMNamedNodeMap a) => O.MethodInfo DOMNamedNodeMapItemMethodInfo a signature where
    overloadedMethod _ = dOMNamedNodeMapItem

-- method DOMNamedNodeMap::remove_named_item
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNamedNodeMap"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNamedNodeMap", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gchar", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}))
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_named_node_map_remove_named_item" webkit_dom_named_node_map_remove_named_item :: 
    Ptr DOMNamedNodeMap ->                  -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNamedNodeMap"})
    CString ->                              -- name : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr WebKit2WebExtension.DOMNode.DOMNode)

{- |
/No description available in the introspection data./
-}
dOMNamedNodeMapRemoveNamedItem ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNamedNodeMap a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNamedNodeMap.DOMNamedNodeMap' -}
    -> T.Text
    {- ^ /@name@/: A @/gchar/@ -}
    -> m WebKit2WebExtension.DOMNode.DOMNode
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMNamedNodeMapRemoveNamedItem self name = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    name' <- textToCString name
    onException (do
        result <- propagateGError $ webkit_dom_named_node_map_remove_named_item self' name'
        checkUnexpectedReturnNULL "dOMNamedNodeMapRemoveNamedItem" result
        result' <- (newObject WebKit2WebExtension.DOMNode.DOMNode) result
        touchManagedPtr self
        freeMem name'
        return result'
     ) (do
        freeMem name'
     )

data DOMNamedNodeMapRemoveNamedItemMethodInfo
instance (signature ~ (T.Text -> m WebKit2WebExtension.DOMNode.DOMNode), MonadIO m, IsDOMNamedNodeMap a) => O.MethodInfo DOMNamedNodeMapRemoveNamedItemMethodInfo a signature where
    overloadedMethod _ = dOMNamedNodeMapRemoveNamedItem

-- method DOMNamedNodeMap::remove_named_item_ns
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNamedNodeMap"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNamedNodeMap", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "namespaceURI", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gchar", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "localName", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gchar", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}))
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_named_node_map_remove_named_item_ns" webkit_dom_named_node_map_remove_named_item_ns :: 
    Ptr DOMNamedNodeMap ->                  -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNamedNodeMap"})
    CString ->                              -- namespaceURI : TBasicType TUTF8
    CString ->                              -- localName : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr WebKit2WebExtension.DOMNode.DOMNode)

{- |
/No description available in the introspection data./
-}
dOMNamedNodeMapRemoveNamedItemNs ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNamedNodeMap a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNamedNodeMap.DOMNamedNodeMap' -}
    -> T.Text
    {- ^ /@namespaceURI@/: A @/gchar/@ -}
    -> T.Text
    {- ^ /@localName@/: A @/gchar/@ -}
    -> m WebKit2WebExtension.DOMNode.DOMNode
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMNamedNodeMapRemoveNamedItemNs self namespaceURI localName = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    namespaceURI' <- textToCString namespaceURI
    localName' <- textToCString localName
    onException (do
        result <- propagateGError $ webkit_dom_named_node_map_remove_named_item_ns self' namespaceURI' localName'
        checkUnexpectedReturnNULL "dOMNamedNodeMapRemoveNamedItemNs" result
        result' <- (newObject WebKit2WebExtension.DOMNode.DOMNode) result
        touchManagedPtr self
        freeMem namespaceURI'
        freeMem localName'
        return result'
     ) (do
        freeMem namespaceURI'
        freeMem localName'
     )

data DOMNamedNodeMapRemoveNamedItemNsMethodInfo
instance (signature ~ (T.Text -> T.Text -> m WebKit2WebExtension.DOMNode.DOMNode), MonadIO m, IsDOMNamedNodeMap a) => O.MethodInfo DOMNamedNodeMapRemoveNamedItemNsMethodInfo a signature where
    overloadedMethod _ = dOMNamedNodeMapRemoveNamedItemNs

-- method DOMNamedNodeMap::set_named_item
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNamedNodeMap"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNamedNodeMap", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "node", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}))
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_named_node_map_set_named_item" webkit_dom_named_node_map_set_named_item :: 
    Ptr DOMNamedNodeMap ->                  -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNamedNodeMap"})
    Ptr WebKit2WebExtension.DOMNode.DOMNode -> -- node : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr WebKit2WebExtension.DOMNode.DOMNode)

{- |
/No description available in the introspection data./
-}
dOMNamedNodeMapSetNamedItem ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNamedNodeMap a, WebKit2WebExtension.DOMNode.IsDOMNode b) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNamedNodeMap.DOMNamedNodeMap' -}
    -> b
    {- ^ /@node@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m WebKit2WebExtension.DOMNode.DOMNode
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMNamedNodeMapSetNamedItem self node = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    node' <- unsafeManagedPtrCastPtr node
    onException (do
        result <- propagateGError $ webkit_dom_named_node_map_set_named_item self' node'
        checkUnexpectedReturnNULL "dOMNamedNodeMapSetNamedItem" result
        result' <- (newObject WebKit2WebExtension.DOMNode.DOMNode) result
        touchManagedPtr self
        touchManagedPtr node
        return result'
     ) (do
        return ()
     )

data DOMNamedNodeMapSetNamedItemMethodInfo
instance (signature ~ (b -> m WebKit2WebExtension.DOMNode.DOMNode), MonadIO m, IsDOMNamedNodeMap a, WebKit2WebExtension.DOMNode.IsDOMNode b) => O.MethodInfo DOMNamedNodeMapSetNamedItemMethodInfo a signature where
    overloadedMethod _ = dOMNamedNodeMapSetNamedItem

-- method DOMNamedNodeMap::set_named_item_ns
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNamedNodeMap"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNamedNodeMap", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "node", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}))
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_named_node_map_set_named_item_ns" webkit_dom_named_node_map_set_named_item_ns :: 
    Ptr DOMNamedNodeMap ->                  -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNamedNodeMap"})
    Ptr WebKit2WebExtension.DOMNode.DOMNode -> -- node : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr WebKit2WebExtension.DOMNode.DOMNode)

{- |
/No description available in the introspection data./
-}
dOMNamedNodeMapSetNamedItemNs ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNamedNodeMap a, WebKit2WebExtension.DOMNode.IsDOMNode b) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNamedNodeMap.DOMNamedNodeMap' -}
    -> b
    {- ^ /@node@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m WebKit2WebExtension.DOMNode.DOMNode
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMNamedNodeMapSetNamedItemNs self node = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    node' <- unsafeManagedPtrCastPtr node
    onException (do
        result <- propagateGError $ webkit_dom_named_node_map_set_named_item_ns self' node'
        checkUnexpectedReturnNULL "dOMNamedNodeMapSetNamedItemNs" result
        result' <- (newObject WebKit2WebExtension.DOMNode.DOMNode) result
        touchManagedPtr self
        touchManagedPtr node
        return result'
     ) (do
        return ()
     )

data DOMNamedNodeMapSetNamedItemNsMethodInfo
instance (signature ~ (b -> m WebKit2WebExtension.DOMNode.DOMNode), MonadIO m, IsDOMNamedNodeMap a, WebKit2WebExtension.DOMNode.IsDOMNode b) => O.MethodInfo DOMNamedNodeMapSetNamedItemNsMethodInfo a signature where
    overloadedMethod _ = dOMNamedNodeMapSetNamedItemNs