Interface DependencyGraphTransformer


  • public interface DependencyGraphTransformer
    Transforms a given dependency graph.

    Note: Implementations must be stateless.

    Warning: Dependency graphs may generally contain cycles. As such a graph transformer that cannot assume for sure that cycles have already been eliminated must gracefully handle cyclic graphs, e.g. guard against infinite recursion.

    See Also:
    RepositorySystemSession.getDependencyGraphTransformer()
    • Method Detail

      • transformGraph

        DependencyNode transformGraph​(DependencyNode node,
                                      DependencyGraphTransformationContext context)
                               throws RepositoryException
        Transforms the dependency graph denoted by the specified root node. The transformer may directly change the provided input graph or create a new graph, the former is recommended for performance reasons.
        Parameters:
        node - The root node of the (possibly cyclic!) graph to transform, must not be null.
        context - The graph transformation context, must not be null.
        Returns:
        The result graph of the transformation, never null.
        Throws:
        RepositoryException - If the transformation failed.