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
- Alphabetic
- By Inheritance
- OrderedPlan
- Serializable
- Product
- Equals
- OrderedPlanOps
- AbstractPlan
- PlanLazyOps
- AbstractPlanExtendedAPI
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new OrderedPlan(steps: Vector[ExecutableOp], declaredRoots: Set[DIKey], topology: PlanTopology)
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ++(that: AbstractPlan[ExecutableOp]): SemiPlan
- Definition Classes
- AbstractPlanExtendedAPI
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- 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
ormake[_].fromResource
bindings that are incompatible with the passedF
, or for any other issue that would cause Injector.produce to failCheck for any unresolved dependencies, or for any
make[_].fromEffect
ormake[_].fromResource
bindings that are incompatible with the passedF
, or for any other issue that would cause Injector.produce to failIf this returns
F.unit
then the wiring is generally correct, modulo runtime exceptions in user code, andInjector.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.ImportStrategyAn 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
- 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
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- final def collect(f: PartialFunction[SemiplanOp, SemiplanOp]): SemiPlan
- Definition Classes
- AbstractPlanExtendedAPI
- final def collectChildren[T](implicit arg0: Tag[T]): Seq[ExecutableOp]
- Definition Classes
- AbstractPlanExtendedAPI
- final def collectChildrenKeys[T](implicit arg0: Tag[T]): Set[DIKey]
- Definition Classes
- AbstractPlanExtendedAPI
- final def collectChildrenKeysSplit[T1, T2](implicit t1: Tag[T1], t2: Tag[T2]): (Set[DIKey], Set[DIKey])
- Definition Classes
- AbstractPlanExtendedAPI
- val declaredRoots: Set[DIKey]
- final def definition: ModuleBase
- Definition Classes
- PlanLazyOps
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def filter[T](implicit arg0: Tag[T]): Seq[ExecutableOp]
- Definition Classes
- AbstractPlanExtendedAPI
- final def flatMap(f: (SemiplanOp) => Seq[SemiplanOp]): SemiPlan
- Definition Classes
- AbstractPlanExtendedAPI
- final def foldLeft[T](z: T, f: (T, ExecutableOp) => T): T
- Definition Classes
- AbstractPlanExtendedAPI
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- 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
- final def incompatibleEffectType[F[_]](implicit arg0: TagK[F]): Option[NonEmptyList[MonadicOp]]
Check for any
make[_].fromEffect
ormake[_].fromResource
bindings that are incompatible with the passedF
.Check for any
make[_].fromEffect
ormake[_].fromResource
bindings that are incompatible with the passedF
.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
- final def index: Map[DIKey, ExecutableOp]
- Definition Classes
- PlanLazyOps
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- 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
- final def keys: Set[DIKey]
- Definition Classes
- AbstractPlanExtendedAPI
- final def locateImports(locator: Locator): OrderedPlan
- Definition Classes
- OrderedPlanOps
- final def map(f: (SemiplanOp) => SemiplanOp): SemiPlan
- Definition Classes
- AbstractPlanExtendedAPI
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- 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
- 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
- final def resolveImport[T](id: Identifier)(instance: T)(implicit arg0: Tag[T]): OrderedPlan
- Definition Classes
- OrderedPlanOps
- final def resolveImport[T](instance: T)(implicit arg0: Tag[T]): OrderedPlan
- Definition Classes
- OrderedPlanOps
- final def resolveImports(f: PartialFunction[ImportDependency, Any]): OrderedPlan
- Definition Classes
- OrderedPlanOps
- val steps: Vector[ExecutableOp]
- Definition Classes
- OrderedPlan → AbstractPlan
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- final def toSemi: SemiPlan
- Definition Classes
- OrderedPlanOps
- def toString(): String
Print while omitting package names for unambiguous types
Print while omitting package names for unambiguous types
- Definition Classes
- OrderedPlan → AnyRef → Any
- val topology: PlanTopology
- final def unresolvedImports: Option[NonEmptyList[ImportDependency]]
- Definition Classes
- OrderedPlanOps
- 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, andInjector.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
- 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])
Deprecated Value Members
- 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 byInjector().verify
& new compile-time checks inizumi.distage.framework.PlanCheck
!
- 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 byInjector().assert
& new compile-time checks inizumi.distage.framework.PlanCheck
!
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated