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:
Fedor Isakov 2019-08-28 17:39:20 +02:00
parent 7956b8c89c
commit 13526ded21
2 changed files with 11 additions and 1 deletions

View File

@ -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) {

View File

@ -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))
}
}