Plan

izumi.distage.model.plan.Plan
See thePlan companion object
final case class Plan(plan: DG[DIKey, ExecutableOp], input: PlannerInput) extends CachedHashcode

Attributes

Companion:
object
Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait CachedHashcode
class Object
trait Matchable
class Any

Members list

Concise view

Value members

Concrete methods

Implicitly added by DIPlanAssertionSyntax

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

Attributes

See also:

distage.Injector#assert for a check you can use in tests

Implicitly added by DIPlanSyntax

Effective bindings of this plan

Effective bindings of this plan

Attributes

Implicitly added by DIPlanSyntax

Original bindings of this plan

Original bindings of this plan

Attributes

override def equals(obj: Any): Boolean

Compares the receiver object (this) with the argument object (that) for equivalence.

Compares the receiver object (this) with the argument object (that) for equivalence.

Any implementation of this method should be an equivalence relation:

  • It is reflexive: for any instance x of type Any, x.equals(x) should return true.
  • It is symmetric: for any instances x and y of type Any, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any instances x, y, and z of type Any if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.

If you override this method, you should verify that your implementation remains an equivalence relation. Additionally, when overriding this method it is usually necessary to override hashCode to ensure that objects which are "equal" (o1.equals(o2) returns true) hash to the same scala.Int. (o1.hashCode.equals(o2.hashCode)).

Attributes

that

the object to compare against this object for equality.

Returns:

true if the receiver object is equivalent to the argument; false otherwise.

Definition Classes
Equals -> Any
Implicitly added by DIPlanResolveImportsSyntax
def incompatibleEffectType[F[_] : Tag]: Option[NEList[MonadicOp]]
Implicitly added by DIPlanAssertionSyntax

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)

Attributes

F

effect type to check against

Returns:

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

def keys: Set[DIKey]
Implicitly added by DIPlanSyntax
def locateImports(locator: Locator): Plan
Implicitly added by DIPlanResolveImportsSyntax
def render()(implicit ev: Renderable[Plan]): String
Implicitly added by DIPlanSyntax
def renderAllDeps(): String
Implicitly added by DIPlanSyntax
def renderDependees(key: DIKey): String
Implicitly added by DIPlanSyntax
def renderDeps(key: DIKey): String
Implicitly added by DIPlanSyntax
def replaceWithImports(keys: Set[DIKey]): Plan
Implicitly added by DIPlanSyntax

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.

Attributes

Note:

this processes a completed plan, you can achieve a similar transformation before planning by removing the keys from ModuleBase: module -- keys

def resolveImport[T : Tag](instance: T): Plan
Implicitly added by DIPlanResolveImportsSyntax
def resolveImport[T : Tag](id: Identifier)(instance: T): Plan
Implicitly added by DIPlanResolveImportsSyntax
def resolveImports(f: PartialFunction[ImportDependency, Any]): Plan
Implicitly added by DIPlanResolveImportsSyntax
Implicitly added by DIPlanSyntax
override def toString: String

Returns a string representation of the object.

Returns a string representation of the object.

The default representation is platform dependent.

Attributes

Returns:

a string representation of the object.

Definition Classes
Any
def toposort: Seq[DIKey]
Implicitly added by DIPlanSyntax

This is only used by plan formatter

This is only used by plan formatter

Attributes

def unresolvedImports(ignoredImports: DIKey => Boolean): Option[NEList[ImportDependency]]
Implicitly added by DIPlanAssertionSyntax

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

Attributes

Returns:

a non-empty list of unresolved imports if present

See also:

distage.Injector#assert for a check you can use in tests

Inherited methods

def productElementNames: Iterator[String]

Attributes

Inherited from:
Product
def productIterator: Iterator[Any]

Attributes

Inherited from:
Product

Inherited fields

final lazy override val hashCode: Int

Calculate a hash code value for the object.

Calculate a hash code value for the object.

The default hashing algorithm is platform dependent.

Note that it is allowed for two objects to have identical hash codes (o1.hashCode.equals(o2.hashCode)) yet not be equal (o1.equals(o2) returns false). A degenerate implementation could always return 0. However, it is required that if two objects are equal (o1.equals(o2) returns true) that they have identical hash codes (o1.hashCode.equals(o2.hashCode)). Therefore, when overriding this method, be sure to verify that the behavior is consistent with the equals method.

Attributes

Returns:

the hash code value for this object.

Inherited from:
CachedHashcode