saker.nest Documentation TaskDoc JavaDoc Packages
public interface NestBundleClassLoader
Interface implemented by ClassLoaders that load classes from bundles.

This interface is implemented by all class loaders which load classes from bundles of the Nest repository. You can retrieve an instance of it by using the following:

 NestBundleClassLoader nestcl = (NestBundleClassLoader) this.getClass().getClassLoader();
 
That is assuming that the class corresponding to this in the scope was loaded by the Nest repository.

This interface servers as the main communication point between classes loaded by the Nest repository and the Nest repository.

Using this interface clients can query various aspects of the current configuration, look up other bundles, and access their contents.

This interface is not to be implemented by clients.

Methods
public NestRepositoryBundle
Gets the bundle that this class loader loads the classes from.
public byte[]
Gets a hash created from this bundle and all class path dependencies included transitively.
public BundleKey
Gets the bundle key this classloader is associated with.
public NestBundleStorageConfiguration
Gets the storage configuration that this bundle is part of.
public Map<extends BundleKey, ? extends NestBundleClassLoader>
Gets the class loaders for the class path dependencies of this class loader.
public Map<extends ExternalArchiveKey, ? extends ExternalArchiveClassLoader>
Gets the classloaders for the external class path dependencies of this class loader.
public BundleLookup
Gets the bundle lookup object that can be used to resolve bundles relative to this bundle.
public default NestRepository
Gets the repository instance that this class loader is part of.
Gets the bundle that this class loader loads the classes from.
The bundle.
Gets a hash created from this bundle and all class path dependencies included transitively.

The returned array is constructed by hashing the hashes of the transitively available bundles on the classpath in deterministic order.

The hash algorithm is implementation dependent.

An array of bytes that is the hash of the entire classpath available to this classloader. Modifications do not propagate back, i.e. the array is cloned when returned.
public abstract BundleKey getBundleKey()
Gets the bundle key this classloader is associated with.

The returned bundle key can be used to retrieve the bundle storage view that was used to construct this classloader.

The bundle key.
saker.nest 0.8.5
Gets the storage configuration that this bundle is part of.
The storage configuration.
public abstract Map<extends BundleKey, ? extends NestBundleClassLoader> getClassPathDependencies()
Gets the class loaders for the class path dependencies of this class loader.

The resulting map contains direct dependencies of this bundle, with optional classpath dependencies included if possible.

The result also contains the private dependencies as well, however, it doesn't tell you if a dependency was included through a private dependency or not.

Transitive dependencies are not included, only the direct ones.

The result of this method is the classpath dependencies that were resolved by the Nest repository when this class loader was constructed. The classes loaded by this class loader have the classes accessible through the returned class loaders (transitively).

The immutable map of class path dependencies.
Gets the classloaders for the external class path dependencies of this class loader.

The resulting map contains the declared external dependencies and their corresponding class loaders.

An immutable map of external class path dependencies.
saker.nest 0.8.5
Gets the bundle lookup object that can be used to resolve bundles relative to this bundle.
The bundle lookup.
public default NestRepository getRepository()
Gets the repository instance that this class loader is part of.
The repository instance.