{- |
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.WebKit.Objects.DOMNodeIterator
    ( 

-- * Exported types
    DOMNodeIterator(..)                     ,
    DOMNodeIteratorK                        ,
    toDOMNodeIterator                       ,
    noDOMNodeIterator                       ,


 -- * Methods
-- ** dOMNodeIteratorDetach
    dOMNodeIteratorDetach                   ,


-- ** dOMNodeIteratorGetExpandEntityReferences
    dOMNodeIteratorGetExpandEntityReferences,


-- ** dOMNodeIteratorGetFilter
    dOMNodeIteratorGetFilter                ,


-- ** dOMNodeIteratorGetPointerBeforeReferenceNode
    dOMNodeIteratorGetPointerBeforeReferenceNode,


-- ** dOMNodeIteratorGetReferenceNode
    dOMNodeIteratorGetReferenceNode         ,


-- ** dOMNodeIteratorGetRoot
    dOMNodeIteratorGetRoot                  ,


-- ** dOMNodeIteratorGetWhatToShow
    dOMNodeIteratorGetWhatToShow            ,


-- ** dOMNodeIteratorNextNode
    dOMNodeIteratorNextNode                 ,


-- ** dOMNodeIteratorPreviousNode
    dOMNodeIteratorPreviousNode             ,




 -- * Properties
-- ** ExpandEntityReferences
    DOMNodeIteratorExpandEntityReferencesPropertyInfo,
    getDOMNodeIteratorExpandEntityReferences,


-- ** Filter
    DOMNodeIteratorFilterPropertyInfo       ,
    getDOMNodeIteratorFilter                ,


-- ** PointerBeforeReferenceNode
    DOMNodeIteratorPointerBeforeReferenceNodePropertyInfo,
    getDOMNodeIteratorPointerBeforeReferenceNode,


-- ** ReferenceNode
    DOMNodeIteratorReferenceNodePropertyInfo,
    getDOMNodeIteratorReferenceNode         ,


-- ** Root
    DOMNodeIteratorRootPropertyInfo         ,
    getDOMNodeIteratorRoot                  ,


-- ** WhatToShow
    DOMNodeIteratorWhatToShowPropertyInfo   ,
    getDOMNodeIteratorWhatToShow            ,




    ) where

import Prelude ()
import Data.GI.Base.ShortPrelude

import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map

import GI.WebKit.Types
import GI.WebKit.Callbacks
import qualified GI.GObject as GObject

newtype DOMNodeIterator = DOMNodeIterator (ForeignPtr DOMNodeIterator)
foreign import ccall "webkit_dom_node_iterator_get_type"
    c_webkit_dom_node_iterator_get_type :: IO GType

type instance ParentTypes DOMNodeIterator = DOMNodeIteratorParentTypes
type DOMNodeIteratorParentTypes = '[DOMObject, GObject.Object]

instance GObject DOMNodeIterator where
    gobjectIsInitiallyUnowned _ = False
    gobjectType _ = c_webkit_dom_node_iterator_get_type
    

class GObject o => DOMNodeIteratorK o
instance (GObject o, IsDescendantOf DOMNodeIterator o) => DOMNodeIteratorK o

toDOMNodeIterator :: DOMNodeIteratorK o => o -> IO DOMNodeIterator
toDOMNodeIterator = unsafeCastTo DOMNodeIterator

noDOMNodeIterator :: Maybe DOMNodeIterator
noDOMNodeIterator = Nothing

-- VVV Prop "expand-entity-references"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable]

getDOMNodeIteratorExpandEntityReferences :: (MonadIO m, DOMNodeIteratorK o) => o -> m Bool
getDOMNodeIteratorExpandEntityReferences obj = liftIO $ getObjectPropertyBool obj "expand-entity-references"

data DOMNodeIteratorExpandEntityReferencesPropertyInfo
instance AttrInfo DOMNodeIteratorExpandEntityReferencesPropertyInfo where
    type AttrAllowedOps DOMNodeIteratorExpandEntityReferencesPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMNodeIteratorExpandEntityReferencesPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMNodeIteratorExpandEntityReferencesPropertyInfo = DOMNodeIteratorK
    type AttrGetType DOMNodeIteratorExpandEntityReferencesPropertyInfo = Bool
    type AttrLabel DOMNodeIteratorExpandEntityReferencesPropertyInfo = "DOMNodeIterator::expand-entity-references"
    attrGet _ = getDOMNodeIteratorExpandEntityReferences
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "filter"
   -- Type: TInterface "WebKit" "DOMNodeFilter"
   -- Flags: [PropertyReadable]

getDOMNodeIteratorFilter :: (MonadIO m, DOMNodeIteratorK o) => o -> m DOMNodeFilter
getDOMNodeIteratorFilter obj = liftIO $ getObjectPropertyObject obj "filter" DOMNodeFilter

data DOMNodeIteratorFilterPropertyInfo
instance AttrInfo DOMNodeIteratorFilterPropertyInfo where
    type AttrAllowedOps DOMNodeIteratorFilterPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMNodeIteratorFilterPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMNodeIteratorFilterPropertyInfo = DOMNodeIteratorK
    type AttrGetType DOMNodeIteratorFilterPropertyInfo = DOMNodeFilter
    type AttrLabel DOMNodeIteratorFilterPropertyInfo = "DOMNodeIterator::filter"
    attrGet _ = getDOMNodeIteratorFilter
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "pointer-before-reference-node"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable]

getDOMNodeIteratorPointerBeforeReferenceNode :: (MonadIO m, DOMNodeIteratorK o) => o -> m Bool
getDOMNodeIteratorPointerBeforeReferenceNode obj = liftIO $ getObjectPropertyBool obj "pointer-before-reference-node"

data DOMNodeIteratorPointerBeforeReferenceNodePropertyInfo
instance AttrInfo DOMNodeIteratorPointerBeforeReferenceNodePropertyInfo where
    type AttrAllowedOps DOMNodeIteratorPointerBeforeReferenceNodePropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMNodeIteratorPointerBeforeReferenceNodePropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMNodeIteratorPointerBeforeReferenceNodePropertyInfo = DOMNodeIteratorK
    type AttrGetType DOMNodeIteratorPointerBeforeReferenceNodePropertyInfo = Bool
    type AttrLabel DOMNodeIteratorPointerBeforeReferenceNodePropertyInfo = "DOMNodeIterator::pointer-before-reference-node"
    attrGet _ = getDOMNodeIteratorPointerBeforeReferenceNode
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "reference-node"
   -- Type: TInterface "WebKit" "DOMNode"
   -- Flags: [PropertyReadable]

getDOMNodeIteratorReferenceNode :: (MonadIO m, DOMNodeIteratorK o) => o -> m DOMNode
getDOMNodeIteratorReferenceNode obj = liftIO $ getObjectPropertyObject obj "reference-node" DOMNode

data DOMNodeIteratorReferenceNodePropertyInfo
instance AttrInfo DOMNodeIteratorReferenceNodePropertyInfo where
    type AttrAllowedOps DOMNodeIteratorReferenceNodePropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMNodeIteratorReferenceNodePropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMNodeIteratorReferenceNodePropertyInfo = DOMNodeIteratorK
    type AttrGetType DOMNodeIteratorReferenceNodePropertyInfo = DOMNode
    type AttrLabel DOMNodeIteratorReferenceNodePropertyInfo = "DOMNodeIterator::reference-node"
    attrGet _ = getDOMNodeIteratorReferenceNode
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "root"
   -- Type: TInterface "WebKit" "DOMNode"
   -- Flags: [PropertyReadable]

getDOMNodeIteratorRoot :: (MonadIO m, DOMNodeIteratorK o) => o -> m DOMNode
getDOMNodeIteratorRoot obj = liftIO $ getObjectPropertyObject obj "root" DOMNode

data DOMNodeIteratorRootPropertyInfo
instance AttrInfo DOMNodeIteratorRootPropertyInfo where
    type AttrAllowedOps DOMNodeIteratorRootPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMNodeIteratorRootPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMNodeIteratorRootPropertyInfo = DOMNodeIteratorK
    type AttrGetType DOMNodeIteratorRootPropertyInfo = DOMNode
    type AttrLabel DOMNodeIteratorRootPropertyInfo = "DOMNodeIterator::root"
    attrGet _ = getDOMNodeIteratorRoot
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "what-to-show"
   -- Type: TBasicType TUInt64
   -- Flags: [PropertyReadable]

getDOMNodeIteratorWhatToShow :: (MonadIO m, DOMNodeIteratorK o) => o -> m Word64
getDOMNodeIteratorWhatToShow obj = liftIO $ getObjectPropertyUInt64 obj "what-to-show"

data DOMNodeIteratorWhatToShowPropertyInfo
instance AttrInfo DOMNodeIteratorWhatToShowPropertyInfo where
    type AttrAllowedOps DOMNodeIteratorWhatToShowPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMNodeIteratorWhatToShowPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMNodeIteratorWhatToShowPropertyInfo = DOMNodeIteratorK
    type AttrGetType DOMNodeIteratorWhatToShowPropertyInfo = Word64
    type AttrLabel DOMNodeIteratorWhatToShowPropertyInfo = "DOMNodeIterator::what-to-show"
    attrGet _ = getDOMNodeIteratorWhatToShow
    attrSet _ = undefined
    attrConstruct _ = undefined

type instance AttributeList DOMNodeIterator = DOMNodeIteratorAttributeList
type DOMNodeIteratorAttributeList = ('[ '("core-object", DOMObjectCoreObjectPropertyInfo), '("expand-entity-references", DOMNodeIteratorExpandEntityReferencesPropertyInfo), '("filter", DOMNodeIteratorFilterPropertyInfo), '("pointer-before-reference-node", DOMNodeIteratorPointerBeforeReferenceNodePropertyInfo), '("reference-node", DOMNodeIteratorReferenceNodePropertyInfo), '("root", DOMNodeIteratorRootPropertyInfo), '("what-to-show", DOMNodeIteratorWhatToShowPropertyInfo)] :: [(Symbol, *)])

type instance SignalList DOMNodeIterator = DOMNodeIteratorSignalList
type DOMNodeIteratorSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])

-- method DOMNodeIterator::detach
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMNodeIterator", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMNodeIterator", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_node_iterator_detach" webkit_dom_node_iterator_detach :: 
    Ptr DOMNodeIterator ->                  -- _obj : TInterface "WebKit" "DOMNodeIterator"
    IO ()


dOMNodeIteratorDetach ::
    (MonadIO m, DOMNodeIteratorK a) =>
    a ->                                    -- _obj
    m ()
dOMNodeIteratorDetach _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    webkit_dom_node_iterator_detach _obj'
    touchManagedPtr _obj
    return ()

-- method DOMNodeIterator::get_expand_entity_references
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMNodeIterator", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMNodeIterator", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_node_iterator_get_expand_entity_references" webkit_dom_node_iterator_get_expand_entity_references :: 
    Ptr DOMNodeIterator ->                  -- _obj : TInterface "WebKit" "DOMNodeIterator"
    IO CInt


dOMNodeIteratorGetExpandEntityReferences ::
    (MonadIO m, DOMNodeIteratorK a) =>
    a ->                                    -- _obj
    m Bool
dOMNodeIteratorGetExpandEntityReferences _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_node_iterator_get_expand_entity_references _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method DOMNodeIterator::get_filter
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMNodeIterator", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMNodeIterator", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit" "DOMNodeFilter"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_node_iterator_get_filter" webkit_dom_node_iterator_get_filter :: 
    Ptr DOMNodeIterator ->                  -- _obj : TInterface "WebKit" "DOMNodeIterator"
    IO (Ptr DOMNodeFilter)


dOMNodeIteratorGetFilter ::
    (MonadIO m, DOMNodeIteratorK a) =>
    a ->                                    -- _obj
    m DOMNodeFilter
dOMNodeIteratorGetFilter _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_node_iterator_get_filter _obj'
    checkUnexpectedReturnNULL "webkit_dom_node_iterator_get_filter" result
    result' <- (wrapObject DOMNodeFilter) result
    touchManagedPtr _obj
    return result'

-- method DOMNodeIterator::get_pointer_before_reference_node
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMNodeIterator", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMNodeIterator", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_node_iterator_get_pointer_before_reference_node" webkit_dom_node_iterator_get_pointer_before_reference_node :: 
    Ptr DOMNodeIterator ->                  -- _obj : TInterface "WebKit" "DOMNodeIterator"
    IO CInt


dOMNodeIteratorGetPointerBeforeReferenceNode ::
    (MonadIO m, DOMNodeIteratorK a) =>
    a ->                                    -- _obj
    m Bool
dOMNodeIteratorGetPointerBeforeReferenceNode _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_node_iterator_get_pointer_before_reference_node _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method DOMNodeIterator::get_reference_node
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMNodeIterator", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMNodeIterator", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit" "DOMNode"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_node_iterator_get_reference_node" webkit_dom_node_iterator_get_reference_node :: 
    Ptr DOMNodeIterator ->                  -- _obj : TInterface "WebKit" "DOMNodeIterator"
    IO (Ptr DOMNode)


dOMNodeIteratorGetReferenceNode ::
    (MonadIO m, DOMNodeIteratorK a) =>
    a ->                                    -- _obj
    m DOMNode
dOMNodeIteratorGetReferenceNode _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_node_iterator_get_reference_node _obj'
    checkUnexpectedReturnNULL "webkit_dom_node_iterator_get_reference_node" result
    result' <- (newObject DOMNode) result
    touchManagedPtr _obj
    return result'

-- method DOMNodeIterator::get_root
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMNodeIterator", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMNodeIterator", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit" "DOMNode"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_node_iterator_get_root" webkit_dom_node_iterator_get_root :: 
    Ptr DOMNodeIterator ->                  -- _obj : TInterface "WebKit" "DOMNodeIterator"
    IO (Ptr DOMNode)


dOMNodeIteratorGetRoot ::
    (MonadIO m, DOMNodeIteratorK a) =>
    a ->                                    -- _obj
    m DOMNode
dOMNodeIteratorGetRoot _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_node_iterator_get_root _obj'
    checkUnexpectedReturnNULL "webkit_dom_node_iterator_get_root" result
    result' <- (newObject DOMNode) result
    touchManagedPtr _obj
    return result'

-- method DOMNodeIterator::get_what_to_show
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMNodeIterator", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMNodeIterator", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUInt64
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_node_iterator_get_what_to_show" webkit_dom_node_iterator_get_what_to_show :: 
    Ptr DOMNodeIterator ->                  -- _obj : TInterface "WebKit" "DOMNodeIterator"
    IO Word64


dOMNodeIteratorGetWhatToShow ::
    (MonadIO m, DOMNodeIteratorK a) =>
    a ->                                    -- _obj
    m Word64
dOMNodeIteratorGetWhatToShow _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_node_iterator_get_what_to_show _obj'
    touchManagedPtr _obj
    return result

-- method DOMNodeIterator::next_node
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMNodeIterator", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMNodeIterator", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit" "DOMNode"
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_node_iterator_next_node" webkit_dom_node_iterator_next_node :: 
    Ptr DOMNodeIterator ->                  -- _obj : TInterface "WebKit" "DOMNodeIterator"
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr DOMNode)


dOMNodeIteratorNextNode ::
    (MonadIO m, DOMNodeIteratorK a) =>
    a ->                                    -- _obj
    m DOMNode
dOMNodeIteratorNextNode _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    onException (do
        result <- propagateGError $ webkit_dom_node_iterator_next_node _obj'
        checkUnexpectedReturnNULL "webkit_dom_node_iterator_next_node" result
        result' <- (newObject DOMNode) result
        touchManagedPtr _obj
        return result'
     ) (do
        return ()
     )

-- method DOMNodeIterator::previous_node
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMNodeIterator", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMNodeIterator", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit" "DOMNode"
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_node_iterator_previous_node" webkit_dom_node_iterator_previous_node :: 
    Ptr DOMNodeIterator ->                  -- _obj : TInterface "WebKit" "DOMNodeIterator"
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr DOMNode)


dOMNodeIteratorPreviousNode ::
    (MonadIO m, DOMNodeIteratorK a) =>
    a ->                                    -- _obj
    m DOMNode
dOMNodeIteratorPreviousNode _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    onException (do
        result <- propagateGError $ webkit_dom_node_iterator_previous_node _obj'
        checkUnexpectedReturnNULL "webkit_dom_node_iterator_previous_node" result
        result' <- (newObject DOMNode) result
        touchManagedPtr _obj
        return result'
     ) (do
        return ()
     )