jvm-0.5.0: Call JVM methods from Haskell.
Safe HaskellNone
LanguageHaskell2010

Language.Java.Internal

Description

Internal functions to invoke JNI methods

The functions in this module avoid using Coercible so they can be reused in interfaces which use other ways to convert between Haskell and Java values.

Synopsis
  • newJ :: forall sym ty. (ty ~ 'Class sym, SingI ty) => [SomeSing JType] -> [JValue] -> IO (J ty)
  • callToJValue :: forall ty1 k. (IsReferenceType ty1, SingI ty1) => Sing (k :: JType) -> J ty1 -> String -> [SomeSing JType] -> [JValue] -> IO JValue
  • callStaticToJValue :: Sing (k :: JType) -> String -> String -> [SomeSing JType] -> [JValue] -> IO JValue
  • getStaticFieldAsJValue :: Sing (ty :: JType) -> String -> String -> IO JValue
  • getClass :: IsReferenceType ty => Sing (ty :: JType) -> IO JClass
  • setGetClassFunction :: (forall ty. IsReferenceType ty => Sing (ty :: JType) -> IO JClass) -> IO ()

Documentation

newJ Source #

Arguments

:: forall sym ty. (ty ~ 'Class sym, SingI ty) 
=> [SomeSing JType]

Singletons of argument types

-> [JValue] 
-> IO (J ty) 

callToJValue Source #

Arguments

:: forall ty1 k. (IsReferenceType ty1, SingI ty1) 
=> Sing (k :: JType) 
-> J ty1

Any object

-> String

Method name

-> [SomeSing JType]

Singletons of argument types

-> [JValue]

Arguments

-> IO JValue 

callStaticToJValue Source #

Arguments

:: Sing (k :: JType) 
-> String

Class name

-> String

Method name

-> [SomeSing JType]

Singletons of argument types

-> [JValue]

Arguments

-> IO JValue 

getStaticFieldAsJValue Source #

Arguments

:: Sing (ty :: JType) 
-> String

Class name

-> String

Static field name

-> IO JValue 

getClass :: IsReferenceType ty => Sing (ty :: JType) -> IO JClass Source #

Yields a class referece. It behaves as findClass unless setGetClassFunction is used.

setGetClassFunction :: (forall ty. IsReferenceType ty => Sing (ty :: JType) -> IO JClass) -> IO () Source #

Sets the function to use for loading classes.

findClass is used by default.