All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.is24.deadcode4j.IntermediateResult Maven / Gradle / Ivy

There is a newer version: 2.1.0
Show newest version
package de.is24.deadcode4j;

import javax.annotation.Nonnull;

/**
 * If an IntermediateResult is put into an {@link AnalysisContext#getCache() analysis context's cache},
 * it will be made available to the analysis context of those modules depending on the module the result belongs to.
 *
 * @since 2.0.0
 */
public interface IntermediateResult {

    /**
     * If a module depends on both module A and B, each providing an intermediate result for the same key,
     * the results will be merged by calling this method on A's result using B's result as a parameter.
* Note that if collisions occur, A's results should usually be preferred as A is listed higher in the * class path.

* It is important that neither result is modified by this call. * * @param sibling the IntermediateResult to merge with * @return a new IntermediateResult instance * @since 2.0.0 */ @Nonnull IntermediateResult mergeSibling(@Nonnull IntermediateResult sibling); /** * If a module depends on module A which in turn depends on module B, both providing an intermediate * result for the same key, the results will be merged by calling this method on A's result using B's * result as a parameter.
* Note that if collisions occur, A's results should be preferred as A is listed higher in the class * path.

* It is important that neither result is modified by this call. * * @param parent the IntermediateResult to merge with * @return a new IntermediateResult instance * @since 2.0.0 */ @Nonnull IntermediateResult mergeParent(@Nonnull IntermediateResult parent); }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy