| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
JVM.Data.Abstract.Builder
Description
Provides a monadic interface for building class files in a high-level format.
Synopsis
- data ClassBuilder (m :: k) a where
- ModifyClass :: forall {k} (m :: k). (ClassFile -> ClassFile) -> ClassBuilder m ()
- GetClass :: forall {k} (m :: k). ClassBuilder m ClassFile
- getClass :: forall {k} (es :: [Effect]). (HasCallStack, (ClassBuilder :: (Type -> Type) -> Type -> Type) :> es) => Eff es ClassFile
- modifyClass :: forall {k} (es :: [Effect]). (HasCallStack, (ClassBuilder :: (Type -> Type) -> Type -> Type) :> es) => (ClassFile -> ClassFile) -> Eff es ()
- addAccessFlag :: forall (r :: [Effect]). (ClassBuilder :: (Type -> Type) -> Type -> Type) :> r => ClassAccessFlag -> Eff r ()
- setName :: forall (r :: [Effect]). (ClassBuilder :: (Type -> Type) -> Type -> Type) :> r => QualifiedClassName -> Eff r ()
- getName :: forall (r :: [Effect]). (ClassBuilder :: (Type -> Type) -> Type -> Type) :> r => Eff r QualifiedClassName
- setVersion :: forall (r :: [Effect]). (ClassBuilder :: (Type -> Type) -> Type -> Type) :> r => JVMVersion -> Eff r ()
- setSuperClass :: forall (r :: [Effect]). (ClassBuilder :: (Type -> Type) -> Type -> Type) :> r => QualifiedClassName -> Eff r ()
- addInterface :: forall (r :: [Effect]). (ClassBuilder :: (Type -> Type) -> Type -> Type) :> r => QualifiedClassName -> Eff r ()
- addField :: forall (r :: [Effect]). (ClassBuilder :: (Type -> Type) -> Type -> Type) :> r => ClassFileField -> Eff r ()
- addMethod :: forall (r :: [Effect]). (ClassBuilder :: (Type -> Type) -> Type -> Type) :> r => ClassFileMethod -> Eff r ()
- addAttribute :: forall (r :: [Effect]). (ClassBuilder :: (Type -> Type) -> Type -> Type) :> r => ClassFileAttribute -> Eff r ()
- addBootstrapMethod :: forall (r :: [Effect]). (ClassBuilder :: (Type -> Type) -> Type -> Type) :> r => BootstrapMethod -> Eff r ()
- dummyClass :: QualifiedClassName -> JVMVersion -> ClassFile
- classBuilderToState :: forall (r :: [Effect]) a. State ClassFile :> r => Eff ((ClassBuilder :: (Type -> Type) -> Type -> Type) ': r) a -> Eff r a
- runClassBuilder :: forall (r :: [(Type -> Type) -> Type -> Type]) a. QualifiedClassName -> JVMVersion -> Eff ((ClassBuilder :: (Type -> Type) -> Type -> Type) ': r) a -> Eff r (ClassFile, a)
Documentation
data ClassBuilder (m :: k) a where Source #
Constructors
| ModifyClass :: forall {k} (m :: k). (ClassFile -> ClassFile) -> ClassBuilder m () | |
| GetClass :: forall {k} (m :: k). ClassBuilder m ClassFile |
Instances
| type DispatchOf (ClassBuilder :: (Type -> Type) -> Type -> Type) Source # | |
Defined in JVM.Data.Abstract.Builder | |
getClass :: forall {k} (es :: [Effect]). (HasCallStack, (ClassBuilder :: (Type -> Type) -> Type -> Type) :> es) => Eff es ClassFile Source #
Perform the operation GetClass.
modifyClass :: forall {k} (es :: [Effect]). (HasCallStack, (ClassBuilder :: (Type -> Type) -> Type -> Type) :> es) => (ClassFile -> ClassFile) -> Eff es () Source #
Perform the operation ModifyClass.
addAccessFlag :: forall (r :: [Effect]). (ClassBuilder :: (Type -> Type) -> Type -> Type) :> r => ClassAccessFlag -> Eff r () Source #
setName :: forall (r :: [Effect]). (ClassBuilder :: (Type -> Type) -> Type -> Type) :> r => QualifiedClassName -> Eff r () Source #
getName :: forall (r :: [Effect]). (ClassBuilder :: (Type -> Type) -> Type -> Type) :> r => Eff r QualifiedClassName Source #
setVersion :: forall (r :: [Effect]). (ClassBuilder :: (Type -> Type) -> Type -> Type) :> r => JVMVersion -> Eff r () Source #
setSuperClass :: forall (r :: [Effect]). (ClassBuilder :: (Type -> Type) -> Type -> Type) :> r => QualifiedClassName -> Eff r () Source #
addInterface :: forall (r :: [Effect]). (ClassBuilder :: (Type -> Type) -> Type -> Type) :> r => QualifiedClassName -> Eff r () Source #
addField :: forall (r :: [Effect]). (ClassBuilder :: (Type -> Type) -> Type -> Type) :> r => ClassFileField -> Eff r () Source #
addMethod :: forall (r :: [Effect]). (ClassBuilder :: (Type -> Type) -> Type -> Type) :> r => ClassFileMethod -> Eff r () Source #
addAttribute :: forall (r :: [Effect]). (ClassBuilder :: (Type -> Type) -> Type -> Type) :> r => ClassFileAttribute -> Eff r () Source #
addBootstrapMethod :: forall (r :: [Effect]). (ClassBuilder :: (Type -> Type) -> Type -> Type) :> r => BootstrapMethod -> Eff r () Source #
dummyClass :: QualifiedClassName -> JVMVersion -> ClassFile Source #
classBuilderToState :: forall (r :: [Effect]) a. State ClassFile :> r => Eff ((ClassBuilder :: (Type -> Type) -> Type -> Type) ': r) a -> Eff r a Source #
runClassBuilder :: forall (r :: [(Type -> Type) -> Type -> Type]) a. QualifiedClassName -> JVMVersion -> Eff ((ClassBuilder :: (Type -> Type) -> Type -> Type) ': r) a -> Eff r (ClassFile, a) Source #