| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
JVM.Data.Abstract.Name
Synopsis
- newtype PackageName = PackageName [Text]
- parsePackageName :: Text -> PackageName
- newtype ClassName = ClassName Text
- parseClassName :: Text -> ClassName
- data QualifiedClassName = QualifiedClassName PackageName ClassName
- parseQualifiedClassName :: Text -> QualifiedClassName
- toInternalName :: QualifiedClassName -> Text
- suitableFilePath :: QualifiedClassName -> FilePath
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
parsePackageName :: Text -> PackageName Source #
Parse a PackageName from a Text
>>>parsePackageName "java.lang"PackageName ["java","lang"]
>>>parsePackageName ""PackageName []
A JVM class name
Instances
| Data ClassName Source # | |
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 # | |
| Eq ClassName Source # | |
| Ord ClassName Source # | |
data QualifiedClassName Source #
Constructors
| QualifiedClassName PackageName ClassName |
Instances
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"