{-# LANGUAGE DerivingVia #-} {-# LANGUAGE DeriveGeneric #-} module Language.Java.Classfile (Classfile(..)) where import GHC.Generics (Generic, Generically(Generically)) import Language.Java.Classfile.Version (Version) import Language.Java.Classfile.Magic (Magic) import Language.Java.Classfile.Extractable (Extractable) import Language.Java.Classfile.ConstantPool (ConstantPool) import Language.Java.Classfile.Flags (Flags) import Language.Java.Classfile.ClassFlag (ClassFlag) import Language.Java.Classfile.ConstantPool.References (ClassReference) import Language.Java.Classfile.Interfaces (Interfaces) import Language.Java.Classfile.Fields (Fields) import Language.Java.Classfile.Methods (Methods) import Language.Java.Classfile.Attributes (Attributes) data Classfile = Classfile { magic :: Magic , version :: Version , constantPool :: ConstantPool , accessFlags :: Flags ClassFlag , this :: ClassReference , super :: ClassReference , interfaces :: Interfaces , fields :: Fields , methods :: Methods , attributes :: Attributes } deriving stock (Show, Generic) deriving Extractable via Generically Classfile