Prevent ephemeral messages caused by failed ask to propagate.
A failed ask predicate constitutes normal evaluation flow, no need to report this to the user.
This commit is contained in:
parent
7956b8c89c
commit
13526ded21
|
|
@ -107,6 +107,16 @@ class CompositeFeedback private constructor(private val elements: List<Feedback>
|
|||
?: ((right as? CompositeFeedback)?.composeLeft(left) ?: CompositeFeedback(Arrays.asList(left, right)))
|
||||
}
|
||||
|
||||
fun dropLast(mayberComposite: Feedback?): Feedback? =
|
||||
if (mayberComposite == null || mayberComposite !is CompositeFeedback) {
|
||||
null
|
||||
} else if (mayberComposite.elements.size > 2) {
|
||||
CompositeFeedback(mayberComposite.elements.dropLast(1))
|
||||
} else if (mayberComposite.elements.size == 2) {
|
||||
mayberComposite.elements[0]
|
||||
} else throw NoSuchElementException()
|
||||
|
||||
|
||||
private fun maxSeverity(efs: List<Feedback>): EvaluationFeedback.Severity {
|
||||
var sev: EvaluationFeedback.Severity = EvaluationFeedback.Severity.DEBUG
|
||||
for (ef in efs) {
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ abstract class FeedbackStatus(val feedback : Feedback?) {
|
|||
|
||||
class ABORTED(status: FeedbackStatus, val reason: Feedback) : FeedbackStatus(compose(status.feedback, reason)) {
|
||||
override val operational = false
|
||||
override fun recover(): FeedbackStatus = NORMAL(feedback)
|
||||
override fun recover(): FeedbackStatus = NORMAL(CompositeFeedback.dropLast(feedback))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue