Class ClassLoadingStrategy.Default.WrappingDispatcher

    • Field Detail

      • CHILD_FIRST

        private static final boolean CHILD_FIRST
        Indicates that a child first loading strategy should be attempted.
        See Also:
        Constant Field Values
      • PARENT_FIRST

        private static final boolean PARENT_FIRST
        Indicates that a parent first loading strategy should be attempted.
        See Also:
        Constant Field Values
      • protectionDomain

        @ValueHandling(REVERSE_NULLABILITY)
        private final java.security.ProtectionDomain protectionDomain
        The protection domain to apply or null if no protection domain is set.
      • packageDefinitionStrategy

        private final PackageDefinitionStrategy packageDefinitionStrategy
        The package definer to be used for querying information on package information.
      • childFirst

        private final boolean childFirst
        true if the created class loader should apply child-first semantics.
      • forbidExisting

        private final boolean forbidExisting
        Determines if an exception should be thrown when attempting to load a type that already exists.
      • sealed

        private final boolean sealed
        true if the class loader should be sealed.
    • Constructor Detail

      • WrappingDispatcher

        protected WrappingDispatcher​(ByteArrayClassLoader.PersistenceHandler persistenceHandler,
                                     boolean childFirst)
        Creates a new wrapping dispatcher with a default protection domain and a default access control context.
        Parameters:
        persistenceHandler - The persistence handler to apply.
        childFirst - true if the created class loader should apply child-first semantics.
      • WrappingDispatcher

        private WrappingDispatcher​(java.security.ProtectionDomain protectionDomain,
                                   PackageDefinitionStrategy packageDefinitionStrategy,
                                   ByteArrayClassLoader.PersistenceHandler persistenceHandler,
                                   boolean childFirst,
                                   boolean forbidExisting,
                                   boolean sealed)
        Creates a new protection domain specific class loading wrapper.
        Parameters:
        protectionDomain - The protection domain to apply or null if no protection domain is set.
        packageDefinitionStrategy - The package definer to be used for querying information on package information.
        persistenceHandler - The persistence handler to apply.
        childFirst - true if the created class loader should apply child-first semantics.
        forbidExisting - Determines if an exception should be thrown when attempting to load a type that already exists.
        sealed - true if the class loader should be sealed.
    • Method Detail

      • load

        public java.util.Map<TypeDescription,​java.lang.Class<?>> load​(java.lang.ClassLoader classLoader,
                                                                            java.util.Map<TypeDescription,​byte[]> types)
        Loads a given collection of classes given their binary representation.
        Specified by:
        load in interface ClassLoadingStrategy<java.lang.ClassLoader>
        Parameters:
        classLoader - The class loader to used for loading the classes.
        types - Byte array representations of the types to be loaded mapped by their descriptions, where an iteration order defines an order in which they are supposed to be loaded, if relevant.
        Returns:
        A collection of the loaded classes which will be initialized in the iteration order of the returned collection.
      • with

        public ClassLoadingStrategy.Configurable<java.lang.ClassLoader> with​(java.security.ProtectionDomain protectionDomain)
        Overrides the implicitly set default ProtectionDomain with an explicit one.
        Specified by:
        with in interface ClassLoadingStrategy.Configurable<java.lang.ClassLoader>
        Parameters:
        protectionDomain - The protection domain to apply or null if no protection domain is set.
        Returns:
        This class loading strategy with an explicitly set ProtectionDomain.
      • with

        public ClassLoadingStrategy.Configurable<java.lang.ClassLoader> with​(PackageDefinitionStrategy packageDefinitionStrategy)
        Defines the supplied package definition strategy to be used for defining packages.
        Specified by:
        with in interface ClassLoadingStrategy.Configurable<java.lang.ClassLoader>
        Parameters:
        packageDefinitionStrategy - The package definer to be used.
        Returns:
        A version of this class loading strategy that applies the supplied package definition strategy.
      • allowExistingTypes

        public ClassLoadingStrategy.Configurable<java.lang.ClassLoader> allowExistingTypes()
        Determines if this class loading strategy should not throw an exception when attempting to load a class that was already loaded. In this case, the already loaded class is used instead of the generated class.
        Specified by:
        allowExistingTypes in interface ClassLoadingStrategy.Configurable<java.lang.ClassLoader>
        Returns:
        A version of this class loading strategy that does not throw an exception when a class is already loaded.
      • opened

        public ClassLoadingStrategy.Configurable<java.lang.ClassLoader> opened()
        With an opened class loading strategy, it is assured that types can be added to the class loader, either by indirect injection using this strategy or by creating a class loader that explicitly supports injection.
        Specified by:
        opened in interface ClassLoadingStrategy.Configurable<java.lang.ClassLoader>
        Returns:
        A version of this class loading strategy that opens for future injections into a class loader.