Class ClassScanningResult
java.lang.Object
org.daiitech.naftah.utils.reflect.ClassScanningResult
- All Implemented Interfaces:
Serializable
Holds the results of a classpath or module scanning operation.
This class maintains collections of discovered classes, their qualifiers, loaders, and associated functions for use within the runtime or interpreter.
The data includes:
- Mapping of class names to their
ClassLoader - Sets of class qualifiers, including Arabic-qualified names
- Maps of qualified class names to
Classobjects - Filtered maps for accessible and instantiable classes
- Collections of JVM and builtin functions grouped by qualified call names
- Author:
- Chakib Daii
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionSubset of classes that are accessible for reflection or usage.Set of fully qualified class names in Arabic notation mapped to original java qualified class name.private Map<String,List<BuiltinFunction>> Maps qualified method or function names to lists of builtin functions.Maps fully qualified class names to their corresponding Class objects.private Map<String,ClassLoader> Maps class names to their respective ClassLoader instances.Set of fully qualified class names discovered.Subset of classes that can be instantiated (e.g., not abstract).private Map<String,List<JvmClassInitializer>> Maps qualified Java class names to lists ofJvmClassInitializerconstructors.private Map<String,List<JvmFunction>> Maps qualified method or function names to lists of JVM functions (methods).private static final long -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate voidCustom deserialization logic forClassScanningResult.voidsetAccessibleClasses(Map<String, Class<?>> accessibleClasses) voidsetArabicClassQualifiers(Map<String, String> arabicClassQualifiers) voidsetBuiltinFunctions(Map<String, List<BuiltinFunction>> builtinFunctions) voidsetClasses(Map<String, Class<?>> classes) voidsetClassNames(Map<String, ClassLoader> classNames) voidsetClassQualifiers(Set<String> classQualifiers) voidsetInstantiableClasses(Map<String, Class<?>> instantiableClasses) voidsetJvmClassInitializers(Map<String, List<JvmClassInitializer>> jvmClassInitializers) voidsetJvmFunctions(Map<String, List<JvmFunction>> jvmFunctions) private voidCustom serialization logic forClassScanningResult.
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
classNames
Maps class names to their respective ClassLoader instances. -
classQualifiers
Set of fully qualified class names discovered. -
arabicClassQualifiers
Set of fully qualified class names in Arabic notation mapped to original java qualified class name. -
classes
Maps fully qualified class names to their corresponding Class objects. -
accessibleClasses
Subset of classes that are accessible for reflection or usage. -
instantiableClasses
Subset of classes that can be instantiated (e.g., not abstract). -
jvmFunctions
Maps qualified method or function names to lists of JVM functions (methods). -
jvmClassInitializers
Maps qualified Java class names to lists ofJvmClassInitializerconstructors. -
builtinFunctions
Maps qualified method or function names to lists of builtin functions.
-
-
Constructor Details
-
ClassScanningResult
public ClassScanningResult()
-
-
Method Details
-
getClassNames
-
setClassNames
-
getClassQualifiers
-
setClassQualifiers
-
getArabicClassQualifiers
-
setArabicClassQualifiers
-
getClasses
-
setClasses
-
getAccessibleClasses
-
setAccessibleClasses
-
getInstantiableClasses
-
setInstantiableClasses
-
getJvmFunctions
-
setJvmFunctions
-
getJvmClassInitializers
-
setJvmClassInitializers
-
getBuiltinFunctions
-
setBuiltinFunctions
-
writeObject
Custom serialization logic forClassScanningResult.Since
URLClassLoaderand otherClassLoaderinstances are not serializable, this method converts eachURLClassLoaderinclassNamesto a list of its URL strings and writes that map to the stream.- Parameters:
out- the ObjectOutputStream to write the object to- Throws:
IOException- if an I/O error occurs during serialization
-
readObject
Custom deserialization logic forClassScanningResult.Reads the map of class names to URL strings from the stream and reconstructs
URLClassLoaderinstances for theclassNamesmap.- Parameters:
in- the ObjectInputStream to read the object from- Throws:
IOException- if an I/O error occurs during deserializationClassNotFoundException- if a class required during deserialization cannot be found
-