Interface ClassInjector.UsingReflection.Dispatcher

    • Field Detail

      • UNDEFINED

        static final Class<?> UNDEFINED
        Indicates a class that is currently not defined.
    • Method Detail

      • getClassLoadingLock

        Object getClassLoadingLock​(ClassLoader classLoader,
                                   String name)
        Returns the lock for loading the specified class.
        Parameters:
        classLoader - the class loader to inject the class into.
        name - The name of the class.
        Returns:
        The lock for loading this class.
      • findClass

        Class<?> findClass​(ClassLoader classLoader,
                           String name)
        Looks up a class from the given class loader.
        Parameters:
        classLoader - The class loader for which a class should be located.
        name - The binary name of the class that should be located.
        Returns:
        The class for the binary name or null if no such class is defined for the provided class loader.
      • defineClass

        Class<?> defineClass​(ClassLoader classLoader,
                             String name,
                             byte[] binaryRepresentation,
                             ProtectionDomain protectionDomain)
        Defines a class for the given class loader.
        Parameters:
        classLoader - The class loader for which a new class should be defined.
        name - The binary name of the class that should be defined.
        binaryRepresentation - The binary representation of the class.
        protectionDomain - The protection domain for the defined class.
        Returns:
        The defined, loaded class.
      • getPackage

        Package getPackage​(ClassLoader classLoader,
                           String name)
        Looks up a package from a class loader.
        Parameters:
        classLoader - The class loader to query.
        name - The binary name of the package.
        Returns:
        The package for the given name as defined by the provided class loader or null if no such package exists.
      • definePackage

        Package definePackage​(ClassLoader classLoader,
                              String name,
                              String specificationTitle,
                              String specificationVersion,
                              String specificationVendor,
                              String implementationTitle,
                              String implementationVersion,
                              String implementationVendor,
                              URL sealBase)
        Defines a package for the given class loader.
        Parameters:
        classLoader - The class loader for which a package is to be defined.
        name - The binary name of the package.
        specificationTitle - The specification title of the package or null if no specification title exists.
        specificationVersion - The specification version of the package or null if no specification version exists.
        specificationVendor - The specification vendor of the package or null if no specification vendor exists.
        implementationTitle - The implementation title of the package or null if no implementation title exists.
        implementationVersion - The implementation version of the package or null if no implementation version exists.
        implementationVendor - The implementation vendor of the package or null if no implementation vendor exists.
        sealBase - The seal base URL or null if the package should not be sealed.
        Returns:
        The defined package.