{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.XPathNSResolver
       (lookupNamespaceURI, lookupNamespaceURI_, lookupNamespaceURIUnsafe,
        lookupNamespaceURIUnchecked, XPathNSResolver(..),
        gTypeXPathNSResolver)
       where
import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, realToFrac, fmap, Show, Read, Eq, Ord, Maybe(..))
import qualified Prelude (error)
import Data.Typeable (Typeable)
import Data.Traversable (mapM)
import Language.Javascript.JSaddle (JSM(..), JSVal(..), JSString, strictEqual, toJSVal, valToStr, valToNumber, valToBool, js, jss, jsf, jsg, function, asyncFunction, new, array, jsUndefined, (!), (!!))
import Data.Int (Int64)
import Data.Word (Word, Word64)
import JSDOM.Types
import Control.Applicative ((<$>))
import Control.Monad (void)
import Control.Lens.Operators ((^.))
import JSDOM.EventTargetClosures (EventName, unsafeEventName, unsafeEventNameAsync)
import JSDOM.Enums

-- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathNSResolver.lookupNamespaceURI Mozilla XPathNSResolver.lookupNamespaceURI documentation> 
lookupNamespaceURI ::
                   (MonadDOM m, ToJSString prefix, FromJSString result) =>
                     XPathNSResolver -> Maybe prefix -> m (Maybe result)
lookupNamespaceURI :: forall (m :: * -> *) prefix result.
(MonadDOM m, ToJSString prefix, FromJSString result) =>
XPathNSResolver -> Maybe prefix -> m (Maybe result)
lookupNamespaceURI XPathNSResolver
self Maybe prefix
prefix
  = DOM (Maybe result) -> m (Maybe result)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((XPathNSResolver
self XPathNSResolver
-> Getting (JSM JSVal) XPathNSResolver (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"lookupNamespaceURI" [Maybe prefix -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe prefix
prefix]) JSM JSVal -> (JSVal -> DOM (Maybe result)) -> DOM (Maybe result)
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         JSVal -> DOM (Maybe result)
forall a. FromJSString a => JSVal -> JSM (Maybe a)
fromMaybeJSString)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathNSResolver.lookupNamespaceURI Mozilla XPathNSResolver.lookupNamespaceURI documentation> 
lookupNamespaceURI_ ::
                    (MonadDOM m, ToJSString prefix) =>
                      XPathNSResolver -> Maybe prefix -> m ()
lookupNamespaceURI_ :: forall (m :: * -> *) prefix.
(MonadDOM m, ToJSString prefix) =>
XPathNSResolver -> Maybe prefix -> m ()
lookupNamespaceURI_ XPathNSResolver
self Maybe prefix
prefix
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (XPathNSResolver
self XPathNSResolver
-> Getting (JSM JSVal) XPathNSResolver (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"lookupNamespaceURI" [Maybe prefix -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe prefix
prefix]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathNSResolver.lookupNamespaceURI Mozilla XPathNSResolver.lookupNamespaceURI documentation> 
lookupNamespaceURIUnsafe ::
                         (MonadDOM m, ToJSString prefix, HasCallStack,
                          FromJSString result) =>
                           XPathNSResolver -> Maybe prefix -> m result
lookupNamespaceURIUnsafe :: forall (m :: * -> *) prefix result.
(MonadDOM m, ToJSString prefix, HasCallStack,
 FromJSString result) =>
XPathNSResolver -> Maybe prefix -> m result
lookupNamespaceURIUnsafe XPathNSResolver
self Maybe prefix
prefix
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((XPathNSResolver
self XPathNSResolver
-> Getting (JSM JSVal) XPathNSResolver (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"lookupNamespaceURI" [Maybe prefix -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe prefix
prefix]) JSM JSVal -> (JSVal -> JSM (Maybe result)) -> JSM (Maybe result)
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
          JSVal -> JSM (Maybe result)
forall a. FromJSString a => JSVal -> JSM (Maybe a)
fromMaybeJSString)
         JSM (Maybe result) -> (Maybe result -> DOM result) -> DOM result
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= DOM result -> (result -> DOM result) -> Maybe result -> DOM result
forall b a. b -> (a -> b) -> Maybe a -> b
maybe (String -> DOM result
forall a. HasCallStack => String -> a
Prelude.error String
"Nothing to return") result -> DOM result
forall a. a -> JSM a
forall (m :: * -> *) a. Monad m => a -> m a
return)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathNSResolver.lookupNamespaceURI Mozilla XPathNSResolver.lookupNamespaceURI documentation> 
lookupNamespaceURIUnchecked ::
                            (MonadDOM m, ToJSString prefix, FromJSString result) =>
                              XPathNSResolver -> Maybe prefix -> m result
lookupNamespaceURIUnchecked :: forall (m :: * -> *) prefix result.
(MonadDOM m, ToJSString prefix, FromJSString result) =>
XPathNSResolver -> Maybe prefix -> m result
lookupNamespaceURIUnchecked XPathNSResolver
self Maybe prefix
prefix
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((XPathNSResolver
self XPathNSResolver
-> Getting (JSM JSVal) XPathNSResolver (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"lookupNamespaceURI" [Maybe prefix -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe prefix
prefix]) JSM JSVal -> (JSVal -> DOM result) -> DOM result
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         JSVal -> DOM result
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)