Packages

final case class OrderedPlan(steps: Vector[ExecutableOp], declaredRoots: Set[DIKey], topology: PlanTopology) extends AbstractPlan[ExecutableOp] with OrderedPlanOps with Product with Serializable

Linearized graph which is ready to be consumed by linear executors

May contain cyclic dependencies resolved with proxies

Linear Supertypes
Serializable, Product, Equals, OrderedPlanOps, AbstractPlan[ExecutableOp], PlanLazyOps[ExecutableOp], AbstractPlanExtendedAPI[ExecutableOp], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. OrderedPlan
  2. Serializable
  3. Product
  4. Equals
  5. OrderedPlanOps
  6. AbstractPlan
  7. PlanLazyOps
  8. AbstractPlanExtendedAPI
  9. AnyRef
  10. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new OrderedPlan(steps: Vector[ExecutableOp], declaredRoots: Set[DIKey], topology: PlanTopology)

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ++(that: AbstractPlan[ExecutableOp]): SemiPlan
    Definition Classes
    AbstractPlanExtendedAPI
  4. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. final def assertValid[F[_]](ignoredImports: (DIKey) => Boolean = Set.empty)(implicit arg0: QuasiIO[F], arg1: TagK[F]): F[Unit]

    Check for any unresolved dependencies, or for any make[_].fromEffect or make[_].fromResource bindings that are incompatible with the passed F, or for any other issue that would cause Injector.produce to fail

    Check for any unresolved dependencies, or for any make[_].fromEffect or make[_].fromResource bindings that are incompatible with the passed F, or for any other issue that would cause Injector.produce to fail

    If this returns F.unit then the wiring is generally correct, modulo runtime exceptions in user code, and Injector.produce should succeed.

    However, presence of imports does not *always* mean that a plan is invalid, imports may be fulfilled by a parent Locator, by BootstrapContext, or they may be materialized by a custom izumi.distage.model.provisioning.strategies.ImportStrategy

    An effect is compatible if it's a subtype of F or is a type equivalent to izumi.fundamentals.platform.functional.Identity (e.g. cats.Id)

    Will F.fail the effect with izumi.distage.model.exceptions.InvalidPlanException if there are issues.

    F

    effect type to check against

    Definition Classes
    OrderedPlanOps
  7. final def assertValidOrThrow[F[_]](ignoredImports: (DIKey) => Boolean = Set.empty)(implicit arg0: TagK[F]): Unit

    Same as assertValid, but throws an izumi.distage.model.exceptions.InvalidPlanException if there are unresolved imports

    Same as assertValid, but throws an izumi.distage.model.exceptions.InvalidPlanException if there are unresolved imports

    Definition Classes
    OrderedPlanOps
    Exceptions thrown

    izumi.distage.model.exceptions.InvalidPlanException if there are issues

  8. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
  9. final def collect(f: PartialFunction[SemiplanOp, SemiplanOp]): SemiPlan
    Definition Classes
    AbstractPlanExtendedAPI
  10. final def collectChildren[T](implicit arg0: Tag[T]): Seq[ExecutableOp]
    Definition Classes
    AbstractPlanExtendedAPI
  11. final def collectChildrenKeys[T](implicit arg0: Tag[T]): Set[DIKey]
    Definition Classes
    AbstractPlanExtendedAPI
  12. final def collectChildrenKeysSplit[T1, T2](implicit t1: Tag[T1], t2: Tag[T2]): (Set[DIKey], Set[DIKey])
    Definition Classes
    AbstractPlanExtendedAPI
  13. val declaredRoots: Set[DIKey]
  14. final def definition: ModuleBase
    Definition Classes
    PlanLazyOps
  15. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  16. final def filter[T](implicit arg0: Tag[T]): Seq[ExecutableOp]
    Definition Classes
    AbstractPlanExtendedAPI
  17. final def flatMap(f: (SemiplanOp) => Seq[SemiplanOp]): SemiPlan
    Definition Classes
    AbstractPlanExtendedAPI
  18. final def foldLeft[T](z: T, f: (T, ExecutableOp) => T): T
    Definition Classes
    AbstractPlanExtendedAPI
  19. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  20. final def getImports: Seq[ImportDependency]

    Get all imports (unresolved dependencies).

    Get all imports (unresolved dependencies).

    Note, presence of imports does not *always* mean that a plan is invalid, imports may be fulfilled by a parent Locator, by BootstrapContext, or they may be materialized by a custom izumi.distage.model.provisioning.strategies.ImportStrategy

    Definition Classes
    AbstractPlanExtendedAPI
    See also

    izumi.distage.model.plan.impl.OrderedPlanOps#assertValidOrThrow for a check you can use in tests

  21. final def incompatibleEffectType[F[_]](implicit arg0: TagK[F]): Option[NonEmptyList[MonadicOp]]

    Check for any make[_].fromEffect or make[_].fromResource bindings that are incompatible with the passed F.

    Check for any make[_].fromEffect or make[_].fromResource bindings that are incompatible with the passed F.

    An effect is compatible if it's a subtype of F or is a type equivalent to izumi.fundamentals.platform.functional.Identity (e.g. cats.Id)

    F

    effect type to check against

    returns

    a non-empty list of operations incompatible with F if present

    Definition Classes
    OrderedPlanOps
  22. final def index: Map[DIKey, ExecutableOp]
    Definition Classes
    PlanLazyOps
  23. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  24. final def isValid[F[_]](ignoredImports: (DIKey) => Boolean = Set.empty)(implicit arg0: TagK[F]): Option[InvalidPlanException]

    Same as unresolvedImports, but returns a pretty-printed exception if there are unresolved imports

    Same as unresolvedImports, but returns a pretty-printed exception if there are unresolved imports

    Definition Classes
    OrderedPlanOps
  25. final def keys: Set[DIKey]
    Definition Classes
    AbstractPlanExtendedAPI
  26. final def locateImports(locator: Locator): OrderedPlan
    Definition Classes
    OrderedPlanOps
  27. final def map(f: (SemiplanOp) => SemiplanOp): SemiPlan
    Definition Classes
    AbstractPlanExtendedAPI
  28. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  29. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  30. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  31. def productElementNames: Iterator[String]
    Definition Classes
    Product
  32. final def replaceWithImports(keys: Set[DIKey]): OrderedPlan

    Be careful, don't use this method blindly, it can disrupt graph connectivity when used improperly.

    Be careful, don't use this method blindly, it can disrupt graph connectivity when used improperly.

    Proper usage assume that keys contains complete subgraph reachable from graph roots.

    Definition Classes
    OrderedPlanOps
    Note

    this processes a complete plan, if you have bindings you can achieve a similar transformation before planning by deleting the keys from bindings: module -- keys

  33. final def repr: String

    A longer-form rendering of the Plan, compared to izumi.distage.model.plan.impl.OrderedPlanExtensions.OrderedPlanRenderOps

    A longer-form rendering of the Plan, compared to izumi.distage.model.plan.impl.OrderedPlanExtensions.OrderedPlanRenderOps

    Definition Classes
    AbstractPlan
  34. final def resolveImport[T](id: Identifier)(instance: T)(implicit arg0: Tag[T]): OrderedPlan
    Definition Classes
    OrderedPlanOps
  35. final def resolveImport[T](instance: T)(implicit arg0: Tag[T]): OrderedPlan
    Definition Classes
    OrderedPlanOps
  36. final def resolveImports(f: PartialFunction[ImportDependency, Any]): OrderedPlan
    Definition Classes
    OrderedPlanOps
  37. val steps: Vector[ExecutableOp]
    Definition Classes
    OrderedPlanAbstractPlan
  38. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  39. final def toSemi: SemiPlan
    Definition Classes
    OrderedPlanOps
  40. def toString(): String

    Print while omitting package names for unambiguous types

    Print while omitting package names for unambiguous types

    Definition Classes
    OrderedPlan → AnyRef → Any
  41. val topology: PlanTopology
  42. final def unresolvedImports: Option[NonEmptyList[ImportDependency]]
    Definition Classes
    OrderedPlanOps
  43. final def unresolvedImports(ignoredImports: (DIKey) => Boolean = Set.empty): Option[NonEmptyList[ImportDependency]]

    Check for any unresolved dependencies.

    Check for any unresolved dependencies.

    If this returns None then the wiring is generally correct, modulo runtime exceptions in user code, and Injector.produce should succeed.

    However, presence of imports does not *always* mean that a plan is invalid, imports may be fulfilled by a parent Locator, by BootstrapContext, or they may be materialized by a custom izumi.distage.model.provisioning.strategies.ImportStrategy

    returns

    a non-empty list of unresolved imports if present

    Definition Classes
    OrderedPlanOps
  44. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  45. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  46. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. final def assertImportsResolved[F[_]](implicit arg0: TagK[F]): Option[InvalidPlanException]

    Same as unresolvedImports, but returns a pretty-printed exception if there are unresolved imports

    Same as unresolvedImports, but returns a pretty-printed exception if there are unresolved imports

    Definition Classes
    OrderedPlanOps
    Annotations
    @deprecated
    Deprecated

    (Since version 1.0) Renamed to isValid and somewhat obsoleted by Injector().verify & new compile-time checks in izumi.distage.framework.PlanCheck!

  2. final def assertImportsResolvedOrThrow[F[_]]()(implicit arg0: TagK[F]): Unit
    Definition Classes
    OrderedPlanOps
    Annotations
    @deprecated
    Deprecated

    (Since version 1.0) Renamed to assertValidOrThrow and somewhat obsoleted by Injector().assert & new compile-time checks in izumi.distage.framework.PlanCheck!

  3. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from OrderedPlanOps

Inherited from AbstractPlan[ExecutableOp]

Inherited from PlanLazyOps[ExecutableOp]

Inherited from AbstractPlanExtendedAPI[ExecutableOp]

Inherited from AnyRef

Inherited from Any

Ungrouped