jvm-binary-0.0.2: A library for reading Java class-files

Copyright(c) Christian Gram Kalhauge 2017
LicenseMIT
Maintainerkalhuage@cs.ucla.edu
Safe HaskellNone
LanguageHaskell2010

Language.JVM.ClassFile

Contents

Description

The class file is described in this module.

Synopsis

Documentation

data ClassFile Source #

A ClassFile as described here.

Instances

Eq ClassFile Source # 
Show ClassFile Source # 
Generic ClassFile Source # 

Associated Types

type Rep ClassFile :: * -> * #

Binary ClassFile Source # 
type Rep ClassFile Source # 
type Rep ClassFile = D1 (MetaData "ClassFile" "Language.JVM.ClassFile" "jvm-binary-0.0.2-GeL1rLcsq7015yP1ec12qb" False) (C1 (MetaCons "ClassFile" PrefixI True) ((:*:) ((:*:) ((:*:) (S1 (MetaSel (Just Symbol "cMagicNumber") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Word32)) (S1 (MetaSel (Just Symbol "cMinorVersion") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Word16))) ((:*:) (S1 (MetaSel (Just Symbol "cMajorVersion") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Word16)) ((:*:) (S1 (MetaSel (Just Symbol "cConstantPool") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 ConstantPool)) (S1 (MetaSel (Just Symbol "cAccessFlags") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (BitSet16 CAccessFlag)))))) ((:*:) ((:*:) (S1 (MetaSel (Just Symbol "cThisClassIndex") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 ConstantRef)) ((:*:) (S1 (MetaSel (Just Symbol "cSuperClassIndex") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 ConstantRef)) (S1 (MetaSel (Just Symbol "cInterfaces'") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (SizedList16 ConstantRef))))) ((:*:) (S1 (MetaSel (Just Symbol "cFields'") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (SizedList16 Field))) ((:*:) (S1 (MetaSel (Just Symbol "cMethods'") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (SizedList16 Method))) (S1 (MetaSel (Just Symbol "cAttributes'") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (SizedList16 Attribute))))))))

cInterfaces :: ClassFile -> [ConstantRef] Source #

Get a list of ConstantRefs to interfaces.

cFields :: ClassFile -> [Field] Source #

Get a list of Fields of a ClassFile.

cMethods :: ClassFile -> [Method] Source #

Get a list of Methods of a ClassFile.

cAttributes :: ClassFile -> [Attribute] Source #

Get a list of Attributes of a ClassFile.

cThisClass :: ConstantPool -> ClassFile -> Maybe Text Source #

Lookup the this class in a ConstantPool

cSuperClass :: ConstantPool -> ClassFile -> Maybe Text Source #

Lookup the super class in the ConstantPool

Attributes

cBootstrapMethods :: ConstantPool -> ClassFile -> Maybe (Either String BootstrapMethods) Source #

Fetch the BootstrapMethods attribute. There can only one be one exceptions attribute on a class-file.