h2jvm
Safe HaskellNone
LanguageGHC2021

JVM.Data.Abstract.Name

Synopsis

Documentation

newtype PackageName Source #

A JVM package name This is defined as a potentially empty list of identifiers, which would be separated by dots in the source code

Constructors

PackageName [Text] 

Instances

Instances details
Data PackageName Source # 
Instance details

Defined in JVM.Data.Abstract.Name

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> PackageName -> c PackageName #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c PackageName #

toConstr :: PackageName -> Constr #

dataTypeOf :: PackageName -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c PackageName) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PackageName) #

gmapT :: (forall b. Data b => b -> b) -> PackageName -> PackageName #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> PackageName -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> PackageName -> r #

gmapQ :: (forall d. Data d => d -> u) -> PackageName -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> PackageName -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> PackageName -> m PackageName #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> PackageName -> m PackageName #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> PackageName -> m PackageName #

Show PackageName Source # 
Instance details

Defined in JVM.Data.Abstract.Name

Eq PackageName Source # 
Instance details

Defined in JVM.Data.Abstract.Name

Ord PackageName Source # 
Instance details

Defined in JVM.Data.Abstract.Name

parsePackageName :: Text -> PackageName Source #

Parse a PackageName from a Text

>>> parsePackageName "java.lang"
PackageName ["java","lang"]
>>> parsePackageName ""
PackageName []

newtype ClassName Source #

A JVM class name

Constructors

ClassName Text 

Instances

Instances details
Data ClassName Source # 
Instance details

Defined in JVM.Data.Abstract.Name

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ClassName -> c ClassName #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ClassName #

toConstr :: ClassName -> Constr #

dataTypeOf :: ClassName -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ClassName) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ClassName) #

gmapT :: (forall b. Data b => b -> b) -> ClassName -> ClassName #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ClassName -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ClassName -> r #

gmapQ :: (forall d. Data d => d -> u) -> ClassName -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ClassName -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ClassName -> m ClassName #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ClassName -> m ClassName #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ClassName -> m ClassName #

Show ClassName Source # 
Instance details

Defined in JVM.Data.Abstract.Name

Eq ClassName Source # 
Instance details

Defined in JVM.Data.Abstract.Name

Ord ClassName Source # 
Instance details

Defined in JVM.Data.Abstract.Name

data QualifiedClassName Source #

Instances

Instances details
Data QualifiedClassName Source # 
Instance details

Defined in JVM.Data.Abstract.Name

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> QualifiedClassName -> c QualifiedClassName #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c QualifiedClassName #

toConstr :: QualifiedClassName -> Constr #

dataTypeOf :: QualifiedClassName -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c QualifiedClassName) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c QualifiedClassName) #

gmapT :: (forall b. Data b => b -> b) -> QualifiedClassName -> QualifiedClassName #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> QualifiedClassName -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> QualifiedClassName -> r #

gmapQ :: (forall d. Data d => d -> u) -> QualifiedClassName -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> QualifiedClassName -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> QualifiedClassName -> m QualifiedClassName #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> QualifiedClassName -> m QualifiedClassName #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> QualifiedClassName -> m QualifiedClassName #

IsString QualifiedClassName Source # 
Instance details

Defined in JVM.Data.Abstract.Name

Show QualifiedClassName Source # 
Instance details

Defined in JVM.Data.Abstract.Name

Eq QualifiedClassName Source # 
Instance details

Defined in JVM.Data.Abstract.Name

Ord QualifiedClassName Source # 
Instance details

Defined in JVM.Data.Abstract.Name

Pretty QualifiedClassName Source # 
Instance details

Defined in JVM.Data.Abstract.Name

parseQualifiedClassName :: Text -> QualifiedClassName Source #

Parse a QualifiedClassName from a Text

>>> parseQualifiedClassName "java.lang.Object"
QualifiedClassName (PackageName ["java","lang"]) (ClassName "Object")
>>> parseQualifiedClassName "Object"
QualifiedClassName (PackageName []) (ClassName "Object")

This function is lenient and will accept invalid class names: >>> parseQualifiedClassName "123invalid" QualifiedClassName (PackageName []) (ClassName "123invalid")

toInternalName :: QualifiedClassName -> Text Source #

Convert a QualifiedClassName to a Text that can be used as an internal JVM name

>>> toInternalName (QualifiedClassName (PackageName ["java","lang"]) (ClassName "Object"))
"java/lang/Object"

suitableFilePath :: QualifiedClassName -> FilePath Source #

Convert a QualifiedClassName to a FilePath that one would expect the class file to be in >>> suitableFilePath "java.lang.Object" "javalangObject.class"

>>> suitableFilePath "Object"
"Object.class"