trait ConstraintMethods[N, E[+X] <: EdgeLikeIn[X], +G <: Graph[N, E]] extends AnyRef
This template contains all methods that constrained graphs call to decide whether operations altering a mutable graph or operations yielding a new graph from an immutable or mutable graph are valid.
Constraint methods are called on graph creation and node/edge addition and subtraction
at two points of time, respectively: prior to the operation and after the operation has
taken place but still may be rolled back. Thus,
constraint method names are prefixed by pre or post. Pre-ckecks return Abort,
PostCheck or Complete while post-checks return Boolean stating whether the operation
should be committed or rolled back. Pre-checks can inspect the operands only. In contrast,
post-checks additionally allow to inspect the would-be graph after the operation has taken place
but has not yet been committed.
For performance reasons, implementations should prefer implementing pre-check methods. If it's necessary to check not only the operands but the whole would-be graph, the appropriate post-check methods should be overridden.
- Alphabetic
- By Inheritance
- ConstraintMethods
- AnyRef
- Any
- by ChainingOps
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def preAdd(edge: E[N]): PreCheckResult
This pre-check must return
Abortif the addition is to be canceled,PostCheckifpostAddis to be called to decide orCompleteif the outeredgeis allowed to be added.This pre-check must return
Abortif the addition is to be canceled,PostCheckifpostAddis to be called to decide orCompleteif the outeredgeis allowed to be added. IfpostAddhas been implemented, this method may always returnPostCheck. This pre-check may be omitted by letting it always returnpostCheckand overriding the corresponding post-checkcommit*method. Useselfto access the associated graph.- edge
to be added.
- returns
The results of the pre-check containing the follow-up activity and possibly any intermediate computation result to be used during the post-check. To add computation results
PreCheckResultmust be extended.
- abstract def preAdd(node: N): PreCheckResult
This pre-check must return
Abortif the addition is to be canceled,PostCheckifpostAddis to be called to decide orCompleteif the outernodeis allowed to be added.This pre-check must return
Abortif the addition is to be canceled,PostCheckifpostAddis to be called to decide orCompleteif the outernodeis allowed to be added. IfpostAddhas been implemented, this method may always returnPostCheck. This pre-check may be omitted by letting it always returnpostCheckand overriding the corresponding post-checkcommit*method. Useselfto access the associated graph.- node
to be added
- returns
The results of the pre-check containing the follow-up activity and possibly any intermediate computation result to be used during the post-check. To add computation results
PreCheckResultmust be extended.
- abstract def preSubtract(edge: G.EdgeT, simple: Boolean): PreCheckResult
This pre-check must return
Abortif the subtraction ofedgeis to be canceled,PostCheckifpostSubtractis to be called to decide orCompleteif the theedgeis allowed to be subtracted.This pre-check must return
Abortif the subtraction ofedgeis to be canceled,PostCheckifpostSubtractis to be called to decide orCompleteif the theedgeis allowed to be subtracted. This pre-check may be omitted by letting it always returnpostCheckand overriding the corresponding post-checkcommit*method. Useselfto access the associated graph.- edge
the inner edge to be subtracted.
- simple
truefor standard (edge-only by-),falsefor ripple (by-!) removal.- returns
The results of the pre-check containing the follow-up activity and possibly any intermediate computation result to be used during the post-check. To add computation results
PreCheckResultmust be extended.
- abstract def preSubtract(node: G.NodeT, forced: Boolean): PreCheckResult
This pre-check must return
Abortif the subtraction ofnodeis to be canceled,PostCheckifpostSubtractis to be called to decide orCompleteif the thenodeis allowed to be subtracted.This pre-check must return
Abortif the subtraction ofnodeis to be canceled,PostCheckifpostSubtractis to be called to decide orCompleteif the thenodeis allowed to be subtracted. This pre-check may be omitted by letting it always returnpostCheckand overriding the corresponding post-checkcommit*method. Useselfto access the associated graph.- node
the inner to be subtracted.
- forced
truefor standard (ripple by-),falsefor gentle (by-?) removal.- returns
The results of the pre-check containing the follow-up activity and possibly any intermediate computation result to be used during the post-check. To add computation results
PreCheckResultmust be extended.
- abstract val self: G
When extending
Constraint,selfwill denote the attached constrained graph.When extending
Constraint,selfwill denote the attached constrained graph. The factory methods of the companion objectscalax.collection.constrained.Graphinitializeselfto the correct graph instance. When extendingConstrained,selfwill denotethisgraph.
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##(): Int
- Definition Classes
- AnyRef → Any
- def +(other: String): String
- Implicit
- This member is added by an implicit conversion from ConstraintMethods[N, E, G] toany2stringadd[ConstraintMethods[N, E, G]] performed by method any2stringadd in scala.Predef.
- Definition Classes
- any2stringadd
- def ->[B](y: B): (ConstraintMethods[N, E, G], B)
- Implicit
- This member is added by an implicit conversion from ConstraintMethods[N, E, G] toArrowAssoc[ConstraintMethods[N, E, G]] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def allNodes(passedNodes: Iterable[N], passedEdges: Iterable[E[N]]): Set[N]
Consolidates all outer nodes of the arguments by adding the edge ends of
passedEdgestopassedNodes.Consolidates all outer nodes of the arguments by adding the edge ends of
passedEdgestopassedNodes.- Attributes
- protected
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- def ensuring(cond: (ConstraintMethods[N, E, G]) => Boolean, msg: => Any): ConstraintMethods[N, E, G]
- Implicit
- This member is added by an implicit conversion from ConstraintMethods[N, E, G] toEnsuring[ConstraintMethods[N, E, G]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: (ConstraintMethods[N, E, G]) => Boolean): ConstraintMethods[N, E, G]
- Implicit
- This member is added by an implicit conversion from ConstraintMethods[N, E, G] toEnsuring[ConstraintMethods[N, E, G]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean, msg: => Any): ConstraintMethods[N, E, G]
- Implicit
- This member is added by an implicit conversion from ConstraintMethods[N, E, G] toEnsuring[ConstraintMethods[N, E, G]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean): ConstraintMethods[N, E, G]
- Implicit
- This member is added by an implicit conversion from ConstraintMethods[N, E, G] toEnsuring[ConstraintMethods[N, E, G]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from ConstraintMethods[N, E, G] toStringFormat[ConstraintMethods[N, E, G]] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @inline()
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def nodesToAdd(passedNodes: Iterable[N], passedEdges: Iterable[E[N]]): Set[N]
- Attributes
- protected
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def pipe[B](f: (ConstraintMethods[N, E, G]) => B): B
- Implicit
- This member is added by an implicit conversion from ConstraintMethods[N, E, G] toChainingOps[ConstraintMethods[N, E, G]] performed by method ChainingOps in scalax.collection.
- Definition Classes
- ChainingOps
- def postAdd(newGraph: G, passedNodes: Iterable[N], passedEdges: Iterable[E[N]], preCheck: PreCheckResult): Either[PostCheckFailure, G]
This post-check must return whether
newGraphshould be committed or the add operation is to be rolled back.This post-check must return whether
newGraphshould be committed or the add operation is to be rolled back. Useselfto access the associated graph. For immutable graphs,selfmaintains the state before the addition but for mutable graphs, it is already mutated to the required state.- newGraph
the after-addition would-be graph waiting for commit.
- passedNodes
the normalized nodes passed to the add operation.
- passedEdges
the normalized edges passed to the add operation.
- preCheck
the result of
preAdd.- returns
Noneto acceptnewGraphorSomereason for constraint violation resp. rejection
- def postSubtract(newGraph: G, passedNodes: Iterable[N], passedEdges: Iterable[E[N]], preCheck: PreCheckResult): Either[PostCheckFailure, G]
This post-check must return whether
newGraphshould be committed or the subtraction is to be rolled back.This post-check must return whether
newGraphshould be committed or the subtraction is to be rolled back. Useselfto access the associated graph. For immutable graphs,selfmaintains the state before the addition but for mutable graphs, it is already mutated to the required state.- newGraph
the after-subtraction would-be graph waiting for commit.
- passedNodes
the normalized nodes passed to the subtraction operation.
- passedEdges
the normalized edges passed to the subtraction operation.
- preCheck
the result of
preSubtract.- returns
Noneto acceptnewGraphorSomereason for constraint violation resp. rejection
- def preAdd(elems: InParam[N, E]*): PreCheckResult
This pre-check must return
Abortif the addition of the outer nodes and/or edges inelemsis to be canceled,PostCheckifpostAddis to be called to decide orCompleteif the the outer nodes and/or edges are allowed to be added.This pre-check must return
Abortif the addition of the outer nodes and/or edges inelemsis to be canceled,PostCheckifpostAddis to be called to decide orCompleteif the the outer nodes and/or edges are allowed to be added. IfpostAddhas been implemented, this method may always returnPostCheck. The default implementation callspreAdd(node)/preAdd(edge)element-wise. As for most cases this won't be satisfactory a domain-specific implementation should be provided. Useselfto access the associated graph.- elems
nodes and/or edges to be added possibly containing duplicates.
- returns
The results of the pre-check containing the follow-up activity and possibly any intermediate computation result to be used during the post-check. To add computation results
PreCheckResultmust be extended.
- def preCreate(nodes: Iterable[N], edges: Iterable[E[N]]): PreCheckResult
This pre-check is called on constructing a graph through its companion object.
This pre-check is called on constructing a graph through its companion object. It must return whether the graph is allowed to be populated with
nodesandedges. The default implementation callspreAddfor each node and edge.Note that nodes and edges coming from node/edge input streams are not checked. So when utilizing streams the post check
postAddmust be served.- nodes
the outer nodes the graph is to be populated with; nodes being edge ends may but need not be contained in
nodes.- edges
the outer edges the graph is to be populated with.
- returns
The results of the pre-check containing the follow-up activity and possibly any intermediate computation result to be used during the post-check. To add computation results
PreCheckResultmust be extended.
- def preSubtract(nodes: => Set[G.NodeT], edges: => Set[G.EdgeT], simple: Boolean): PreCheckResult
This pre-check must return
Abortif the subtraction ofnodesand/oredgesis to be canceled,PostCheckifpostSubtractis to be called to decide orCompleteifnodesand/oredgesare allowed to be subtracted.This pre-check must return
Abortif the subtraction ofnodesand/oredgesis to be canceled,PostCheckifpostSubtractis to be called to decide orCompleteifnodesand/oredgesare allowed to be subtracted. It is typically triggered by the--operation. The default implementation element-wise callspreSubtract(node, simple)orpreSubtract(edge, simple), respectively. As for most cases this won't be satisfactory a domain-specific implementation should be provided. Useselfto access the associated graph.- nodes
the inner nodes to be subtracted not necessarily including the ends of edges to be subtracted. Call allNodes to get the complete set of nodes to be subtracted.
- edges
the inner edges to be subtracted.
- simple
truefor standard (edge-only by-),falsefor ripple (by-!) removal.- returns
The results of the pre-check containing the follow-up activity and possibly any intermediate computation result to be used during the post-check. To add computation results
PreCheckResultmust be extended.
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def tap[U](f: (ConstraintMethods[N, E, G]) => U): ConstraintMethods[N, E, G]
- Implicit
- This member is added by an implicit conversion from ConstraintMethods[N, E, G] toChainingOps[ConstraintMethods[N, E, G]] performed by method ChainingOps in scalax.collection.
- Definition Classes
- ChainingOps
- def toString(): String
- Definition Classes
- AnyRef → Any
- 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])
Shadowed Implicit Value Members
- val self: ConstraintMethods[N, E, G]
- Implicit
- This member is added by an implicit conversion from ConstraintMethods[N, E, G] toChainingOps[ConstraintMethods[N, E, G]] performed by method ChainingOps in scalax.collection.
- Shadowing
- This implicitly inherited member is shadowed by one or more members in this class.
To access this member you can use a type ascription:(constraintMethods: ChainingOps[ConstraintMethods[N, E, G]]).self
- Definition Classes
- ChainingOps
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated @deprecated
- Deprecated
(Since version ) see corresponding Javadoc for more information.
- def →[B](y: B): (ConstraintMethods[N, E, G], B)
- Implicit
- This member is added by an implicit conversion from ConstraintMethods[N, E, G] toArrowAssoc[ConstraintMethods[N, E, G]] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @deprecated
- Deprecated
(Since version 2.13.0) Use
->instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.