Class DefaultProjectDependencyGraph

  • All Implemented Interfaces:
    ProjectDependencyGraph

    public class DefaultProjectDependencyGraph
    extends java.lang.Object
    implements ProjectDependencyGraph
    Describes the inter-dependencies between projects in the reactor.
    Author:
    Benjamin Bentmann
    • Constructor Detail

      • DefaultProjectDependencyGraph

        public DefaultProjectDependencyGraph​(java.util.Collection<MavenProject> projects)
                                      throws org.codehaus.plexus.util.dag.CycleDetectedException,
                                             DuplicateProjectException
        Creates a new project dependency graph based on the specified projects.
        Parameters:
        projects - The projects to create the dependency graph with
        Throws:
        DuplicateProjectException
        org.codehaus.plexus.util.dag.CycleDetectedException
      • DefaultProjectDependencyGraph

        public DefaultProjectDependencyGraph​(java.util.List<MavenProject> allProjects,
                                             java.util.Collection<MavenProject> projects)
                                      throws org.codehaus.plexus.util.dag.CycleDetectedException,
                                             DuplicateProjectException
        Creates a new project dependency graph based on the specified projects.
        Parameters:
        allProjects - All collected projects.
        projects - The projects to create the dependency graph with.
        Throws:
        DuplicateProjectException
        org.codehaus.plexus.util.dag.CycleDetectedException
        Since:
        3.5.0
    • Method Detail

      • getSortedProjects

        public java.util.List<MavenProject> getSortedProjects()
        Description copied from interface: ProjectDependencyGraph
        Gets all projects in their intended build order, i.e. after topologically sorting the projects according to their inter-dependencies.
        Specified by:
        getSortedProjects in interface ProjectDependencyGraph
        Returns:
        The projects in the build order, never null.
      • getDownstreamProjects

        public java.util.List<MavenProject> getDownstreamProjects​(MavenProject project,
                                                                  boolean transitive)
        Description copied from interface: ProjectDependencyGraph
        Gets the downstream projects of the specified project. A downstream project is a project that directly or indirectly depends on the given project.
        Specified by:
        getDownstreamProjects in interface ProjectDependencyGraph
        Parameters:
        project - The project whose downstream projects should be retrieved, must not be null.
        transitive - A flag whether to retrieve all direct and indirect downstream projects or just the immediate downstream projects.
        Returns:
        The downstream projects in the build order, never null.
      • getUpstreamProjects

        public java.util.List<MavenProject> getUpstreamProjects​(MavenProject project,
                                                                boolean transitive)
        Description copied from interface: ProjectDependencyGraph
        Gets the upstream projects of the specified project. An upstream project is a project that directly or indirectly is a prerequisite of the given project.
        Specified by:
        getUpstreamProjects in interface ProjectDependencyGraph
        Parameters:
        project - The project whose upstream projects should be retrieved, must not be null.
        transitive - A flag whether to retrieve all direct and indirect upstream projects or just the immediate upstream projects.
        Returns:
        The upstream projects in the build order, never null.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object