object Dag
- Alphabetic
- By Inheritance
- Dag
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- case class DagResult(dags: List[Dag[Project]], missingDependencies: Map[Project, List[String]], traces: List[RecursiveTrace]) extends Product with Serializable
- case class InverseDependencies[T](reduced: List[T], allCascaded: List[T]) extends Product with Serializable
Represent the result of inverseDependencies().
Represent the result of inverseDependencies().
- reduced
The minimal set of nodes that subsume
targets
.- allCascaded
The set of all nodes that are transitive inverse dependencies of all
targets
.
- case class RecursiveTrace(visited: List[Project]) extends Product with Serializable
- sealed trait TraversalMode extends AnyRef
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
- def dagFor[T](dags: List[Dag[T]], targets: Set[T]): Option[List[Dag[T]]]
Return a list of dags that match all the targets.
Return a list of dags that match all the targets.
The matched dags are returned in no particular order.
- dags
The list of all dags.
- targets
The targets for which we want to find a dag.
- returns
An optional value of a list of dags.
- def dagFor[T](dags: List[Dag[T]], target: T): Option[Dag[T]]
- def dfs[T](dag: Dag[T], mode: TraversalMode): List[T]
Depth first search
- def directDependencies[T](dags: List[Dag[T]]): List[T]
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def fromMap(projectsMap: Map[String, Project]): DagResult
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def inverseDependencies[T](dags: List[Dag[T]], targets: List[T]): InverseDependencies[T]
Given a forest of DAGs and a collection of targets, this method traverses the forest to find all dependencies that are parents of the targets transitively.
Given a forest of DAGs and a collection of targets, this method traverses the forest to find all dependencies that are parents of the targets transitively. It returns the maximally minimal set of nodes that cover all inverse dependencies as well as all the transitive inverse dependencies.
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- def reduce[T](dags: List[Dag[T]], targets: Set[T]): Set[T]
Reduce takes a list of dags and a set of targets and outputs the smallest set of disjoint DAGs that include all the targets (transitively).
Reduce takes a list of dags and a set of targets and outputs the smallest set of disjoint DAGs that include all the targets (transitively).
Therefore, all the nodes in
targets
that have a children relationship with another node intargets
will be subsumed by the latter and removed from the returned set of DAGs nodes.This operation is necessary to remove the repetition of a transitive action over the nodes in targets. This operation has not been tweaked for performance yet because it's unlikely we stumble upon densely populated DAGs (in the magnitude of hundreds) with tons of inter-dependencies in real-world module graphs.
To make this operation more efficient, we may want to do indexing of transitives and then cache them in the build so that we don't have to recompute them every time.
- dags
The forest of disjoint DAGs from which we start from.
- targets
The targets to be deduplicated transitively.
- returns
The smallest set of disjoint DAGs including all targets.
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toDotGraph(dags: List[Dag[Project]]): String
- def toDotGraph[T](dag: Dag[T])(implicit Show: Show[T]): String
- def toString(): String
- Definition Classes
- AnyRef → Any
- def transitive[T](dag: Dag[T]): List[Dag[T]]
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- case object PostOrder extends TraversalMode with Product with Serializable
- case object PreOrder extends TraversalMode with Product with Serializable
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
(Since version 9)